rs1 2019 1 399 2001542626 2001543976 2001546082...

40
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

Upload: others

Post on 04-Feb-2021

0 views

Category:

Documents


0 download

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.