rs1 2019 1 399 2001542626 2001543976 2001546082...
TRANSCRIPT
-
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.