-
BAB 2
TINJAUAN REFERENSI
2.1. Teori Umum
2.1.1. Mobile Application
Menurut Viswanathan (2019), mobile application atau mobile
apps
adalah program perangkat lunak yang dikembangkan untuk perangkat
mobile
seperti smartphone dan tablets. Perangkat mobile saat ini sudah
menjadi
sebuah perangkat yang berfungsi dan perangkat untuk hiburan.
Terdapat
beberapa perangkat sudah dimuat terlebih dahulu dengan beberapa
mobile
apps milik produsennya atau penyedia layanan seluler yang
terkait dengannya
seperti Verizon, AT&T, T-Mobile, dan banyak aplikasi lainnya
yang tersedia
di app store pada perangkat tersebut yang dapat diunduh atau
dibeli oleh
para pengguna perangkat mobile. Tujuan dari aplikasi-aplikasi
ini
menjalankan hampir keseluruhan aktivitas, dari utilitas,
produktivitas, dan
navigasi hingga hiburan, olahraga, kebugaran, dan hal lainnya
(Viswanathan,
2019).
2.1.2. Smartphone
Menurut Rouse dan Provazza (2019), smartphone adalah sebuah
telepon seluler yang terintegrasi dengan komputer dan
fitur-fitur lain yang
pada awalnya tidak terkait dengan telepon seperti sistem
operasi, web
browsing, dan kemampuan untuk menjalankan aplikasi perangkat
lunak.
Smartphone bisa digunakan secara individual dalam konteks
konsumen dan
bisnis, dan sekarang hampir merupakan bagian dari kehidupan
modern sehari-
hari. Salah satu elemen penting dari sebuah smartphone adalah
koneksinya ke
sebuah app store. App store merupakan portal pusat yang
menawarkan
berbagai mobile apps untuk produktivitas, bermain game, pengolah
kata,
pencatatan, media sosial, dan lainnya dimana pengguna bisa
mencari dan
mengunduh aplikasi perangkat lunak untuk dijalankan pada
smartphone
mereka (Rouse dan Provazza, 2019).
9
-
10
2.1.3. Database Management System (DBMS)
Menurut Connolly & Begg (2015, p.52), database
management
system (DBMS) merupakan perangkat lunak yang dibuat untuk
membantu
dalam mengelola dan mengakses data yang disimpan di sebuah
database
(Connolly & Begg, 2015, p.52). Menurut Singh (2015, p.
72-73), keuntungan
dari penggunaan DBMS yaitu:
1. Pengaksesan data menjadi lebih efisien
DBMS menggunakan berbagai teknik yang canggih dalam
menyimpan maupun mengambil data dari database dengan
efisien.
2. Data integritas dan sekuritas
Sebuah data yang diakses melalui DBMS akan dilakukan
pengecekkan terhadap batasan integritas suatu data. DBMS
juga
dapat menerapkan kontrol akses terhadap sebuah data untuk
berbagai pengguna.
3. Data administrasi
Data administrasi dapat mengatur representasi dari sebuah
data
untuk meminimalisir redundansi pada data sehingga
penyimpanan data menjadi lebih baik dan dapat berdampak pada
pengambilan data yang lebih efisien.
4. Akses yang bersamaan dan pemulihan
DBMS menjadwalkan pengambilan data yang dilakukan secara
bersamaan sedemikian rupa sehingga pengguna merasakan
seolah-olah data diakses oleh satu orang pada suatu waktu.
DBMS juga melindungi pengguna dari efek kegagalan sistem.
5. Pengembangan aplikasi menjadi lebih cepat
DBMS memiliki fungsi-fungsi penting yang umum untuk
digunakan oleh aplikasi dalam mengakses maupun
memanipulasi data (Singh, 2015, p. 72-73).
-
11
2.1.4. SQL (Structured Query Language)
Menurut Connolly & Begg (2015, p. 52), Structured Query
Language
(SQL) merupakan salah satu contoh dari transform-oriented
language atau
sebuah bahasa yang didesain untuk menggunakan relasi dalam
mengubah
input menjadi output yang diharapkan. SQL memiliki 2 komponen
standar
berupa:
- Data Definition Language (DDL) untuk membangun struktur
dari
database dan mengontrol akses terhadap data.
- Data Manipulation Language (DML) untuk mengambil dan
memanipulasi data (Connolly & Begg, 2015, p.52).
2.1.5. Database
Menurut Polding (2018), relational database mulai dikenalkan
pada
tahun 1969. Relational database mendeskripsikan data didalam
database
seolah disimpan didalam sebuah tabel yang masing-masing tabel
memiliki
atribut. Masing-masing tabel dapat memiliki relasi ke tabel
lainnya (Polding,
2018). Menurut Connolly & Begg (2015, p. 52), database
merupakan
sekumpulan data yang saling terkait. Di zaman sekarang database
sudah
menjadi bagian yang tidak terpisahkan dengan kehidupan
sehari-hari
(Connolly & Begg, 2015, p.52).
2.1.6. Python
Menurut Python Software Foundation (2020), Python adalah
sebuah
bahasa pemrograman tingkat tinggi yang ditafsirkan, berorientasi
objek, dan
semantik yang dinamis. Dibangun dalam struktur data tingkat
tinggi dengan
pengikatan serta pengetikan dinamis yang membuat Python cocok
digunakan
untuk pengembangan yang cepat ataupun sebagai bahasa scripting
(Python
Software Foundation, 2020).
-
12
2.2. Teori Khusus
2.2.1. Scrum
Gambar 2.1 - Scrum process flow (Pressman & Maxim, 2015, p.
78)
Menurut Pressman & Maxim (2015, p. 78-79), Scrum
merupakan
metode pengembangan perangkat lunak agile yang dikembangkan oleh
Jeff
Sutherland dan tim pengembangannya pada awal tahun 1990-an.
Prinsip
scrum konsisten dengan manifesto agile dan digunakan sebagai
panduan
pengembangan aktivitas dalam suatu proses yang menggabungkan
aktivitas
framework berikut: kebutuhan (requirements), analisis
(analysis), desain
(design), evolusi (evolution), dan penyampaian (delivery). Dalam
setiap
aktivitas framework terdapat tugas yang terjadi dalam pola
proses yang
disebut sprint. Tugas yang dilakukan dalam sprint memiliki
jumlah sprint
yang bervariasi tergantung pada kompleksitas dan ukuran produk
dan akan
sering dimodifikasi secara real time oleh tim Scrum.
Setiap pola proses menetapkan sekumpulan aktivitas
pengembangan:
1. Backlog
Backlog merupakan sekumpulan daftar fitur dari sebuah projek
yang diurutkan berdasarkan tingginya dampak yang diberikan
dari
-
13
fitur tersebut. Backlog dapat selalu diisi atau diperbaharui
oleh
product manager setiap saat.
2. Sprints
Sprints berisi sekumpulan tugas yang harus diselesaikan
sesuai
dengan backlog yang ditentukan dalam kurun waktu tertentu
(biasanya 30 hari). Jika terdapat perubahan atau penambahan
backlog selama proses sprint berlangsung maka backlog
tersebut
baru akan dikerjakan di sprint berikutnya.
3. Scrum meetings
Scrum meetings merupakan sebuah pertemuan yang dilakukan
secara rutin oleh tim scrum. Pada pertemuan ini ada beberapa
hal
yang dibahas seperti: Apa saja yang sudah dilakukan?, Apa
kendala
yang ditemui?, Apa target yang ingin dicapai hingga
pertemuan
berikutnya?. Pertemuan ini akan dipimpin oleh Scrum master
yang
bertugas dalam memberikan respon untuk setiap pertanyaan
dari
setiap individu dan membantu memberikan solusi tercepat
terhadap
kendala yang dialami tim tersebut.
4. Demos
Mengirimkan produk ke pengguna, produk yang dikirim berupa
produk yang fungsionalitasnya sudah diimplementasi dan bisa
dicoba oleh pengguna serta bisa dievaluasi oleh pengguna
(Pressman & Maxim, 2015, p. 78-79).
2.2.2. Flutter
Menurut Flutter (2019), Flutter merupakan sebuah Aplikasi
Software
Development Kit untuk membangun aplikasi dengan performa tinggi
berbasis
iOS, Android, dan website dengan menggunakan satu basis kode.
Keunggulan
dari Flutter yaitu untuk membantu mengembangkan aplikasi untuk
iOS dan
Android menggunakan satu basis kode, meminimalisir kode yang
harus
ditulis, fitur hot reload, serta koleksi widget yang menarik
dari Material
Design dan Cupertino (iOS) yang dibuat menggunakan framework
Flutter itu
sendiri.
-
14
Widget Flutter dibuat menggunakan framework modern yang
terinspirasi dari React. Ide dibalik ini adalah untuk membangun
User
Interface menggunakan widget. Widget mendeskripsikan bagaimana
tampilan
yang seharusnya terhadap konfigurasi dan keadaan yang diberikan
saat itu.
Ketika sebuah keadaan berubah maka widget akan dibangun ulang.
Flutter
memiliki 2 widget yaitu Stateless dan Stateful dimana Stateless
widget tidak
mengubah keadaan sedangkan Stateful widget memiliki sebuah
fungsi
callback ketika terdapat keadaan yang ingin diubah berdasarkan
interaksi
pengguna atau faktor lain (Flutter, 2019).
Menurut Ngo (2018), Dart merupakan sebuah bahasa pemrograman
baru menggunakan model bahasa C yang dibangun oleh Google. Dart
muncul
pertama kali pada tahun 2007 dan dirilis dalam versi stabil pada
Juni 2017.
Dart merupakan bahasa object-oriented dan class based. Bahasa
Dart
kemudian digunakan sebagai dasar untuk Flutter dalam pembuatan
Mobile
Application, AngularDart dalam pembuatan website, DartVM
dalam
pembuatan server dan mesin virtual (Ngo, 2018).
Menurut Flutter (2019), fungsi runApp() yang menerima sebuah
parameter berupa widget. Widget yang dijadikan sebagai parameter
pada
fungsi runApp() akan menjadi akar dari Widget Tree.
Gambar 2.2 - Fungsi runApp() dengan widget (Sumber: Flutter,
2019, https://flutter.dev/docs/development/ui/widgets-intro)
Pada gambar 2.2, widget Center() sebagai akar dari widget tree
yang
memiliki anak berupa widget Text(). Widget yang menjadi akar
dari sebuah
-
15
widget tree akan dipaksa untuk menutupi seluruh layar sehingga
widget Text()
akan berada ditengah layar.
Flutter menyediakan berbagai macam widget yang siap
digunakan
pada Material Design untuk Android dan Cupertino untuk iOS.
Penggunaan
widget yang berdasarkan pada Material Design harus dibuat
didalam widget
MaterialApp(), didalam widget MaterialApp() juga sudah tersedia
beberapa
widget yang berguna seperti widget Navigator yang digunakan
untuk
melakukan transisi ke halaman lainnya.
Gambar 2.3 - Fungsi Navigator.pop() (Sumber: Flutter, 2019,
https://flutter.dev/docs/cookbook/navigation/navigation-basics)
Pada gambar diatas, Navigator.pop() digunakan untuk
melakukan
transisi ke halaman sebelumnya. Fungsi pop() berfungsi untuk
menutup Route
saat ini dan kembali ke Route sebelumnya.
Gambar 2.4 - Fungsi Navigator.push() (Sumber: Flutter, 2019,
https://flutter.dev/docs/cookbook/navigation/navigation-basics)
Pada gambar 2.4, Navigator.push() digunakan untuk melakukan
transisi ke halaman baru bernama SecondRoute. Fungsi push()
menambahkan
sebuah Route ke bagian paling atas dari routes stack yang
dikelola oleh
Navigator (Flutter, 2019).
-
16
2.2.3. Sistem Informasi Geografis (SIG)
Menurut Lestari, Kanedi, & Arliando (2016, p. 41), Sistem
Informasi
Geografis (SIG) merupakan suatu sistem informasi berbasis
komputer untuk
menyimpan, mengelola, menganalisis, serta memanggil data
bereferensi
geografis. Manfaat SIG adalah memberikan kemudahan kepada
para
pengguna atau para pengambil keputusan untuk menentukan
kebijaksanaan
yang akan diambil, khususnya yang berkaitan dengan aspek
keruangan
(spasial) (Lestari, Kanedi, & Arliando, 2016, p.41).
Menurut Adil (2017, p.9), Sistem Informasi Geografis (SIG)
memiliki
kemampuan untuk menghubungkan, menggabungkan, menganalisis
berbagai
data pada suatu titik tertentu di bumi dan memetakan hasilnya
dalam format
grafik dan tabel. Data yang diolah pada SIG merupakan data
spasial yaitu
sebuah data yang berorientasi geografis dan merupakan lokasi
yang memiliki
sistem koordinat tertentu (Adil, 2017, p. 9).
2.2.4. Priority Queue
Menurut Mehta & Sahni (2018, p. 69), priority queue
merupakan
sebuah koleksi data yang setiap elemen didalamnya memiliki nilai
prioritas.
Terdapat 2 jenis priority queue yaitu prioritas yang menggunakan
nilai
terbesar atau prioritas yang menggunakan nilai terkecil (Mehta
& Sahni,
2018, p. 69).
Menurut Goodrich, Tamassia, & Goldwasser (2014, p. 368),
dalam
mengimplementasi priority queue berbasis sorted list sangat
mudah dalam
mencari min() dan removeMin() yaitu dengan memberikan
pengetahuan
bahwa angka terkecil pasti berada pada elemen pertama sehingga
memiliki
waktu proses yang statis O(1). Dalam melakukan metode insert
perlu
melakukan pemindaian pada list untuk mencari tempat yang sesuai
untuk
menyisipkan data baru. Implementasi ini dimulai pada akhir
sebuah list, data
dibaca secara backward hingga data baru tersebut memiliki nilai
yang lebih
kecil dari nilai data yang sudah ada. Dalam kasus terburuk,
proses ini dapat
berjalan hingga mencapai posisi awal sebuah list. Oleh karena
itu, penyisipan
data membutuhkan waktu O(n) dalam waktu yang terburuk, dimana n
adalah
jumlah data yang terdapat dalam priority queue pada saat metode
dieksekusi.
-
17
Ketika menggunakan sorted list dalam mengimplementasikan
priority queue,
penyisipan data berjalan dalam waktu yang linear, sedangkan
pencarian dan
penghapusan nilai minimum bisa diselesaikan dalam waktu yang
konstan
(Goodrich, Tamassia, & Goldwasser, 2014, p. 368).
2.2.5. QR Code
Gambar 2.5 - Contoh kode QR
Menurut Ozkaya, Ozkaya, Roxas, Bryant, & Whitson (2015, p.
210),
kode QR (Quick Response Code) adalah sebuah merek dagang untuk
label
yang dapat dibaca oleh mesin yang berisi informasi mengenai
suatu hal atau
benda terkait. Kode QR menggunakan 4 mode pengkodean standar
yaitu
angka, alfanumerik, byte/biner, dan kanji untuk menyimpan data
secara
efisien (Ozkaya, Ozkaya, Roxas, Bryant, & Whitson, 2015, p.
210).
Menurut McWherter dan Gowell (2012, p.25), kode QR pada
awalnya
dibuat untuk digunakan dalam industri mobil pada tahun 1990-an
di Jepang,
tetapi setelah itu mendapatkan popularitas untuk penggunaan di
bidang
lainnya. Kode QR adalah sejenis barcode matriks yang
merupakan
representasi data yang dapat dibaca oleh mesin dan dapat
menyimpan lebih
banyak data dibandingkan dengan barcode (McWherter dan Gowell,
2012, p.
25).
Menurut Denso Wave (2019), Sistem kode QR memiliki
keunggulan
yang unik dan sangat cocok untuk digunakan di lapangan karena
kode QR
tahan terhadap kotoran dan kerusakan, rentan terhadap minyak dan
kotoran
lainnya. Jika sebagian dari kode QR hilang atau terkena noda,
kode QR masih
dapat dibaca dengan akurat menggunakan fungsi error correction.
Selain itu,
-
18
kode QR juga mudah dibaca karena setiap kode QR memiliki tiga
pola posisi
yang dapat dikenali dengan benar dari berbagai sudut ketika kode
dipindai
secara manual menggunakan mobile scanners (Denso Wave,
2019).
2.2.6. Push Notification
Pierce (2017) mengatakan bahwa awal mula push notifications
dirancang yaitu untuk membuat para pengguna untuk tidak terus
menerus
memperhatikan layar smartphone milik mereka. Pada saat
Blackberry
meluncurkan push email pada tahun 2003, Blackberry membuat
para
pengguna untuk tidak perlu terus-menerus mengecek kotak masuk
mereka
karena takut mereka akan kehilangan pesan penting (Pierce,
2017).
Menurut Stohy, Khamesy, & Ghareeb (2016, p. 30), push
notification
service adalah sebuah fitur servis yang semakin populer. Servis
ini
memberikan akses kepada server pihak ketiga untuk mengirim data
secara
aktif ke aplikasi yang sudah terinstal bahkan ketika aplikasi
tersebut sedang
tidak berjalan. Untuk melakukan push service ke smartphone
spesifik maka
pihak ketiga harus menyimpan sebuah token unik dan kode unik
smartphone pengguna sebagai identitas (Stohy, Khamesy, &
Ghareeb, 2016,
p.30).
2.2.7. PostgreSQL
Menurut PostgreSQL Global Development Group (2019),
PostgreSQL
merupakan object-relational database system open source yang
menggunakan dan mengembangkan bahasa SQL dengan
menggabungkan
fitur-fitur yang menyimpan dan mengukur beban kerja data yang
paling
rumit dengan aman. Asal mula PostgreSQL yaitu bermula pada tahun
1986
yang merupakan bagian dari proyek POSTGRES di University of
California
di Berkeley dan memiliki lebih dari 30 tahun pengembangan aktif
pada
platform inti.
PostgreSQL telah mendapatkan reputasi yang kuat atas
terbuktinya
arsitektur, reliability, data integrity, set fitur yang kuat,
ekstensibilitas, dan
dedikasi dari komunitas open-source yang secara konsisten
memberikan
kinerja dan solusi yang inovatif. PostgreSQL bisa dijalankan
pada semua
-
19
sistem operasi dan telah memenuhi persyaratan ACID
(Atomicity,
Consistency, Isolation, Durability) sejak tahun 2001.
Persyaratan ACID
memastikan bahwa tidak ada data yang hilang atau salah
komunikasi saat
melintasi sistem jika terjadi kegagalan. PostgreSQL juga
memiliki add-ons
yang kuat seperti extender geospasial database PostGIS yang
populer
(PostgreSQL Global Development Group, 2019).
2.2.8. Django
Menurut Django Software Foundation (2019), Django merupakan
sebuah framework web open source tingkat tinggi yang
mendorong
pengembangan yang cepat dan bersih, desain pragmatis. Dibangun
oleh para
pengembang yang berpengalaman, para pengembang tersebut
menangani
banyak kerumitan dalam pengembangan web, sehingga dapat fokus
pada
penulisan aplikasi (Django Software Foundation, 2019).
Menurut Kruschk et al. (2019), Django pertama kali
dikembangkan
diantara tahun 2003 dan 2005 oleh sebuah tim yang bertugas
dalam
membuat dan mengurus sebuah situs surat kabar. Dalam proses
pembuatan
situs, tim tersebut mulai menyadari banyaknya kesamaan pola pada
desain
dan kode yang berulang. Permasalahan ini kemudian diubah ke
dalam
sebuah framework pengembangan web generik yang bersifat
open-source
bernama proyek Django pada Juli 2005.
Pada September 2008, Django mengeluarkan versi 1.0 kemudian
mengeluarkan versi 2.0 pada tahun 2017. Setiap versi baru yang
dirilis
terdapat penambahan fungsionalitas dan perbaikan bug, dukungan
ke basis
data lainnya juga semakin bertambah, template engines dan
caching, dengan
adanya penambahan "generik" pada sebuah fungsi pada view dan
class dapat
membantu mengurangi jumlah kode yang harus diketik.
Django mengelompokkan kode yang digunakan untuk mengatasi
HTTP Request yang masuk ke aplikasi menjadi 4 kelompok yang
berupa:
1. URLs: Memetakan URL yang diterima aplikasi dan kemudian
mengarahkan Request tersebut ke kelas yang menangani pola
URL tersebut.
-
20
2. View: Merupakan bagian yang berisi sebuah fungsi untuk
menangani HTTP Request yang masuk dan mengembalikan
sebuah HTTP Response. Bagian View juga bertugas dalam
mengambil data yang diperlukan melalui Model, data ini
kemudian akan direpresentasikan kedalam bentuk Template.
3. Models: Models merupakan objek Python yang menjadi sebuah
struktur data pada sebuah aplikasi dan memberikan mekanisme
untuk melakukan penambahan, perubahan, atau penghapusan
data yang langsung terintegrasi dengan basis data.
4. Templates: Template merupakan sebuah teks yang
mendefiniskan layout dari sebuah file. Sebuah View dapat
mengisi File dengan data yang didapat dari sebuah Model
kemudian disajikan ke client (Kruschk et al., 2019).
2.2.9. Base64
Menurut Sumartono, Siahaan, & Arpan (2016, p. 63), Base64
adalah
istilah yang digunakan untuk beberapa skema pengkodean serupa
yang
mengkodekan data biner dan menerjemahkannya menjadi representasi
basis
64. Istilah ini berasal dari pengkodean konten spesifik
Multipurpose Internet
Mail Extension (MIME) Base64. Skema encoding base64 biasanya
digunakan
ketika ada kebutuhan untuk mengkodekan data biner yang perlu
disimpan dan
ditransfer melalui media yang dirancang untuk menangani data
tekstual. Hal
ini untuk memastikan bahwa data tetap utuh tanpa modifikasi
selama data
dalam pengiriman. Base64 digunakan secara umum dalam beberapa
aplikasi
termasuk email melalui MIME dan penyimpanan data kompleks dalam
XML.
Karena hasil transformasi base64 menjadi teks biasa, maka nilai
ini akan jauh
lebih mudah dikirim, dibandingkan dengan bentuk format data
biner. Tipe
data MIME yang mengkodekan data biner menggunakan base64
biasanya
akan menambah panjang data sekitar 137% dari panjang data
aslinya.
Penambahan panjang data ini berasal dari 1.37 kali dari ukuran
data asli +
814 bytes (untuk header).
Transformasi base64 adalah salah satu algoritma untuk encoding
atau
decoding data kedalam format ASCII yang didasarkan pada angka
64.
-
21
Karakter yang dihasilkan dari base64 terdiri dari “A-Z”, “a-z”,
dan “0-9”, dan
2 karakter terakhir yaitu “/” dan “+”. Teknik encoding base64
membutuhkan
beberapa langkah yang harus dilakukan untuk menyelesaikan
algoritma
base64 yaitu:
1. Melihat kode ASCII dari setiap kata.
2. Mencari angka biner 8 bits dari kode ASCII.
3. Gabungkan 8 bits terakhir menjadi 24 bits.
4. Lalu, pecahkan 24 bits tersebut menjadi 6 bits. Ini akan
menghasilkan 4 pecahan.
5. Setiap fragment dikonversikan menjadi nilai decimal.
6. Terakhir, buat nilai – nilai desimal ke sebuah indeks
untuk
memilih unsur karakter dari base64 dan maksimum indeks
adalah 63 atau 64 (Sumartono, Siahaan, & Arpan, 2016, p.
63-
65).
2.2.10. JSON (JavaScript Object Notation)
Menurut JSON (2019), JSON adalah sebuah format ringan yang
digunakan saat melakukan pertukaran data. JSON merupakan format
teks
yang independent tetapi menggunakan konvensi yang familiar bagi
para
programmers. JSON dibentuk berdasarkan 2 struktur yaitu:
1. Sebuah koleksi yang terdiri dari sekumpulan pasangan nama
atau
nilai. Dalam berbagai bahasa diwujudkan sebagai sebuah
object,
record, struct, dictionary, hash table, keyed list, atau
associative
array.
2. Sebuah list objek yang berurutan. Di sebagian besar
bahasa
diwujudkan sebagai sebuah array, vector, list, atau
sequence.
-
22
Gambar 2.6 - JSON objek (Sumber: JSON, 2019,
https://www.json.org/json-en.html)
Sebuah objek merupakan sekumpulan pasangan nama atau nilai
yang
tidak berurutan, dimulai dengan simbol ‘{’ diakhiri dengan
simbol ‘}’. Setiap
nama diikuti dengan simbol ‘:’ (tanda titik dua) dan setiap
pasangan nama
atau nilai dipisahkan dengan simbol ‘,’ (tanda koma).
Gambar 2.7 - JSON array (Sumber: JSON, 2019,
https://www.json.org/json-
en.html)
Sebuah array merupakan sekumpulan nilai yang berurutan,
diawali
dengan simbol ‘[’ diakhiri dengan simbol ‘]’. Setiap nilai
dipisahkan dengan
simbol ‘,’ (tanda koma).
-
23
Gambar 2.8 - Tipe data yang didukung oleh JSON (Sumber: JSON,
2019, https://www.json.org/json-en.html)
Sebuah nilai dapat bertipe data string dengan diapit simbol
kutip dua
(“ ”), sebuah angka, true atau false atau null, atau sebuah
objek maupun
sebuah array.
-
24
Gambar 2.9 - Tipe data string pada JSON (Sumber: JSON, 2019,
https://www.json.org/json-en.html)
Tipe data string pada sebuah JSON adalah rangkaian nol atau
lebih
karakter Unicode yang dibungkus dengan simbol kutip dua (“ ”)
yang diawali
oleh simbol ‘\’ (backslash escape) sebelum simbol kutip dua.
-
25
Gambar 2.10 - Tipe data number pada JSON (Sumber: JSON, 2019,
https://www.json.org/json-en.html)
Tipe data number sangat mirip dengan yang digunakan pada bahasa
C
atau Java kecuali untuk format octal dan hexadecimal tidak
digunakan.
-
26
Gambar 2.11 - Whitespace pada JSON (Sumber: JSON, 2019,
https://www.json.org/json-en.html)
Spasi dapat dimasukkan diantara pasangan token manapun.
Kecuali
untuk beberapa detail encoding yang sepenuhnya menjelaskan
bahasa
tersebut.
2.2.11. Unified Modeling Language (UML)
Menurut Satzinger, Jackson, & Burd (2012, p.46), Unified
Modeling
Language (UML) adalah sekumpulan diagram dan notasi yang
ditetapkan
oleh Object Management Group (OMG) yaitu sebuah organisasi
untuk
pengembangan sistem. Dengan menggunakan UML, analis dan
pengguna
akhir mampu menggambarkan dan memahami berbagai diagram
spesifik
yang digunakan dalam proyek pengembangan sistem (Satzinger,
Jackson, &
Burd, 2012, p. 46).
2.2.12. Use Case Diagram
Menurut Satzinger, Jackson, & Burd (2012, p.78), use case
diagram
adalah model diagram UML yang digunakan untuk menampilkan
secara
grafis use case dan hubungannya dengan pengguna seperti yang
terlihat pada
gambar 2.12 (Satzinger, Jackson, & Burd, 2012, p.78).
-
27
Gambar 2.12 - Use case diagram (Satzinger, Jackson, & Burd,
2012, p. 17)
· Use case
Use case adalah aktivitas yang dilakukan sistem, biasanya dalam
bentuk
respon atas aksi yang diminta oleh pengguna (Satzinger, Jackson,
& Burd,
2012, p.69). Use case direpresentasikan sebagai sebuah bentuk
oval
dengan nama use case didalamnya (e.g. Look up supplier,
Enter/update
supplier information, dsb.) (Satzinger, Jackson, Burd, 2012, p.
81).
· Actor
Actor adalah seseorang, kelompok atau sebuah unit organisasi
yang
berinteraksi dengan sistem dengan menyediakan atau menerima data
dari
sistem yang direpresentasikan sebagai stick figure sederhana
(Satzinger,
Jackson, & Burd, 2012, p.72). Stick figure diberi nama yang
mencirikan
peran yang dimainkan oleh actor (e.g. Purchasing agent,
Manager).
Actor selalu berada di luar boundary dan terkadang actor untuk
use case
tidak selalu orang, melainkan bisa menjadi sistem lain atau
perangkat
yang menerima layanan dari sistem (Satzinger, Jackson, &
Burd, 2012,
p.81).
-
28
· Relationship
Sebuah garis yang menghubungkan antara use case dengan actor.
Adanya
garis penghubung tersebut menandakan bahwa actor terlibat dengan
use
case tersebut (Satzinger, Jackson, & Burd, 2012, p. 81).
· Automation Boundary
Automation Boundary menunjukkan garis perbatasan antara
bagian
terkomputerisasi dari aplikasi dengan orang yang
mengoperasikan
aplikasi tapi juga merupakan bagian dari keseluruhan sistem,
digambarkan sebagai kotak yang berisi use case. Cara Actor
berkomunikasi dengan use case yaitu dengan melewati
automation
boundary (Satzinger, Jackson, & Burd, 2012, p. 81).
2.2.13. Use Case Description
Menurut Satzinger, Jackson, & Burd (2012, p.121), use
case
description adalah sebuah model tekstual yang memberikan detail
informasi
mengenai setiap use case yang dijelaskan (Satzinger, Jackson,
& Burd, 2012,
p. 121).
Berdasarkan kebutuhan analis, use case description dapat
ditulis
dalam dua level detail yang terpisah yaitu:
· Brief Use Case Descriptions
Gambar 2.13 - Brief use case description (Satzinger, Jackson,
& Burd,
2012, p. 122)
Brief description dapat digunakan untuk use case yang sangat
sederhana, terutama ketika sistem yang akan dikembangkan
merupakan
aplikasi sederhana dan mudah dimengerti. Sebuah use case
sederhana
-
29
biasanya memiliki satu skenario dan memiliki exception
conditions yang
sangat sedikit (Satzinger, Jackson, & Burd, 2012, p.
121).
· Fully Developed Use Case Descriptions
Gambar 2.14 - Fully developed use case description for Create
customer
account (Satzinger, Jackson, & Burd, 2012, p. 123)
Fully developed description adalah metode yang formal untuk
dokumentasi sebuah use case. Salah satu kesulitan utama bagi
software
developers yaitu berjuang untuk mendapatkan pemahaman yang
mendalam
tentang kebutuhan pengguna. Tetapi jika telah membuat sebuah
fully
developed use case description, maka akan meningkatkan
kemungkinan
untuk benar-benar memahami proses bisnis dan cara sistem harus
bekerja
(Satzinger, Jackson, Burd, 2012, p. 122).
-
30
Bagian pertama dan kedua digunakan untuk mengidentifikasi
nama
use case dan scenario dalam use case yang sedang
didokumentasikan. Bagian
ketiga untuk mengidentifikasi event yang memicu use case
tersebut. Bagian
keempat adalah deskripsi singkat mengenai apa yang akan terjadi
pada use
case tersebut. Bagian kelima untuk mengidentifikasikan orang
(actor) yang
berhubungan dengan use case tersebut. Bagian keenam
mengidentifikasikan
use case lain yang berkaitan dengan use case atau dengan kata
lain memiliki
hubungan include atau extend pada use case yang sedang
didokumentasikan.
Bagian ketujuh mengidentifikasi stakeholders yaitu seseorang
selain
actor yang memiliki ketertarikan pada hasil yang dihasilkan dari
use case
tersebut. Bagian kedelapan dan kesembilan memberikan informasi
mengenai
keadaan sebuah sistem sebelum dan sesudah use case
dieksekusi.
Bagian kesepuluh untuk mendeskripsikan detail alur aktivitas
pada
suatu use case. Pada bagian ini dibagi menjadi dua kolom yaitu
untuk
mengidentifikasikan langkah-langkah yang dilakukan actor dan
respon yang
dihasilkan oleh sistem. Bagian kesebelas untuk menjelaskan alur
alternatif
dan exception conditions (Satzinger, Jackson, & Burd, 2012,
p. 122-123).
2.2.14. Activity Diagram
Menurut Satzinger, Jackson, & Burd (2012, p. 57), activity
diagram
merupakan diagram yang menjelaskan berbagai aktivitas pengguna
(orang)
atau sistem yang melakukan setiap aktivitas, dan urutan alur
dari sebuah
aktivitas (Satzinger, Jackson, & Burd, 2012, p. 57).
-
31
Gambar 2.15 - Activity diagram symbols (Satzinger, Jackson,
& Burd, 2012, p. 58)
Pada gambar 2.15 menunjukkan simbol-simbol yang terdapat
pada
activity diagram. Bentuk oval merepresentasikan aktivitas setiap
individu
dalam sebuah workflow. Sebuah panah penghubung merepresentasikan
urutan
antar aktivitas. Lingkaran hitam (Starting activity) menunjukkan
awal
aktivitas dan lingkaran hitam dengan garis tepi (Ending
activity)
menunjukkan akhir aktivitas. Bentuk diamond adalah decision
point dimana
alur proses akan mengikuti satu jalur atau jalur lainnya. Sebuah
garis tebal
merupakan synchronization bar, yang memisahkan jalur menjadi
beberapa
jalur bersamaan atau menggabungkan kembali jalur yang
dipisahkan.
Swimlane heading merepresentasikan seorang agen yang melakukan
aktivitas
(Satzinger, Jackson, & Burd, 2012, p. 57).
-
32
Gambar 2.16 - Activity diagram Create customer account
(Satzinger, Jackson, & Burd, 2012, p. 125)
Activity diagram memungkinkan untuk memiliki workflow dengan
agen yang berbeda untuk menjalankan langkah yang berbeda dari
proses
workflow, swimlane membagi aktivitas workflow ke dalam kelompok
yang
menunjukkan masing-masing aktivitas yang dilakukan agen
tersebut
(Satzinger, Jackson, & Burd, 2012, p. 57-58).
-
33
2.2.15. Class Diagram
Gambar 2.17 - Class diagram (Satzinger, Jackson, & Burd,
2012, p. 311)
Menurut Satzinger, Jackson, & Burd (2012, p.101), class
diagram
adalah sebuah diagram yang terdiri dari kelas-kelas yang
didalamnya berisi
nama kelas, atribut dan method, dan memiliki asosiasi di antara
kelas-kelas
lainnya. Pada class diagram, persegi panjang merepresentasikan
kelas-kelas,
dan garis yang menghubungkan antar persegi panjang
menunjukkan
hubungan di antara kelas-kelas (Satzinger, Jackson, & Burd,
2012, p. 101).
Bagian atas merupakan nama dari sebuah kelas, bagian kedua
berisi daftar
atribut kelas, bagian ketiga berisi daftar methods dari kelas
tersebut.
Format yang digunakan untuk menetapkan setiap atribut
termasuk:
· Visibility, visibility menunjukkan apakah objek lain dapat
langsung
mengakses atribut. (Tanda plus (+) atau biasa disebut dengan
public
menunjukkan bahwa atribut tersebut dapat dilihat atau diakses
oleh kelas
lain; tanda minus (-) atau private menunjukkan bahwa atribut
tersebut
tidak dapat dilihat dan hanya dapat diakses oleh kelas itu
sendiri).
· Nama atribut.
-
34
· Type-expression (seperti character, string, integer, number,
currency,
atau date).
· Initial-value (optional).
· Property (menggunakan kurung kurawal), seperti {key}, jika
dipakai.
Bagian ketiga berisi informasi method signature. Pada bagian
ini
memperlihatkan semua informasi yang dibutuhkan untuk
memanggil
method dan memperlihatkan format message yang harus dikirim,
yang
terdiri dari:
· Method visibility.
· Nama method.
· Method parameter list (argumen yang masuk).
· Return type-expression (the type of the return parameter from
the
method) (Satzinger, Jackson, & Burd, 2012, p. 310).
Gambar 2.18 - UML notation for multiplicity of associations
(Satzinger, Jackson, & Burd, 2012, p. 102).
Multiplicity adalah sebuah nilai dalam UML yang merupakan
jumlah
tautan antara satu objek dan objek lainnya dalam satu asosiasi.
Multiplicity
didirikan untuk setiap asosiasi dan memiliki rentang nilai
multiplicity
(minimum dan maksimum) (Satzinger, Jackson, Burd, 2012, p. 97).
Contoh
pada gambar 2.17 yaitu multiplicity antara kelas Sale dengan
kelas Customer
menunjukkan bahwa objek Sale dikaitkan dengan hanya satu
pelanggan dan
satu pelanggan bisa dikaitkan dengan nol (0) atau lebih objek
Sale. Masing-
masing dari tiga subclasses mewarisi semua atribut dan methods
dari kelas
parent Sale.
-
35
Class diagram mempunyai tiga jenis relationships diantara objek
kelas yaitu:
· Association relationships
Gambar 2.19 - Hubungan asosiasi terjadi secara alami diantara
banyak
hal (Satzinger, Jackson, & Burd, 2012, p.96)
Association relationships adalah hubungan yang terjadi
secara
alami diantara hal-hal tertentu, seperti an order is placed by a
customer
and an employee works in a department. Is placed dan works in
adalah
dua asosiasi yang terjadi secara alami diantara hal-hal tertentu
(Satzinger,
Jackson, & Burd, 2012, p. 96).
· Generalization/Specialization relationships
Gambar 2.20 - Hubungan generalization/specialization untuk
kendaraan bermotor (Satzinger, Jackson, & Burd, 2012, p.
96)
-
36
Generalization/specialization relationships adalah jenis
hubungan
hirarki dimana kelas bawahan (child) adalah himpunan bagian dari
objek
kelas atasan (parent) atau dengan kata lain disebut dengan
hubungan
inheritance. Setiap kelas dalam hirarki memiliki kelas yang
lebih umum
di atasnya yang disebut sebagai superclass. Pada waktu yang
bersamaan,
sebuah kelas mungkin memiliki kelas yang lebih khusus di
bawahnya
yang disebut subclass. Seperti yang terlihat pada gambar 2.20,
notasi
UML class diagram menggunakan sebuah segitiga yang menunjuk
ke
superclass untuk menunjukkan hirarki
generalization/specialization
(Satzinger, Jackson, & Burd, 2012, p. 104).
· Whole-Part Relationship
Whole-Part Relationship adalah sebuah hubungan diantara
kelas-
kelas dimana satu kelas merupakan bagian dari kelas lain.
Relationship
ini digunakan untuk menunjukkan asosiasi di antara satu kelas
dan kelas
lainnya yang merupakan bagian dari kelas tersebut (Satzinger,
Jackson,
& Burd, 2012, p. 106). Ada dua jenis whole-part
relationship:
1. Aggregation
Gambar 2.21 - Hubungan Whole-Part (Aggregation) diantara
komputer dan bagian-bagiannya (Satzinger, Jackson, & Burd,
2012, p. 107)
-
37
Aggregation mengacu kepada jenis whole-part relationship
diantara
agregat (whole) dan komponen (parts), dimana sebuah komponen
bisa
ada secara terpisah. Aggregation direpresentasikan
menggunakan
simbol diamond (Satzinger, Jackson, & Burd, 2012, p.
107).
2. Composition
Composition mengacu kepada whole-part relationships yang
lebih
kuat, dimana sebuah komponen jika sudah dikaitkan, komponen
tersebut tidak bisa ada secara terpisah. Composition
direpresentasikan
menggunakan simbol diamond yang berisi (Satzinger, Jackson,
Burd,
2012, p. 107).
2.2.16. System Sequence Diagram (SSD)
Menurut Satzinger, Jackson, & Burd (2012, p.126), system
sequence
diagram adalah sebuah diagram yang memperlihatkan urutan pesan
yang
dikirim oleh actor atau yang diterima oleh actor diantara objek
internal. SSD
digunakan untuk menggambarkan alur informasi yang masuk dan
keluar dari
sistem otomatis (Satzinger, Jackson, & Burd, 2012, p.
126).
-
38
Gambar 2.22 - System sequence diagram (Satzinger, Jackson, &
Burd, 2012, p. 342)
Pada gambar 2.22, actor adalah sebagai seseorang yang
berinteraksi
dengan sistem dengan cara memasukkan data input dan menerima
data ouput.
Sebuah kotak dengan label :System adalah sebuah objek yang
mewakili
seluruh sistem otomatis. Di bawah actor dan :System terdapat
garis putus-
putus vertikal yang disebut lifelines. Lifelines atau object
lifeline hanyalah
sebuah ekstensi dari objek tersebut (antara actor atau objek)
selama use case.
Panah diantara lifelines merepresentasikan pesan yang dikirim
oleh si actor.
Tujuan dari garis lifelines adalah untuk menunjukkan urutan
pesan yang
-
39
dikirim dan diterima oleh actor dan objek. Urutan pesan dalam
diagram
dibaca dari atas ke bawah.
Pada sequence diagram, message merupakan sebuah aksi yang
dipanggil pada objek tujuan. Sebuah pesan diberi label untuk
menjelaskan
tujuan dan setiap data input yang dikirim. Nama pesan harus
berupa kata
kerja untuk memperjelas tujuan.
Panah putus-putus menunjukkan sebuah respon atau jawaban. Karena
ini
merupakan sebuah respon, hanya data yang dikirim pada respon
yang dicatat
(Satzinger, Jackson, & Burd, 2012, p. 127-128).
2.2.17. Entity Relationship Diagram (ERD)
Gambar 2.23 - ERD dengan atribut (Satzinger, Jackson, &
Burd, 2012,
p. 99)
Menurut Satzinger, Jackson, & Burd (2012, p.98), ERD adalah
sebuah
diagram yang terdiri dari entitas data (i.e. set data) dan
hubungannya. Entitas
data merupakan istilah yang digunakan dalam ERD untuk
menggambarkan
sekumpulan hal-hal atau suatu hal yang individu (Satzinger,
Jackson, & Burd,
2012, p. 98).
-
40
Gambar 2.24 - ERD sederhana (Satzinger, Jackson, & Burd,
2012, p. 98)
Gambar 2.25 - Cardinality symbols of ERD relationship
(Satzinger,
Jackson, & Burd, 2012, p. 99)
Pada ERD, persegi panjang merepresentasikan data entitas, dan
garis
yang menghubungkan persegi panjang tersebut menunjukkan
hubungan
antara entitas data. Pada gambar 2.24 menunjukkan sebuah contoh
dari ERD
sederhana dengan dua entitas data yaitu Pelanggan (Customer) dan
Pesanan
(Order). Setiap pelanggan dapat melakukan minimum nol (0)
pesanan dan
maksimum banyak pesanan, dan sebuah pesanan dilakukan oleh
setidaknya
satu orang pelanggan (Satzinger, Jackson, & Burd, 2012, p.
98-99).
-
41
2.2.18. Rubrik
Gambar 2.26 - Format rubric (Stevens & Levi, 2013, p. 3)
Menurut Brückner (2017, p. 293), rubrik pertama kali
diperkenalkan
pada tahun 1970 dalam menilai sekelompok orang menggunakan
kriteria multi-
dimensional yang dijelaskan dengan jelas untuk mengetahui skor
keseluruhan
(Brückner, 2017, p. 293). Menurut Stevens & Levi (2013, p.
1), rubrik adalah
alat penilaian yang sudah dibuat terlebih dahulu yang berisi
penjabaran
terhadap ekspektasi spesifik untuk sebuah tugas (Stevens &
Levi, 2013, p. 1).
Menurut Ayhan (2015, p. 10), terdapat 2 buah rubrik yang
paling
sering digunakan yaitu Holistic dan Analytic (Ayhan, 2015, p.
10). Menurut
Tomas, Whitt, Lavelle-Hill & Severn (2019, p. 7), analytic
rubric dapat
diartikan sebagai bagian proses penandaan yang memiliki tujuan
untuk
memberikan feedback yang lebih rinci dan bersifat kualitatif
berdasarkan
kriteria yang berhubungan (Tomas, et al., 2019, p. 7). Menurut
Ounis (2017,
p. 680), holistic lebih mengacu kepada kinerja keseluruhan
melalui sebuah
pengujian, kinerja yang diuji akan dianggap menjadi satu
kesatuan yang utuh
sehingga tidak memungkinkan untuk menilai satu per satu tanpa
hubungan
satu dengan yang lainnya (Ounis, 2017, p. 680).
Menurut Brookhart (2018, p. 1), sebuah rubric memiliki 2
komponen
yaitu kriteria terhadap ekspektasi kinerja dan deskripsi tingkat
yang
menjabarkan instansiasi sebuah kriteria di berbagai tingkat
kualitas dari yang
paling tinggi hingga paling rendah (Brookhart, 2018, p.1).
-
42
Menurut Stevens & Levi (2013, p. 3-8), terdapat 4 bagian
dari sebuah
rubrik berupa:
- Deksripsi tugas
Deskripsi tugas biasanya dibuat oleh instruktor berupa
sebuah
kegiatan/informasi yang akan dilakukan, deskripsi ini
biasanya
diambil dari silabus dan diletakkan di atas rubrik penilaian
.
- Skala
Skala merupakan sekumpulan indikator yang digunakan untuk
melakukan penilaian terhadap data. Skala yang optimal
biasanya
berkisar antara 3 sampai 5 indikator.
- Dimensi
Dimensi merupakan hasil yang diharapkan dari sebuah data
yang
telah dinilai berdasarkan indikator dan digolongkan kedalam
dimensi yang sesuai.
- Deskripsi dimensi
Penjelasan detail mengenai nilai setiap dimensi. Setiap
rubrik
setidaknya harus mengandung 1 deskripsi yang memiliki dampak
paling besar terkait sebuah dimensi (Stevens & Levi, 2013,
p. 3-
8).
2.2.19. Delapan Aturan Emas (8 Golden Rules)
Menurut Shneiderman & Plaisant (2010, p. 88-89), terdapat 8
aturan
emas yang dapat digunakan sebagai panduan dalam membuat
desain
antarmuka yaitu sebagai berikut:
1. Strive for consistency
Urutan aksi yang konsisten diperlukan dalam situasi-situasi
yang
serupa. Penggunaan warna, layout, huruf besar, fonts dan
seterusnya harus diterapkan secara konsisten pada
keseluruhan.
Dengan menerapkan konsistensi, user akan menjadi lebih mudah
dalam menggapai tujuan mereka.
2. Cater to universal usability
-
43
Kenali kebutuhan dari berbagai user yang berbeda. Perbedaan
dari
pemula hingga yang sudah ahli, perbedaan umur, disabilitas.
Dengan menambahkan fitur-fitur untuk pemula seperti
penjelasan-
penjelasan, dan fitur-fitur untuk yang sudah ahli seperti
shortcut
dapat memperkaya desain antarmuka dan meningkatkan persepsi
pada kualitas sistem.
3. Offer informative feedback
Untuk setiap aksi yang dilakukan oleh user harus diberikan
feedback dari sistem untuk memberitahu user bahwa permintaan
mereka telah diterima dan direspon. Untuk aksi yang kecil
dan
yang sering dilakukan responnya dapat berupa yang sederhana,
sedangkan untuk aksi yang besar dan jarang dilakukan,
responnya
harus lebih signifikan. Presentasi visual dari obyek-obyek
yang
menarik dapat memperlihatkan perubahan-perubahan secara
eksplisit.
4. Design dialogs to yield closure
Urutan suatu aksi harus diorganisir ke dalam kelompok proses
permulaan, pertengahan, dan akhir. Feedback yang informatif
pada
saat user menyelesaikan kelompok aksi-aksi tersebut dapat
memberikan kepuasan dan rasa lega, sehingga user paham bahwa
proses yang mereka lakukan sudah selesai dan dapat
melanjutkan
ke kelompok aksi-aksi selanjutnya. Seperti contoh, sebuah
website
e-commerce membawa user dari halaman pemilihan produk ke
halaman checkout, setelah itu diakhiri dengan menampilkan
halaman konfirmasi bahwa transaksi telah selesai.
5. Prevents errors
Sebisa mungkin membuat desain sebuah sistem dimana user
tidak
dapat membuat kesalahan yang serius atau besar. Jika user
membuat kesalahan, antarmuka akan mendeteksi kesalahan
tersebut dan menawarkan instruksi yang simpel, konstruktif,
dan
spesifik untuk pemulihan. Sebagai contoh, user tidak perlu
mengetik ulang seluruh alamat dari awal jika mereka hanya
salah
pada bagian kode pos, melainkan diarahkan untuk hanya
memperbaiki ke bagian yang salah.
-
44
6. Permit easy reversal of actions
Sebisa mungkin membuat user dapat membatalkan suatu aksi
atau
kembali ke halaman sebelumnya. Fitur ini dapat mengurangi
kecemasan, karena user tahu bahwa kesalahan tersebut dapat
dibatalkan, dan mendorong user untuk menjelajahi pilihan
yang
lainnya. Unit ini dapat diterapkan pada aksi tunggal,
pengisian
data, atau sekumpulan aksi seperti pengisian blok
nama-alamat.
7. Support internal locus of control
User yang berpengalaman memiliki keinginan yang kuat bahwa
antarmuka tersebut merespon terhadap aksi mereka. Mereka
tidak
mau ada perubahan dalam tindakan yang sudah nyaman
dilakukan,
dan mereka terganggu jika terjadi kesulitan saat ingin
mencari
informasi yang diperlukan dan ketidakmampuan dalam
mendapatkan
hasil yang mereka inginkan.
8. Reduce short-term memory load
Karena manusia memiliki batas kemampuan dalam memproses
informasi dalam memori jangka pendek, para desainer harus
membuat antarmuka yang dapat digunakan dengan mudah oleh
user dan tidak terlalu membebani ingatan mereka pada saat
menggunakannya (Shneiderman & Plaisant, 2010, p. 88-89).
2.2.20. Lima Faktor Manusia Terukur
Menurut Shneiderman & Plaisant (2010, p. 32), terdapat
faktor-faktor
yang digunakan untuk pengujian perancangan antarmuka yaitu
sebagai
berikut:
1. Time to learn
Jangka waktu yang dibutukan pengguna untuk belajar
menggunakan aksi yang berhubungan dengan suatu tugas.
2. Speed of performance
Jangka waktu yang dibutuhkan untuk menyelesaikan suatu
tugas.
3. Rate of errors by users
Banyaknya kesalahan dan jenis kesalahan yang dibuat oleh
pengguna dalam menyelesaikan suatu tugas. Meskipun waktu
yang
digunakan untuk menanggani kesalahan tersebut dapat
dimasukkan
-
45
ke kecepatan performa, penangganan masalah merupakan suatu
komponen kritis dari penggunaan antarmuka, maka hal tersebut
layak untuk dipelajari lebih lanjut.
4. Retention over time
Seberapa baik pengguna dapat mengingat informasi setelah
satu
jam, satu hari, atau satu minggu. Daya ingat dapat
dihubungkan
dengan jangka waktu yang dibutuhkan untuk belajar dan
seberapa
sering penggunaan aplikasi tersebut digunakan.
5. Subjective satisfaction
Seberapa banyak rasa suka pengguna dalam menggunakan
berbagai
aspek dari antarmuka. Jawaban ini dapat dipastikan dengan
melakukan wawancara atau dengan menggunakan kuesioner yang
mencakup skala kepuasan dan kolom komentar untuk kritik dan
saran (Shneiderman & Plaisant, 2010, p. 32).
2.2.21. Black Box Testing
Menurut Mustaqbal, Firdaus, & Rahmadi (2015, p. 31),
pengujian
adalah suatu proses dengan tujuan menemukan suatu kesalahan.
Suatu
pengujian dikatakan sukses apabila dapat membongkar suatu
kesalahan yang
awalnya tidak ditemukan (Mustaqbal, Firdaus, & Rahmadi,
2015, p. 31).
Menurut Pressman & Maxim (2015, p. 509), Black Box
Testing
berfokus pada fungsionalitas dari perangkat lunak. Black Box
Testing
merupakan pengujian yang dilakukan dengan menguji input dan
ouput
aplikasi untuk memastikan bahwa semua berjalan dengan baik.
Black Box
Testing bukanlah alternative dari White Box Testing, melainkan
pendekatan
pelengkap untuk mengungkap kesalahan yang berbeda dari metode
White Box
Testing.
Dalam metode Black Box Testing cenderung menemukan kesalahan
dalam kategori sebagai berikut:
1. Fungsi yang tidak benar atau hilang.
2. Kesalahan antarmuka.
3. Kesalahan dalam struktur data atau akses basis data
eksternal.
-
46
4. Kesalahan kinerja (performance errors).
5. Kesalahan inisialisasi dan terminasi (Pressman &
Maxim,
2015, p. 509).
2.2.22. Customer Complaint Behaviour
Menurut Prasetyo, Hartoyo, & Tinaprila (2016, p. 101),
mengeluh
adalah salah satu bentuk komunikasi bagi konsumen untuk
mengungkapkan
rasa ketidakpuasan yang dirasakannya. Menurut Ellyawati (2017,
p. 18),
sebagian besar customer yang mendapatkan kualitas pelayanan yang
buruk
cenderung mengajukan keluhan ke perusahaan, teman, maupun
layanan pihak
ketiga. Menurut Keiningham, Frennea, Aksoy, Buoye, & Mittal
(2015, p.
438), customer mengeluh ketika pelayanan yang didapat tidak
sesuai dengan
ekspektasi.
Menurut Dixit (2017, p. 241), customer complain behavior
(CCB)
merupakan aksi yang dapat berupa behavioural atau nonbehavioural
yang
dilancarkan oleh customer ketika suatu hal tidak seperti yang
diharapkan.
Menurut Ekinci, Calderon, & Siala (2016, p. 2), keluhan yang
diajukan dalam
bentuk behavioural dapat berupa mengajukan keluhan langsung,
negative
word-of-mouth (WOM), berpindah ke brand lain, serta tidak lagi
membeli
produk ditempat yang menimbulkan kekecewaan. Jika keluhan
diajukan
langsung oleh customer maka perusahaan dapat memberikan
kompensasi atau
menggunakan taktik dalam mengelola keluhan agar mampu
mempertahankan
customer. Menurut Ro & Matilla (2015, p. 96) ada 2 tipe
keluhan yang
diajukan customer dalam bentuk nonbehavioural yaitu beberapa
customer
tidak mengajukan keluhan karena loyalitas customer sehingga
ingin
memberikan kesempatan lain namun untuk sebagian customer
memutuskan
untuk tidak mengajukan keluhan karena customer merasa tidak
setimpal
untuk mengajukan sebuah keluhan terhadap suatu perusahaan.
Menurut Ellyawati (2017, p. 18), layanan after sales yang
baik
menjadi nilai tambahan bagi sebuah perusahaan dalam bersaing
salah satunya
dengan menangani keluhan dari customer. Menurut Hu, Rabinovich,
& Hou
-
47
(2015, p. 95), perilaku keluhan customer tidak hanya
mempengaruhi loyal
customer melainkan niatan untuk membeli bagi customer lain.
2.2.23. Wireframe
Menurut Faranello (2012, p. 2), wireframing merupakan
pembuatan sketsa terhadap kerangka ide dari sebuah produk
atau
tampilan web yang menjelaskan tentang apa yang akan
dilakukan,
bagaimana kelihatannya, dan bagaimana fungsinya (Faranello,
2012,
p. 2). Menurut Cuello & Vittone (2013, p. 69), membuat
wireframe
pada tahap awal dapat memungkinkan evaluasi navigasi dan
interaksi
dan menciptakan dasar yang kuat untuk desain visual.
Wireframe
dapat digunakan dalam beberapa cara berupa:
1. Alat eksplorasi pribadi
Sebuah wireframe mengizinkan designer untuk dapat
mengevaluasi interaksi dan navigasi yang berbeda secara
cepat.
2. Alat untuk mengkomunikasikan ide abstrak
Pada tahap awal sebuah proyek, perlu untuk mengirimkan
gagasan awal kepada orang lain yang berfokus pada
fungsionalitas.
3. Mekanisme untuk evaluasi antar muka tahap awal
Sebelum men-design atau men-develop aplikasi,
permasalahan saat berinteraksi atau penggunaan dapat
ditemukan terlebih dahulu melalui feedback dari orang yang
belum mengetahui proyek yang terkait (Cuello & Vittone,
2013, p. 69).
2.2.24. Kamus data
Menurut Hermann (2018), kamus data merupakan sebuah alat
untuk menggambarkan sebuah struktur komunikasi sehingga
mempermudah tim teknis dan operasional dalam memenuhi
kebutuhan harian organisasi. Kamus data biasanya mengandung
elemen seperti:
-
48
- Field or attribute name: Sebuah label untuk setiap
atribut.
- Optional or Required: Menandakan bahwa sebuah
atribut bersifat optional atau wajib.
- Type: Mendefinisikan tipe data yang disimpan pada
sebuah atribut seperti text, numeric atau date/time.