BAB 2
LANDASAN TEORI
2.1 Teori Umum
Di bawah ini adalah teori-teori umum atau dasar yang digunakan dalam
pembuatan aplikasi E Points :
2.1.1 Rekayasa Piranti Lunak
2.1.1.1 Definisi Rekayasa Piranti Lunak
Menurut Pressman (2010:13), Rekayasa Piranti Lunak
adalah pengembangan dan penggunaan prinsip pengembangan
untuk memperoleh perangkat lunak secara ekonomis yang handal
dan bekerja secara efisien pada mesin nyata.
2.1.1.2 Kategori Software
Pressman (2010:7) mengemukakan 7 (tujuh) kategori
software, yaitu :
a. System software
System software adalah gabungan dari beberapa
program yang ditulis untuk melayani program lainnya.
Contoh dari system software seperti compilers, editors,
dan file management utilities. Contoh lain dari aplikasi
system software adalah komponen sistem operasi,
drivers, networking software, telecommunication
processors. Pada beberapa kasus system software
dikarakteristikkan oleh banyaknya interaksi dengan
perangkat keras komputer, penggunaan besar oleh
banyak pengguna, operasi yang membutuhkan
penjadwalan, berbagi sumber daya dan manajemen
proses yang canggih, kompleksitas struktur data dan
antarmuka eksternal.
9
10
b. Application software
Application software adalah program stand-alone
yang menyelesaikan kebutuhan bisnis yang spesifik.
Aplikasi jenis ini memproses data bisnis sebagai cara
untuk memfasilitasi operasi bisnis dan manajemen
pengambil keputusan. Pada aplikasi yang memproses
data secara konvensional, application software
digunakan untuk mengatur fungsi bisnis di waktu yang
nyata (real time). Contohnya seperti aplikasi points of
sale, aplikasi manufaktur yang mengatur kontrol proses
secara real time.
c. Engineering / scientific software
Kategori perangkat lunak ini, telah digolongkan
oleh algoritma “number-crunching”, lingkup aplikasi
dari astronomi sampai vulkanologi, dari analisis
perhitungan otomotif hingga orbit luar angkasa yang
dinamis, dan dari biologi molekuler hingga produksi
otomatis, aplikasi kategori ini dipergunakan bagi
kepentingan riset dan pengolahan perhitungan bidang
ilmu terapan (scientific).
d. Embedded software
Embedded software terletak pada sebuah produk
atau sistem dan digunakan untuk menjalankan dan
mengatur fitur dan fungsi untuk kebutuhan pengguna
dan sistem itu sendiri. Contohnya adalah tombol
pengaturan untuk oven microwave, tombol digital untuk
pengaturan penunjuk bahan bakar, sistem pengereman
pada kendaraan.
e. Product-line software
Perangkat lunak yang dirancang untuk
menyediakan kemampuan spesifik untuk banyak
pengguna. Product-lines software dapat fokus kepada
target pasar tertentu dan terbatas (contohnya aplikasi
pengaturan inventori atau kepada target pasar acak
11
(contoh word processing, computer graphic, multimedia,
entertainment, database management, personal and
business financial applications).
f. Web applications
Web application sering disebut “Webapps”. Dalam versi
sederhananya Webapps dapat berupa kumpulan file
hypertext yang menampilkan informasi menggunakan
teks dan grafik yang terbatas. Webapps berkembang
kedalam lingkungan komputer yang kompleks yang
tidak hanya mengembangkan fitur program standalone,
fungsi perhitungan kompleks, dan isi kepada
penggunanya, tetapi juga terintegrasi dengan database
perusahaan dan aplikasi bisnis.
g. Artificial intelligence software
Artificial Inteligence Software menggunakan algoritma
nonnumerical untuk memecahkan masalah yang
kompleks yang tidak dapat dilakukan perhitungan atau
analisis langsung. Aplikasi yang termasuk pada kategori
ini adalah robotic, expert system, pattern recognition
image or voice, artificial neural network,
theoremproving, game playing.
2.1.1.3 Agile Development
Menurut Pressman (2010:67), Agile Development
merupakan proses software modern yang saat ini banyak digunakan
karena proses ini didesain dengan cara yang memungkinkan bagi
development team untuk mampu merespon perubahan secara tepat.
Perubahan tersebut meliputi kebutuhan pengguna, kemajuan
teknologi, serta perubahan lain yang berdampak pada
pengembangan software.
Scrum
Pressman (2010:82) mengemukakan bahwa Scrum adalah
metode cepat dalam pengembangan software yang diciptakan oleh
12
Jeff Sutherland dan timnya diawal tahun 1990. Dalam beberapa
tahun terakhir, pengembangan lebih lanjut dari metode Scrum telah
dilakukan oleh Scwaber dan Beedle.
Prinsip-prinsip Scrum konsisten dengan petunjuk cepat dan
digunakan sebagai petunjuk aktivitas pengembangan dengan
menggabungkan aktivitas framework : requirement, analysis,
design, evolution, dan delivery.
Dalam setiap aktivitas framework, tugas-tugas terjadi di
dalam sebuah proses yang disebut sprint. Pekerjaan yang dilakukan
dalam sebuah sprint (banyaknya sprint yang diperlukan tiap
aktivitas kerangka kerja akan bervariasi tergantung dari
kompleksitas produk dan ukuran) diadaptasikan ke permasalahan
yang terjadi dan didefinisikan bahkan sering dimodifikasi secara
real time oleh tim Scrum. Gambar 2.1 merupakan ilustrasi
keseluruhan aliran proses Scrum.
Gambar 2.1 Ilustrasi Proses Scrum
(Sumber : Pressman, 2010:83)
Scrum menekankan penggunaan satu set pola software yang
telah terbukti efektif untuk proyek dengan timeline yang ketat,
perubahan kebutuhan dan kritikal bisnis. Tiap proses
mendefinisikan kegiatan pengembangan. Berikut proses-proses
yang terdapat dalam Scrum :
13
a. Backlog
Backlog adalah daftar kebutuhan proyek atau fitur yang
menyediakan nilai bisnis untuk pelanggan. Hal-hal dapat
ditambahkan ke backlog kapanpun (ini adalah
bagaimana perubahan terjadi). Manajer produk menilai
backlog dan melakukan update prioritas seperti yang
dibutuhkan.
b. Sprint
Sprint merupakan unit kerja yang dibutuhkan untuk
mencapai kebutuhan yang didefinisikan di dalam
backlog yang harus diselesaikan dalam waktu yang
didefinisikan (biasanya 30 hari). Selama sprint terjadi,
tidak ada perubahan pada rencana karena itu sprint
memperbolehkan tim untuk bekerja dalam waktu yang
singkat tetapi dalam kondisi lingkungan yang stabil.
c. Scrum Meetings
Scrum Meetings adalah pertemuan singkat yang
diadakan setiap hari dalam waktu singkat sekitar 15
menit oleh tim Scrum, tim akan membahas
perkembangan progress yang telah dilakukan dan
masalah yang dihadapi pada saat pengembangan
aplikasi.
d. Demo
Demo adalah pengiriman software pada Customer
sehingga dapat diimplementasikan dan dievaluasi oleh
Customer.
2.1.2 Teori Mobile
Pembuatan aplikasi mobile berbeda dengan pembuatan aplikasi web
atau desktop sehingga developer harus memahami perbedaannya sehingga
dapat menghasilkan aplikasi yang bermanfaat. Di bawah ini merupakan
teori mengenai mobile.
15
2.1.2.1 Smartphone
Smartphone menurut Shelly G. B., Misty E., Jeffrey J.,
Susan C., Steven M., (2012:21) adalah telepon yang Internet-
enabled yang biasanya menyediakan fungsi Personal Digital
Assistant (PDA) seperti fungsi kalender, buku agenda, buku alamat,
kalkulator, dan catatan. Fungsi smartphone menyerupai fungsi
komputer desktop sehingga kedepannya teknologi smartphone
dapat menggantikan komputer desktop dalam hal mobilitas.
2.1.2.2 Mobile Operating System
Fling, B. (2009:22) mengemukakan bahwa telepon genggam
dapat disebut smartphone jika menggunakan sistem operasi. Mobile
operating system adalah sistem operasi yang dikhususkan untuk
perangkat mobile. Berikut sistem operasi umum yang hadir di
smartphone :
a. Symbian
Symbian OS adalah sistem operasi open source yang
didesain untuk perangkat mobile dengan perpustakaan
yang terkait, kerangka antarmuka pengguna, dan
implementasi dengan tools yang umum.
b. Windows Mobile
Windows Mobile adalah sistem operasi yang berjalan di
atas Windows Mobile platform.
c. Palm OS
Palm OS adalah sistem operasi yang digunakan dalam
Palm’s lower end Centro line.
d. Linux
Linux merupakan sistem operasi open source.
e. Mac OS X
Mac OS X adalah sistem operasi yang digunakan Apple
di iPhone dan iPod touch.
16
f. Android
Android merupakan sistem operasi open source yang
dapat disesuaikan dengan operator dan produsen
perangkat.
2.1.2.3 Sepuluh Prinsip Mobile Interface Design
Smartphone dan komputer desktop merupakan perangkat
komputasi, namun smartphone dan komputer desktop sangat
berbeda, dalam segi layar dari perangkat, bandwith yang
ditawarkan, penggunaan baterai, dan lain-lain. Oleh karena itu
pembuatan rancangan antarmuka untuk mobile tidak dapat
disamakan dengan komputer desktop. Berikut sepuluh prinsip
rancangan antarmuka untuk aplikasi mobile menurut Jonathan Stark
pada Creative Bloq (2012) :
1. Mobile Mindset
Karena ada perbedaan antara mobile dan desktop, pengembang
harus mengetahui beberapa pola pikir untuk mobile :
a. Be focused
Banyak fitur bukan berarti lebih baik. Sebaiknya fitur-
fitur yang tidak penting disingkirkan dari rencana
pembuatan.
b. Be unique
Aplikasi yang dikembangkan memiliki suatu keunikan
yang membedakan aplikasi tersebut dengan aplikasi
lainnya.
c. Be charming
Aplikasi yang dapat diandalkan, dan menyenangkan
ketika digunakan, sehingga aplikasi tersebut menarik
untuk digunakan.
17
d. Be considerate
Pengembang aplikasi harus menempatkan diri pada
posisi pengguna aplikasi sehingga sesuai dengan
keinginan pengguna.
2. Mobile Contexts
Untuk mengembangkan aplikasi yang sesuai dengan keinginan
pengguna, terdapat tiga konteks utama pada mobile, yaitu :
a. Bored : Aplikasi berupa hiburan
b. Busy : Aplikasi yang mampu menyelesaikan tugas
dengan cepat.
c. Lost : Aplikasi yang menunjukkan informasi tempat.
3. Global Guidelines
Setiap aplikasi memiliki teknik pendekatan dan desain yang
berbeda. Beberapa hal yang harus diperhatikan dalam
mengembangkan aplikasi, yaitu :
a. Responsiveness
Jika pengguna melakukan sesuatu pada aplikasi, aplikasi
harus dapat menjawab respon dari pengguna.
b. Polish
Pengembang aplikasi harus memperhatikan desain
aplikasi secara detail.
c. Thumbs
Hampir semua orang menggunakan ibu jari untuk
berinteraksi dengan smartphone. Oleh karena itu
pengembang harus dapat memperhatikan desain untuk
kenyamanan dalam menggunakan ibu jari.
d. Targets
Dalam mendesain aplikasi yang menggunakan fungsi
keyboard, pengembang aplikasi sebaiknya mendesain
penempatan tombol dengan baik sehingga memudahkan
pengguna pada saat mengetik.
18
e. Content
Sebaiknya pengembang menempatkan content aplikasi
pada bagian tengah layar untuk memudahkan pengguna
berinteraksi dengan aplikasi.
f. Controls
Ketika harus menambahkan suatu control pada aplikasi,
sebaiknya diletakkan pada bagian bawah layar agar
memudahkan pengguna berinteraksi dengan aplikasi.
g. Scrolling
Sebaiknya pengembang aplikasi mengurangi pemakaian
scrolling untuk memudahkan pengguna dalam
menggunakan aplikasi.
4. Navigation Models
Ada beberapa model navigasi umum untuk aplikasi mobile yang
dapat digunakan sesuai dengan aplikasi, seperti none, tab bar,
dan drill down.
5. User Input
Pada pengembangan suatu aplikasi memungkinkan pengguna
dalam memberikan input seperti pengetikan. Jika aplikasi perlu
banyak input seperti pengetikan, pastikan mendukung orientasi
landscape untuk memudahkan pengguna yang memiliki ibu jari
yang besar.
6. Gestures
Antarmuka layar sentuh saat ini mendukung gesture-based
untuk interaksi pengguna. Beberapa hal yang harus diingat
adalah :
a. Invisible
Gestures tidak terlihat, tetapi pengembang aplikasi harus
mempertimbangkan bagaimana untuk mengungkapkan
keberadaan gestures tersebut kepada pengguna.
b. Two hands
19
Multi-touch gestures membutuhkan operasi dua tangan.
Contohnya pada saat memperbesar atau memperkecil
tampilan gambar.
7. Orientation
a. Portrait
Orientasi yang paling sering digunakan dalam desain
antarmuka aplikasi.
b. Landscape
Jika aplikasi mengharuskan pengguna untuk banyak
mengetik, aplikasi harus dapat mendukung orientasi
landscape untuk dapat mengakses keyboard yang lebih
besar.
c. Orientasi berubah tiba-tiba
Aplikasi yang akan digunakan dalam jangka waktu lama
perlu mempertimbangkan untuk menambahkan orientasi
yang tepat di aplikasi tersebut.
8. Communications
Aplikasi harus dapat berinteraksi dengan pengguna.
a. Provide feedback
Memberikan umpan balik instan untuk setiap interaksi.
Jika pengguna telah meminta suatu tindakan yang akan
memakan waktu lama, maka aplikasi perlu menampilkan
progress bar.
b. Modal alert
Modal alert sangat mengganggu sehingga harus
digunakan ketika ada sesuatu yang benar-benar salah.
c. Confirmation
Aplikasi harus dapat meminta pengguna untuk
mengkonfirmasi tindakan. Seperti : “Apakah Anda yakin
ingin menghapus data ini?”.
9. Launching
Ketika pengguna kembali ke aplikasi, maka aplikasi harus
kembali beroperasi tepat dimana pengguna terakhir
mengoperasikan aplikasi.
20
10. First Impressions
Pada saat pengguna pertama kali menggunakan aplikasi terdapat
dua faktor yang menjadi kesan pertama pengguna, yaitu :
a. Your icon
Icon merupakan daya tarik awal bagi pengguna dalam
menggunakan aplikasi yang dikembangkan.
b. First launch
Peluncuran aplikasi yang pertama kali seharusnya tidak
membingungkan pengguna.
2.1.3 Internet
William dan Sawyer (2007, p17) mengemukakan bahwa internet
adalah jaringan komputer di seluruh dunia yang menggabungkan ratusan
bahkan ribuan jaringan yang lebih kecil, misalnya jaringan pendidikan,
komersial, nirlaba, dan militer, bahkan jaringan individual.
Komponen penting internet berupa media biasa disebut dengan
WWW (World Wide Web), WWW memegang peranan penting dalam
mempopulerkan internet, WWW atau web dapat didefinisikan sebagai
sistem interkoneksi komputer internet, yang disebut server yang
mendukung dokumen-dokumen bersifat multimedia.
2.1.4 Loyalty
2.1.4.1 Pengertian Customer Loyalty
Menurut Kotler (2012:127) didefinisikan loyalitas
pelanggan adalah suatu keadaan dimana terdapat komitmen yang
kuat dan pembelian ulang dan penggunaan kembali barang dan jasa
perusahaan di masa depan.
Dengan definisi tersebut, kita dapat menyimpulkan bahwa
loyalitas pelanggan sangat dibutuhkan untuk menjaga kelangsungan
hidup perusahaaan dan mempertahankan pelanggan yang sudah ada
sehingga hal ini menguntungkan perusahaan.
21
Menurut Mao J. (2010:213) loyalitas pelanggan memiliki
posisi yang signifikan dalam pemasaran, yaitu diantaranya :
1. Dianggap sebagai fitur utama yang mencerminkan
nilai suatu merek
Hal ini diakui benar bahwa pembeli setia pada
suatu merek dalam kenyataannya berkontribusi besar
dalam pemasaran. Menurut konsep loyalitas, hal ini
dianggap fitur penting dari nilai merek.
2. Mengurangi biaya
Strategi ini dapat membuat perusahaan
mengeluarkan uang lebih sedikit dan mendapatkan uang
lebih banyak dalam pemasaran. Reichheld dalam jurnal
Mao J. (2010:2) mengungkapkan bahwa penjual harus
membuang uang empat kali lebih banyak untuk menarik
pelanggan baru ketimbang pelanggan yang setia.
3. Pelanggan kurang sensitif terhadap harga
Pelanggan setia biasanya kurang sensitif terhadap
harga. Ketika harga suatu produk naik, mereka tidak
mengurangi jumlah produk yang mereka beli. Mao J.
(2010:2) mengungkapkan bahwa pelanggan setia
mempercayai produk pilihan mereka dan kurang
berfokus pada harga.
4. Membawa pelanggan baru yang potensial
Pelanggan yang setia dapat menambahkan
pelanggan baru lebih banyak. Pada saat yang sama,
pelanggan baru tersebut juga dapat menjadi pelanggan
setia di masa depan. Contohnya adalah ketika seseorang
membeli merek kosmetik secara berkala dan
menganggapnya nyaman digunakan, dia akan
merekomendasikan kepada temannya. Oleh karena itu,
tidak mengherankan bila orang-orang sekitarnya
memiliki merek komoditas yang sama.
5. Bermanfaat di pasar global (marketplace)
22
Mao J. (2010:213) mengatakan bahwa dunia
telah berubah menjadi bisnis global dalam 10 dekade
terakhir. Mengembangkan loyalitas merek sangat
penting untuk memasuki pasar. Untuk menjaga
hubungan kepercayaan dengan pelanggan-pelanggan
mereka, perusahaan harus membuat program loyalty
untuk pelanggan.
2.1.4.2 Program Loyalty
Definisi Program Loyalty menurut investopedia (2013)
adalah program hadiah yang diberikan perusahaan kepada
pelanggan yang sering melakukan pembelian. Program loyalty dapat
memberikan pelanggan akses dengan mudah terhadap produk baru,
kupon penjualan khusus atau merchandise gratis.
Hanover Research (2011:4) mengemukakan studi pada
tahun 2006 mengungkapkan bahwa “lebih dari 75% konsumen
memiliki paling tidak satu kartu loyalty, dan beberapa orang
memiliki dua atau lebih kartu dari populasi pembeli”.
Partisipasi di kalangan konsumen dan persaingan antar toko
meningkat secara dramatis sejak awal tahun 2000. Menurut sensus
loyalty Colloquy yang dirilis tahun 2009, “Keanggotaan dalam
program loyalitas pelanggan AS telah mencapai 1,8 miliar, naik 1,3
miliar di tahun 2007”. Sensus menunjukkan bahwa rata-rata rumah
tangga di AS telah mendaftar untuk 14,1 program loyalty, dan 6,2
dari mereka ikut berpartisipasi.
2.1.4.3 Program Mobile Loyalty
Menurut Becker, M., & Arnold (2010:299), program mobile
loyalty mirip dengan program loyalitas tradisional, hanya saja poin
loyalitas atau satuan pembelian dikumpulkan pada mobile phone.
Satuan loyalitas juga dapat ditukarkan (di-redeem) melalui
perangkat mobile dengan metode pembayaran yang teintegrasi
dengan perangkat mobile atau sistem tambahan seperti Web Site.
23
Melaksanakan program loyalitas sama seperti
mengimplementasikan mobile marketing program dengan step –
step sebagai berikut :
1. Membangun mobile database pelanggan setia
Database dapat dibuat dari beberapa sumber data, seperti
online information forms yang terkoneksi dengan web site,
dikumpulkan di toko, dan SMS langsung.
2. Menetapkan sistem reward dan menyiapkan sistem
yang memungkinkan customer untuk menambah poin
pada mobile phone.
Salah satu cara melakukan hal ini adalah melalui kode
customer yang unik yang dikirimkan melalui SMS. Proses
ini dapat berkerja dalam sistem POS atau sistem aplikasi
penyedia layanan dimana mereka dapat memantau akun
dan data transaksi customers.
3. Menyediakan rewards berdasarkan aktivitas
konsumen.
Pemantauan perilaku konsumen dapat dicapai melalui
kemampuan sistem POS. Penggabungan kemampuan
sistem POS dengan mobile channel merupakan fungsi
manajemen database.
24
2.1.5 Interaksi Manusia dan Komputer (IMK)
2.1.5.1 Pengertian Interaksi Manusia dan Komputer (IMK)
Schneiderman (2010:22) mendefinisikan Interaksi Manusia
dan Komputer atau Human Computer Interaction (HCI) adalah
ilmu yang mempelajari bagaimana berinteraksi antara manusia
dengan seperangkat komputer dan pengaruh komputer dalam
pengembangannya untuk berinteraksi dengan manusia.
2.1.5.2 Lima Faktor Manusia Terukur
Menurut Scheneiderman & Plaisant (2010:32) ada lima
faktor manusia terukur :
1. Waktu belajar
Waktu belajar seseorang mempelajari fungsi-fungsi
tertentu.
2. Kecepatan kinerja
Kecepatan kerja menunjukkan berapa lama pengguna
melakukan suatu tugas.
3. Tingkat kesalahan
Tingkat kesalahan menunjukkan seberapa banyak
kesalahan dan kesalahan apa saja yang dibuat pengguna.
4. Daya ingat
Daya ingat adalah kemampuan pengguna
mempertahankan pengetahuannya setelah jangka waktu
tertentu.
5. Kepuasan subjektif
Kepuasan pengguna terhadap berbagai aspek sistem.
25
2.1.6 Unified Modeling Language (UML)
Unified Modeling Language (UML) menurut Whitten dan Bentley
(2007:371) adalah suatu kumpulan konsep atau permodelan yang
digunakan untuk menentukan atau menggambarkan sebuah sistem
perangkat lunak yang berkaitan dengan objek.
2.1.6.1 Class Diagram
Menurut Whitten dan Bentley (2007:400), class diagram
adalah diagram yang menggambarkan struktur objek statis dalam
sebuah sistem, menunjukkan sistem tersusun dari beberapa class
dan hubungan yang terbentuk diantara class tersebut. Gambar 2.2
merupakan class dan strukturnya dalam sebuah class diagram.
Gambar 2.2 Class dan Strukturnya
Sebuah class dalam class diagram disusun oleh tiga bagian,
yaitu :
1. Nama Kelas
Nama kelas digunakan untuk membedakan antara kelas
yang satu dengan kelas yang lain.
2. Atribut Kelas
Atribut kelas adalah data yang menunjukkan
karakteristik penting tentang sebuah objek dari kelas
tersebut.
3. Operasi Kelas
Operasi kelas yaitu logika perangkat lunak yang
dijalankan dalam menanggapi pesan.
27
2.1.6.1.1 Visibility
Menurut Whitten dan Bentley (2007:650), visibility
merupakan cara mengakses yang dimiliki oleh sebuah
objek. Terdapat tiga jenis visibility, yaitu :
1. Public
Public dinotasikan dalam bentuk “+”. Public
mengindikasikan bahwa sebuah kelas dapat
dipanggil oleh semua kelas lain.
2. Protected
Protected dinotasikan dalam bentuk “#”.
Protected mengindikasikan sebuah kelas hanya
dapat dipanggil oleh kelas yang bersangkutan
dan turunannya.
3. Private
Private dinotasikan dalam bentuk “-“. Private
mengindikasikan bahwa sebuah kelas hanya
dapat dipanggil oleh kelas yang bersangkutan.
2.1.6.1.2 Association
Menurut Whitten dan Bentley (2007:377),
Association digambarkan dengan sebuah garis koneksi
yang menunjukkan adanya hubungan antara satu kelas
dengan kelas yang lain. Ada dua jenis penggambaran
hubungan didalam asosiasi
a. Unidirectional
Unidirectional menunjukkan hubungan antar
kelas yang terjadi satu arah saja. Unidirectional
digambarkan dengan garis yang memiliki anak
panah (navigability). Gambar 2.3 merupakan
unidirectional association.
28
Gambar 2.3 Contoh Unidirectional
Association
b. Bidirectional
Bidirectional menunjukkan hubungan antar
kelas yang terjadi dua arah, yang berarti semua
kelas berperan dan dapat saling mengirim
pesan ke kelas lain yang terhubung.
Bidirectional digambarkan dengan garis yang
tidak memiliki anak panah. Gambar 2.4
merupakan contoh bidirectional association.
Gambar 2.4 Contoh Bidirectional
Association
2.1.6.1.3 Multiplicity
Whitten dan Bentley (2007:378) mengatakan
bahwa multiplicity merupakan jumlah kejadian minimum
dan maksimum dari suatu objek untuk satu kejadian dari
objek yang berhubungan. Tabel 2.1 merupakan beberapa
simbol multiplicity:
29
Tabel 2.1 Tabel Simbol Multiplicity
Multiplicity Deskripsi
1 Tepat satu
0…1 Nol atau satu
0…* Nol atau lebih dari satu
1…* Satu atau lebih dari satu
7…9 Jumlah spesifik
2.1.6.1.4 Aggregation
Whitten dan Bentley (2007:378) mengemukakan
bahwa aggregation adalah hubungan suatu kelas dengan
kelas yang lain dimana kelas yang lebih besar
mengandung satu atau lebih kelas yang lebih kecil, dan
kelas yang kecil merupakan bagian dari kelas yang lebih
besar. Aggregation ditunjukan oleh berlian berongga
pada salah satu ujungnya. Gambar 2.5 merupakan
contoh agregasi.
Gambar 2.5 Contoh Agregasi
(Sumber: Whitten dan Bentley, 2007:379)
30
2.1.6.1.5 Generalization
Whitten dan Bentley (2007:380) mengemukakan
bahwa generalization adalah sebuah teknik dimana
atribut dan behavior yang ada pada beberapa objek
class, dikelompokkan menjadi kelas tersendiri, yang
disebut supertype. Atribut dan behaviour objek class
supertype kemudian diwariskan oleh objek class lain
(subtype). Gambar 2.6 merupakan contoh generalization
Gambar 2.6 Contoh Generalization
2.1.6.2 Use Case Diagram
Menurut Whitten dan Bentley (2007:246), use case diagram
merupakan diagram yang menggambarkan relasi antara sistem,
sistem eksternal dan pengguna. Use case diagram menggambarkan
orang yang menggunakan sistem dan cara pengguna berinteraksi
dengan sistem. Gambar 2.7 merupakan contoh use case diagram.
31
Gambar 2.7 Contoh Use Case Diagram
(Sumber : Whitten dan Bentley, 2007:246)
Berikut ini adalah notasi-notasi yang digunakan dalam use
case diagram.
1. Use Case
Use case mendeskripsikan fungsi dari sebuah
sistem dilihat dari sudut pandang pengguna.
Gambar 2.8 Use Case
(Sumber: Whitten dan Bentley, 2007:246)
2. Actor
Actor merupakan orang, organisasi, atau sistem
eksternal yang berinteraksi dengan sistem untuk saling
bertukar informasi. Ada 4 (empat) tipe actor, yaitu :
a. Primary Business Actor
Primary Bussiness Actor adalah aktor yang
menerima keuntungan dari pelaksanaan use
case dengan menerima sebuah nilai yang
terukur dan terobservasi. Ada kemungkinan
bahwa Primary Business Actor tidak
32
menginisiasi kejadian bisnis. Misalnya
seorang karyawan menerima gaji dari
perusahaan.
b. Primary System Actor
Primary System Actor adalah aktor yang
langsung berhadapan dengan sistem untuk
menginisiasi atau memicu kegiatan sistem.
Misalnya seorang kasir yang melakukan scan
barang-barang yang dibeli pelanggan.
c. External Server Actor
External Server Actor adalah aktor yang
merespon permintaan dari use case. Misalnya
seorang biro kredit mengotorisasi pengisian
dengan kartu kredit.
d. External Receiver Actor
External Receiver Actor adalah aktor yang
bukan pelaku utama tapi menerima nilai yang
terukur dari use case.
Gambar 2.9 Actor
(Sumber: Whitten dan Bentley, 2007:247)
3. Boundary
Boundary digunakan untuk menunjukkan ruang
lingkup sistem. Gambar 2.10 merupakan gambar
boundary dalam use case diagram.
33
Gambar 2.10 Boundary
2.1.6.2.1 Association
Whitten dan Bentley (2007:248) mengemukakan
bahwa association adalah interaksi antara seorang actor
dengan sebuah use case. Association dengan dengan panah
(1) yang menyentuh use case mengindikasikan bahwa
actor tersebut melakukan use case itu. Sedangkan
association tanpa panah (2) mengindikasikan sebuah
interaksi use case ke actor yang menerima hasil dari use
case tersebut. Gambar 2.11 merupakan contoh
association.
Gambar 2.11 Contoh Association
(Sumber : Whitten dan Bentley, 2007:248)
2.1.6.2.2 Extends
Whitten dan Bentley (2007:248) mengemukakan
bahwa extends bertujuan untuk meyederhanakan use case
34
kompleks yang terdiri dari beberapa langkah agar lebih
mudah dipahami. Gambar 2.12 merupakan contoh extends.
Gambar 2.12 Contoh Extends
(Sumber : Whitten dan Bentley, 2007:249)
2.1.6.2.3 Uses atau Include
Whitten dan Bentley (2007:249) mengemukakan
bahwa uses atau includes digunakan ketika terdapat dua
atau lebih use case yang melakukan hal yang sama. Oleh
karena itu sebaiknya dipisahkan menjadi use case berbeda
yang disebut abstract use case untuk mengurangi
redudansi pada use case. Hubungan antara abstract use
case dengan use case disebut relasi uses atau includes.
Gambar 2.13 merupakan contoh uses atau includes.
35
Gambar 2.13 Contoh Uses atau Includes
(Sumber : Whitten dan Bentley, 2007:249)
2.1.6.2.4 Depends on
Whitten dan Bentley (2007:249) mengemukakan
bahwa depends on digunakan ketika suatu use case
bergantung pada use case lainnya, yang berarti suatu use
case tidak dapat dilakukan sebelum use case lain
dilakukan. Gambar 2.14 merupakan contoh depends on.
Gambar 2.14 Contoh Depends On
(Sumber : Whitten dan Bentley, 2007:250)
2.1.6.2.5 Inheritance
Whitten dan Bentley (2007:250) mengemukakan
bahwa inheritance digunakan ketika terdapat dua atau
lebih actor yang melakukan use case yang sama. Oleh
karena itu diperlukan abstract actor untuk mengurangi
redudansi komunikasi dengan sistem. Gambar 2.15
merupakan contoh inheritance.
36
Gambar 2.15 Contoh Inheritance
(Sumber : Whitten dan Bentley, 2007:250)
2.1.6.3 Sequence Diagram
Whitten dan Bentley (2007:382), sequence diagram adalah
diagram yang menggambarkan bagaimana suatu objek berinteraksi
dengan yang lain melalui pesan dalam use case atau operasi.
Sequence diagram menggambarkan bagaimana pesan terkirim dan
diterima antara objek-objek secara sekuensial.
37
Gambar 2.16 Contoh Sequence Diagram
Berikut notasi-notasi yang digunakan dalam sequence
diagram :
a. Actor : Merupakan aktor yang terlibat dalam use case.
Gambar 2.17 Actor
b. System : Sebuah persegi panjang yang disebut “Black
Box” yang didalamnya terdapat nama objek tersebut.
Gambar 2.18 System
38
c. Lifeline : Garis putus-putus yang mengindikasikan
kehidupan sebuah sequence.
Gambar 2.19 Lifeline
d. Activation bar : Digambarkan dengan sebuah persegi
panjang pada lifeline yang digunakan untuk
menunjukan lamanya objek yang digunakan.
Gambar 2.20 Activation Bar
e. Input message : Panah horizontal dari aktor ke sistem
yang melambangkan pesan yang masuk ke sistem.
Gambar 2.21 Input Message
f. Output message : Panah dengan garis putus-putus dari
sistem ke aktor yang melambangkan pesan keluar dari
sistem.
Gambar 2.22 Output Message
g. Self-call: Suatu objek pada sequence diagram yang
mengirimkan pesan atau berinteraksi ke objek itu
sendiri.
Gambar 2.23 Self-call
39
2.1.6.4 Use Case Narrative
Menurut Whitten dan Bentley (2007:246), use case
narrative adalah deskripsi tekstual dari kejadian bisnis dan
menunjukkan pengguna berinteraksi dengan sistem untuk
menyelesaikan tugas. Berikut penjelasan mengenai bagian-bagian
use case narrative :
a. Use case name : Merepresentasikan tujuan yang akan
dicapai oleh use case dan dimulai dengan kata kerja.
b. Actors : Para pemangku kepentingan yang memperoleh
manfaat dari eksekusi use case dengan menerima suatu
nilai yang terukur.
c. Descriptions : Ringkasan singkat mengenai tujuan use
case dan aktivitasnya.
d. Preconditions : Batasan yang harus dipenuhi sebelum
use case dapat dijalankan.
e. Postconditions : Kejadian setelah use case di eksekusi.
f. Normal Flow : Urutan normal aktifitas yang dilakukan
aktor dan sistem.
g. Alternate Flow : Mencatat pengecualian atau variasi
yang terjadi diluar normal flow.
2.1.6.5 Activity Diagram
Menurut Whitten dan Bentley (2007:390), sebuah activity
diagram menggambarkan alur proses bisnis, proses-proses dalam
use case, dan objek. Gambar 2.24 merupakan contoh dari activity
diagram.
40
Gambar 2.24 Contoh Activity Diagram
Berikut ini merupakan beberapa notasi dalam activity
diagram :
a. Initial Node : Lingkaran hitam yang menggambarkan
dimulainya sebuah proses.
Gambar 2.25 Initial Node
b. Action : Rounded rectangle yang menggambarkan
langkah-langkah dalam proses.
Gambar 2.26 Action
c. Flow : Panah yang terdapat dalam diagram yang
menggambarkan arah proses.
41
Gambar 2.27 Flow
d. Decision : Berbentuk wajik dengan 1 panah masuk dan 2
atau lebih panah keluar. Panah yang keluar merupakan
pilihan dalam aliran aktivitas.
Gambar 2.28 Decision
e. Merge : Berbentuk wajik dengan 2 atau lebih panah
masuk dan 1 panah keluar yang menunjukkan
penggabungan dari alur aktifitas yang terpisahkan.
Gambar 2.29 Merge
f. Fork : Garis hitam dengan 1 panah masuk dan 2 atau
lebih panah keluar yang menandakan adanya 2 atau lebih
aksi yang berlangsung secara besamaan.
Gambar 2.30 Fork
42
g. Join : Garis hitam dengan 2 atau lebih panah masuk dan
1 panah keluar yang menandakan akhir dari proses
paralel.
Gambar 2.31 Join
h. Activity final: Lingkaran hitam yang berada di dalam
sebuah lingkaran yang menggambarkan akhir dari
proses.
Gambar 2.32 Activity Final
2.1.7 Database
2.1.7.1 Pengertian Database
Dalam perkembangan zaman, database merupakan salah
satu komponen penting dalam sebuah sistem. Database dibuat
untuk memudahkan manusia dalam menyediakan informasi dan
pengolahan data.
Connolly & Begg (2005:15) mengemukakan bahwa
database adalah suatu kumpulan dari data yang saling terkait secara
logis dan merupakan deskripsi dari data, yang dirancang agar dapat
memenuhi kebutuhan dari organisasi.
Dari pendapat di atas dapat disimpulkan bahwa database
adalah kumpulan data yang saling terkait secara logis dan
43
bermanfaat untuk melayani kebutuhan perusahaan maupun
penggunanya.
2.1.7.2 Database Management System (DBMS)
Menurut Connoly & Begg (2005:15), DBMS adalah sebuah
perangkat lunak yang memberikan kebebasan pada pengguna untuk
mendefinisikan, membuat, memelihara, dan mengontrol akses ke
database.
Berikut keuntungan menggunakan DBMS menurut Connoly
& Begg (2005:26) adalah sebagai berikut :
1. Mengontrol pengulangan data.
2. Konsistensi data.
3. Lebih banyak informasi dari jumlah data yang sama.
4. Membagi data.
5. Meningkatkan integritas data.
6. Meningkatkan keamanan.
7. Penegasan standar.
8. Keseimbangan dari persyaratan yang bertentangan.
9. Meningkatkan kemudahan akses dan respon data.
10. Meningkatkan pemeliharaan melalui data yang mandiri.
11. Meningkatkan ketepatan.
12. Meningkatkan backup dan recovery services.
Berikut kerugian menggunakan DBMS menurut Connoly &
Begg (2005:26) adalah sebagai berikut :
1. Harga dari DBMS itu sendiri.
2. Performance.
3. Berdampak lebih besar saat terjadi kegagalan.
4. Kompleksitas.
5. Ukuran.
6. Tambahan harga pada hardware.
44
2.1.8 Web Services
Menurut Connoly (2005:1004) dalam beberapa tahun terakhir, web
services telah ditetapkan sebagai paradigma penting dalam membangun
aplikasi dan proses bisnis untuk aplikasi heterogen yang terintegrasi. Web
services merupakan standar terbuka dan fokus pada komunikasi dan
kolaborasi diantara manusia dan aplikasi.
Tidak seperti aplikasi berbasis web, web services tidak mempunyai
user interface dan tidak ditujukan pada browser. Web services terdiri dari
komponen perangkat lunak yang didesain untuk aplikasi lain, seperti
aplikasi client, aplikasi berbasis web, atau web services lainnya.
Kalin, M (2009:1) mengemukakan bahwa web service dibagi
menjadi dua kelompok, yaitu SOAP dan REST.
a. SOAP (Simple Object Access Protocol)
SOAP (Simple Object Access Protocol) adalah protocol
platform dalam bentuk XML (Extensible Markup Language) untuk
bertukar pesan. Arsitektur SOAP yaitu service client melakukan
request ke server melalui SOAP libraries lalu SOAP libraries pada
server akan memberikan response.
Gambar 2.33 Arsitektur SOAP
(Sumber: Kalin, M., 2009, p2)
Pesan SOAP adalah pengiriman satu arah dan pengirim ke
penerima, oleh karena itu pola pertukaran pesan untuk SOAP adalah
satu arah.
45
Meskipun pesan SOAP ditujukan pada penerima utama
(receiver), arsitektur memungkinkan perantara SOAP (intermediary)
sebagai penerima nonterminal dan perantara tersebut dapat
memeriksa dan memanipulasi pesan SOAP sebelum masuk kepada
penerima utama.
Gambar 2.34 Sender, Intermediary, dan Receiver
(Sumber: Kalin, M., 2009, p83)
b. RESTful (Representational State Transfer)
Representational State Transfer (REST) berbeda dengan
SOAP, SOAP adalah protokol pesan sedangkan REST adalah gaya
arsitektur untuk sistem hypermedia terdistribusi dimana sistem teks,
grafis, audio, dan media lainnya yang disimpan diseluruh jaringan
dan saling berhubungan melalui hyperlink.
Sistem REST menggunakan sistem Create, Read, Update,
Delete (CRUD). Namun istilah yang digunakan dalam REST
bukanlah CRUD, yang digunakan adalah Get, Post, Put, dan Delete.
Get untuk Read, Post untuk Create, Put untuk Update, dan Delete.
Sistem REST digunakan ketika client melakukan request kepada
server dan server melakukan response permintaan dari client.
Gambar 2.35 Sistem RESTful
47
2.2 Teori Khusus
Di bawah ini adalah teori-teori khusus yang digunakan dalam pembuatan
aplikasi E Points :
2.2.1 MySQL
Welling, Luke & Thomson, L. (2009:3) mengemukakan bahwa
MySQL adalah Relational Database Management System (RDBMS) yang
sangat cepat dan kuat. MySQL dapat menyimpan, mencari, mengurutkan
dan mengambil data secara efisien.
MySQL adalah RDBMS yang multiuser dan multithreaded server.
MySQL menggunakan Structured Query Language (SQL), standar query
basis data. MySQL merupakan database open source di dunia paling
populer dan telah memenangkan Linux Journal Reader’s Choice Award.
Beberapa kelebihan yang dimiliki MySQL menurut Welling, Luke
& Thomson, L. (2009:7):
1. Performance
MySQL tidak diragukan lagi kecepatannya. Pada tahun 2002,
eWeek mengemukakan bahwa MySQL merupakan database
pendukung aplikasi web terbaik selain Oracle.
2. Biaya rendah
MySQL tersedia secara gratis di bawah lisensi open source atau
harganya murah di bawah lisensi komersial.
3. Mudah digunakan
Banyak database modern menggunakan SQL. Apabila telah
menggunakan RDBMS lain maka tidak akan menemukan
masalah dalam beradaptasi dengan MySQL. MySQL selalu
lebih mudah digunakan dibanding produk sejenis lainnya.
4. Portability
MySQL dapat digunakan diberbagai macam sistem UNIX yang
sama baiknya seperti Microsoft Windows.
5. Source Code
48
Seperti halnya PHP, anda dapat mengubah source code untuk
MySQL.
6. Ketersediaan dukungan
Dukungan, pelatihan, konsultasi, dan sertifikasi tersedia dari
MySQL AB (www.mysql.com).
2.2.2 Eclipse
Suprianto, D. & Agustina R. (2012:14) mengemukakan bahwa
Eclipse adalah IDE (Integrated Development Environtment) software yang
digunakan oleh banyak bahasa pemrograman seperti Java, Ada, C, C++,
COBOL, Phyton, dan lain-lain. Di dalam IDE Eclipse terdapat layanan
system extensible (semacam sistem penambahan plugins), editor, debugger,
control tools, pengaturan direktori, dan lain-lain. IDE Eclipse merupakan
software yang dikondisikan agar memudahkan pengembang dalam
membangun aplikasi.
2.2.3 Android
Menurut Suprianto, D. & Agustina R. (2012:9), Android adalah
sistem operasi bergerak (mobile operating system) yang mengadopsi sistem
operasi Linux, namun telah dimodifikasi. Android diambil alih oleh Google
pada tahun 2005 dari Android, Inc sebagai bagian strategi untuk mengisi
pasar sistem operasi bergerak. Google mengambil alih seluruh hasil kerja
Android termasuk tim yang mengembangkan Android.
Google menginginkan agar Android bersifat terbuka dan gratis, oleh
karena itu hampir setiap kode program Android diluncurkan berdasarkan
lisensi open-source Apache yang berarti bahwa semua orang yang ingin
menggunakan Android dapat men-download penuh source code-nya.
Salah satu faktor penentu suksesnya platform smartphone adalah
karena banyaknya aplikasi yang tersedia. Oleh karenanya pada Agustus
2008 Google mengenalkan Android Market, yaitu suatu toko aplikasi
online untuk perangkat Android dan mulai siap menyediakan aplikasi bagi
pengguna pada Oktober 2008. Dengan aplikasi market (pre-installed pada
perangkat Android) pengguna dengan mudah men-download aplikasi dari
49
pihak ketiga secara langsung melalui perangkat mereka. Android Market
menyediakan aplikasi berbayar maupun gratis.
2.2.4 Android Development Tools (ADT)
Menurut Suprianto, D. & Agustina R. (2012:14), plugins ADT
berguna sebagai pengenal Android di dalam IDE Eclipse. Dengan ADT
plugins kita bisa membuat project aplikasi Android baru, mengakses tools
emulator dan perangkat Android, melakukan kompilasi dan men-debug
aplikasi, mengekspor aplikasi ke Android Package (APK), membuat
sertifikasi digital terhadap kode program APK.
2.2.5 Android SDK
Suprianto, D. & Agustina R. (2012:14) mengemukakan Android
SDK adalah mesin utama untuk mengembangkan aplikasi Android.
Android SDK dibagi menjadi dua kategori, yaitu :
1. SDK Tools
SDK Tools digunakan untuk membangun aplikasi tanpa
memperhatikan platform Android yang menjadi sasaran
pengembangan software.
2. Platform Tools
Platform Tools ini digunakan untuk membangun aplikasi dengan
platform tertentu dan telah mendukung fitur terbaru dari platform
tersebut.
a. Dalvik Debug Monitor Server (DDMS)
Dalvik Debug Monitor Server berguna untuk mengontrol Dalvik
Virtual Machine pada proses debugging.
b. Android Emulator
Android Emulator adalah emulator yang dapat digunakan untuk
mendesain, debug, dan melakukan test pada aplikasi yang dibuat
pada Android runtime environment.
c. Hierarchy Viewer
Hierarchy Viewer berguna untuk mengoptimalisasikan interface
dari aplikasi Android yang dibuat.
50
d. Layoutopt
Layoutopt berguna untuk membantu menganalisa layout aplikasi
secara keseluruhan agar dapat dioptimasi sehingga meningkatkan
efisiensi yang berjalan.
e. MkSDcard
MkSDcard berguna untuk membantu membuat sebuah disk image
seperti SD Card yang digunakan pada Android emulator.
f. Monkey
Monkey merupakan fitur yang berjalan pada emulator untuk
mengenali sentuhan atau klik yang diterima. Monkey juga dapat
digunakan untuk stress-test terhadap aplikasi yang sedang dibuat.
g. Monkeyrunner
Monkeyrunner merupakan penyedia API untuk mengontrol
Android dan menulis kode program yang berasal dari luar kode
Android.
h. ProGuard
ProGuard berfungsi untuk mengoptimalkan kode dengan
menghapus kode yang tidak digunakan dan mengganti nama
class, fields, maupun methods dengan nama yang jelas.
i. SQLite3
SQLite3 berguna untuk mengakses SQLite data files yang
digunakan oleh aplikasi Android.
j. Traceview
Traceview menyediakan tampilan grafis dari log yang disimpan
oleh aplikasi.
k. Zipalign
Zipalign berguna untuk mengoptimalkan file.apk dengan
memastikan bahwa file sebelum dan sesudah dikompres sama.
2.2.6 Java
Gosling et al. (2005:1) mengemukakan bahwa Java adalah bahasa
yang umum, konkuren, berbasis kelas, dan bahasa yang berorientasi objek.
Bahasa ini dirancang sederhana agar programmer dapat mencapai
kefasihan dalam bahasa. Bahasa pemrograman Java adalah bahasa tingkat
51
tinggi, dikompilasi ke dalam bytecode dan dapat dijalankan di Java Virtual
Machine (JVM).
Karena fungsionalitasnya yang memungkinkan aplikasi Java
mampu berjalan di beberapa platform sistem operasi yang berbeda, Java
dikenal pula dengan slogannya, “Tulis sekali, jalankan di mana pun”. Saat
ini Java merupakan bahasa pemrograman yang paling populer digunakan,
dan secara luas dimanfaatkan dalam pengembangan berbagai jenis
perangkat lunak aplikasi maupun aplikasi berbasis web.
2.2.7 JavaScript Object Notation (JSON)
JavaScript Object Notation (JSON) menurut sumber dari website
json (http://www.json.org/json-id.html) merupakan format pertukaran data
yang ringan, mudah dibaca dan ditulis serta mudah diterjemahkan dan
dihasilkan oleh komputer. JSON dibuat berdasarkan bagian dari bahasa
pemrograman JavaScript, Standar ECMA-262 Edisi ke 3 – Desember 1999.
JSON tidak bergantung pada bahasa pemrograman apapun karena
menggunakan gaya bahasa yang umum seperti C, C++, C#, JavaScript,
Perl, Phyton dan lain-lain. Oleh karena sifat-sifat tersebut, menjadikan
JSON ideal sebagai bahasa pertukaran-data.
JSON menggunakan bentuk sebagai berikut :
1. Object merupakan sepasang nama/nilai yang tidak terurutkan.
Object dimulai dengan “{“ (kurung kurawal buka) dan diakhiri
dengan “}” (kurung kurawal tutup). Setiap nama diikuti dengan “:”
(titik dua) dan setiap pasangan nama atau nilai dipisahkan oleh “,”
(koma).
Gambar 2.36 Object pada JSON
(Sumber : http://www.json.org/json-id.html)
52
2. Array merupakan kumpulan nilai yang terurutkan. Array dimulai
dengan “[“ (kurung kotak buka) dan diakhiri dengan “]” (kurung
kotak tutup). Setiap nilai dipisahkan oleh “,” (koma).
Gambar 2.37 Array pada JSON
(Sumber : http://www.json.org/json-id.html)
3. Value dapat berupa salah string, angka, true, false, null, objek, atau
juga dapat berupa sebuah array.
Gambar 2.38 Value pada JSON
(Sumber : http://www.json.org/json-id.html)
4. String terdiri dari kumpulan nol atau lebih karakter Unicode yang
dibungkus dengan tanda kutip ganda. Di dalam string dapat
menggunakan backslash escape “\” untuk membentuk karakter
khusus.
53
Gambar 2.39 String pada JSON
(Sumber : http://www.json.org/json-id.html)
5. Number yang ada di JSON mirip dengan angka yang di C dan Java.
JSON tidak menggunakan format oktal dan heksadesimal.
Gambar 2.40 Number pada JSON
(Sumber : http://www.json.org/json-id.html)
2.2.8 PHP Hypertext Preprocessor (PHP)
Menurut Weilling, Luke & Thomson, L. (2009:2), PHP adalah
bahasa server-side scripting yang dirancang khusus untuk web. Kode PHP
akan diinterpretasikan di web server dan menghasilkan HTML atau output
lainnya yang dapat dilihat oleh penunjung. PHP merupakan produk open
source. Anda dapat menggunakan, mengubah, dan mendistribusikan
semuanya tanpa biaya.
54
Beberapa pesaing utama PHP adalah Perl, Microsoft ASP.NET,
Ruby, JavaServer Pages (JSP), dan ColdFusion. Dibandingkan dengan
produk-produk tersebut, PHP memiliki kelebihan, diantaranya :
1. Performa yang tinggi
PHP sangat efisien. Hanya dengan menggunakan satu server
tunggal yang tidak mahal, Anda akan dapat menghasilkan jutaan
keuntungan setiap harinya.
2. Integrasi database
PHP memiliki koneksi yang tersedia untuk banyak sistem
database. Selain MySQL, anda dapat secara langsung terhubung
ke PostgreSQL, Oracle, dbm, FilePro, DB2, Hyperware, dan
lain-lain.
3. Built-in Libraries
Karena PHP didesain untuk web, PHP memiliki banyak fungsi
built-in untuk melakukan banyak tugas, misalnya terhubung
dengan web service, parse XML, mengirim email, bekerja
dengan cookies, menghasilkan dokumen PDF dan lain-lain
dapat dilakukan hanya dengan beberapa baris kode.
4. Biaya rendah
PHP merupakan perangkat lunak gratis yang dapat secara
langsung di-download melalui internet.
5. Mudah dipelajari dan mudah digunakan
Syntax PHP didasarkan pada bahasa pemrograman lain,
terutama C dan Perl. Bila kita sudah mengenal bahasa ini,
tentunya mempelajari PHP sangat mudah dan produktif.
6. Mendukung orientasi objek
PHP pada versi terbaru yang telah didesain secara baik memiliki
fitur-fitur orientasi objek.
7. Portabilitas
PHP dapat digunakan pada sistem operasi yang berbeda,
programmer dapat menuliskan kode PHP pada sistem operasi
seperti Linux, OS X, dan lain-lain. Kode PHP yang ditulis
55
dengan baik akan bekerja tanpa modifikasi dari sistem berbeda
dalam menjalankan PHP.
8. Fleksibel dalam pendekatan pembangunan
PHP memungkinkan programmer untuk menerapkan aplikasi
besar dengan menggunakan framework berdasarkan design
pattern, seperti Model-View-Controller (MVC).
9. Ketersediaan source code
Source Code pada PHP dapat diakses. Jika programmer ingin
memodifikasi sesuatu atau menambahkan bahasa, PHP
mengizinkan hal tersebut untuk dilakukan.
2.2.9 CodeIgnitier
Menurut Griffiths (2010), CodeIgniter merupakan framework open
source aplikasi web untuk bahasa PHP. Berbeda dengan framework PHP
lain, dokumentasi CodeIgnitier sangat lengkap membahas semua aspek
framework. Di sisi pemrograman, CodeIgnitier kompatibel dengan PHP4
dan PHP5, sehingga akan berjalan dengan baik di sebagian besar web host.
CodeIgnitier menggunakan pola desain Model View Controller
(MVC), yang merupakan cara untuk mengatur aplikasi menjadi tiga bagian
yang berbeda, yaitu :
1. Model : The database abstraction layer
2. View : The front end template files
3. Controllers : The business logic pada sebuah aplikasi
2.3 State of The Art
a. New Innovation: Mobile Loyalty in Higher Education
Warden, S.C., Loffler C., & Chichava, H. (2010) mengemukakan
dalam of the 5th International LAMS Conference 2010 bahwa ada sistem
mobile loyalty yang memungkinkan pelanggan memiliki kartu loyalty yang
tersimpan secara digital. Nama aplikasi tersebut adalah mBonus. Aplikasi
yang bernama mBonus dikembangkan di Jerman dengan tujuan untuk
56
mengurangi atau memberantas kartu loyalty yang pelanggan bawa dalam
dompet mereka. Konsep ini digambarkan pada Gambar 2.41.
Gambar 2.41 mBonus, Kartu Loyalty dalam Telepon Genggam
Arsitektur dari aplikasi mBonus digambarkan pada Gambar 2.42, yang
terdiri dari server terpusat (dikembangkan oleh penulis), University (Learning
Management System) LMS, Clickatell Gateway, dan antarmuka untuk aktor
yang berbeda. Application server pada mBonus menggunakan CakePHP
sebagai framework yang mempunyai struktur pola desain Model-View-
Controller. Pendekatan pola desain ini lebih mudah untuk pengembangan dan
pemeliharaan di masa datang. Website dibangun dengan PHP (Hypertext
Preprocessor), HTML standar (Hypertext Markup Language), CSS
(Cascading Style Sheets), dan menggunakan database MySQL.
Gambar 2.42 Arsitektur Aplikasi mBonus
(Sumber: Warden, S.C., Loffler C., & Chichava, H., 2010, p108)
57
b. Managing Customer Relationships Through Mobile CRM in Organized
Retail Outlet
Verma D. (2013) mengemukakan dalam International Journal of
Engineering Trends and Technology (IJETT) bahwa konsep loyalitas berbasis
aplikasi mobile memberi banyak keuntungan bagi pelanggan maupun
perusahaan (Merchant). Selain sebagai strategi pemasaran, aplikasi tersebut
memungkinkan karyawan untuk melakukan remote menggunakan perangkat
mobile, seperti smartphone dan tablet untuk mengakses, update, dan
berinteraksi dengan data pelangan setiap saat dan dimanapun mereka berada.
Fitur lain yang diberikan aplikasi tersebut yaitu manajemen loyalitas berbasis
mobile, self-rewards point status, media iklan dan promosi, konfirmasi
pembayaran melalui SMS, dan mobile coupon.
Gambar 2.43 Aplikasi Mobile pada Retail Outlet
(Sumber: Verma D., 2013, p1699)
Gambar 2.43 merupakan aplikasi mobile yang diadopsi oleh beberapa
retail outlet, seperti Domino Pizza, Café Coffee Day, Pizza Hut, dan lain-lain.
Aplikasi ini menggantikan kartu loyalitas fisik dan menyediakan layanan
mobile pribadi. Adapun fitur-fitur yang diberikan yaitu :
1. Pengguna dapat melihat karakteristik produk, harga produk, informasi
diskon dan lokasi toko secara langsung melalui aplikasi mobile.
2. Konfirmasi pembayaran dapat dikirim langsung ke perangkat mobile
untuk membantu pemegang kartu kredit atau debit.
58
3. Pengguna dapat melihat iklan dan informasi promosi melalui aplikasi
mobile.
4. Aplikasi ini dapat digunakan untuk mendapat, mengelola, dan me-
redeem kupon dan diskon.
c. Loyalty Redemption
Jones, D. (2011) mengemukakan dalam United States Patent
Application Publication bahwa sistem loyalty merupakan hal penting bagi
pelanggan untuk mengelola kartu dan hadiah. Berikut ini merupakan diagram
yang mengilustrasikan sistem loyalty. Sistem ini terdiri dari sistem komputer,
database transaksi dan jaringan. Pelanggan dapat mengakses akun melalui
Mobile Device, Merchant server, User Computer. Mobile Device, Merchant
Server, dan User Computer dapat dijalankan pada sistem komputer melalui
jaringan. Sistem komputer dapat diakses dari lokasi geografis yang berbeda,
seperti area yang berbeda dalam kota yang sama atau kota yang berbeda.
Sedangkan database transaksi digunakan untuk menyimpan data pelanggan,
transaksi, dan akumulasi poin loyalty.
Gambar 2.44 Sistem loyalty
(Sumber: Jones, D., 2011, 2)
59
Gambar 2.45 Flow Chart Proses Redeem Loyalty
(Sumber: Jones, D., 2011, 3)
Gambar 2.45 merupakan flow chart proses yang dilakukan pengguna
dalam menggunakan sistem loyalty. Pertama, pelanggan melakukan transaksi
pembelanjaan untuk mendapatkan poin loyalty. Poin tersebut disimpan dalam
akun pelangan. Customer dapat masuk ke akun untuk memilih dan melakukan
redeem hadiah dari Merchant. Customer juga dapat menyesuaikan hadiah
yang ingin di redeem dengan hadiah yang diberikan dengan cara meng-upload
gambar. Bila Customer berhasil melakukan redeem, maka sistem akan
menghitung sisa poin loyalty Customer dan meng-update ke dalam sistem.