Nama
: Nadiar Ahmad Syaripul
Nim
: 10111121
Tempat, Tanggal Lahir : Garut, 29 April 1993
Jenis Kelamin
: Laki-Laki
Alamat
: Kp. Pasanggrahan Kec. Kersamanah Kab. Garut
No. Telp
: 085223866185
II.
RIWAYAT PENDIDIKAN
1998-1999
: TK Sejahtra V
1999-2005
: SD Negeri Kersamanah I
2005-2008
: SMP Negeri I Kersamanah
2008-2011
: SMA Negeri 9 Garut
2011-2016
: S1 Teknik Infromatika
Universitas Komputer Indonesia
Demikian riwayat hidup ini saya buat dengan sebenar-benarnya dalam
keadaan sadar dan tanpa paksaan.
Bandung, Agustus 2016
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana
NADIAR AHMAD SYARIPUL
10111121
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
iii
Puji dan syukur penulis panjatkan kehadirat Allah SWT atas rahmat dan
karunia-Nya sehingga penulis dapat menyelesaikan skripsi yang memiliki judul
“VISUALISASI DATA INTERAKTIF DATA TERBUKA PEMERINTAH
PROVINSI DKI JAKARTA TOPIK EKONOMI DAN KEUANGAN DAERAH”
sebagai syarat untuk menyelesaikan program studi Strata I (Starata Satu) Jurusan
Teknik Informatika, Fakultas Teknik dan Ilmu Komputer Universitas Komputer
Indonesia.
Penyusunan skripsi ini tidak akan terwujud tanpa mendapat dukungan,
bantuan dan masukan dari berbagai pihak. Untuk itu, penulis ingin menyampaikan
terima kasih kepada:
1.
Allah SWT atas petunjuk, pertolongan, karunia, hidayah, kekuatan, kesehatan,
dan kesabaran selama menyelesaikan skripsi ini. Sholawat serta salam selalu
terlimpahkan kepada baginda Nabi Muhammad SAW.
2.
Orang tua, Ibu Popon Nuryati dan Bp. Amang Abdurahman, yang senantiasa
memberikan doa, semangat, motivasi, dan kasih sayangnya kepada penulis.
3.
Bapak Adam Mukharil Bactiar, S.Kom., M.T. selaku dosen pembimbing yang
telah sabar membimbing, memotivasi, memberikan perhatian dan memberikan
pengarahan selama penelitian skripsi ini sehingga penelitian skripsi ini bisa
terselesaikan dengan sebaik-baiknya.
4.
Ibu Dian Dharmayati, S.T., M.Kom. selaku reviewer
yang telah memberikan
masukan dan arahan selama perbaikan perangkat lunak ini.
5.
Ibu Kania Evita Dewi, selaku penguji tiga yang telah memberikan masukan
dalam penelitian skripsi ini.
6.
Bapak Iskandar Ikbal, S.T., M.Kom selaku dosen wali IF-4 angkatan 2011.
7.
Teman-teman kelas IF-4 angkatan 2011, yang selalu mendukung penulis dalam
penelitian skripsi ini.
iv
banyak kekurangan dan jauh dari kesempurnaan. Oleh karena itu, saran dan kritik
yang membangun sangat diharapkan untuk pengembangan ke arah yang lebih baik.
Bandung, Juli 2016
v
ABSTRACT ... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... viii
DAFTAR TABEL ... xii
DAFTAR SIMBOL ... xvii
DAFTAR LAMPIRAN ... xx
BAB I
PENDAHULUAN ... 1
1.1
Latar Belakang Masalah ... 1
1.2
Perumusan Masalah ... 2
1.3
Maksud dan Tujuan ... 2
1.4
Batasan Masalah ... 3
1.5
Metodologi Penelitian ... 3
1.6
Sistematika Penulisan ... 5
BAB II LANDASAN TEORI ... 7
2.1
Konsep Data ... 7
2.1.1 Data ... 7
2.1.2 Basis Data ... 7
2.1.3 Basis Data NoSQL ... 8
2.2
Visualisasi Data ... 9
2.2.1 Visual Encoding ... 9
2.2.2 Tipe-Tipe Visualisasi ... 10
2.2.3 Proses Visualisasi Data ... 14
2.3
Statistika Deskriptif ... 15
vi
2.3.2 Ukuran Gejala Pusat dan Variansi ... 16
2.3.3 z Skor dan Distribusi Normal ... 18
2.4
Statistika Inferensi ... 19
2.4.1 Probabilitas ... 19
2.4.2 Distribusi Sampling ... 20
2.5
Korelasi ... 21
2.5.1 Korelasi Pearson r ... 21
2.5.2 Interpretasi r
2... 22
2.5.3 Faktor-Faktor yang Memengaruhi Nilai r ... 23
2.5.4 Pendugaan Interval Rho (
ρ
) ... 23
2.6
Regresi Linear ... 24
2.7
k-Means ... 25
BAB III ANALISIS DAN PERANCANGAN DATA ... 27
3.1
Analisis Visualisasi Data ... 27
3.1.1 Analisis Masalah ... 27
3.1.2 Analisis Sumber Data ... 27
3.1.3 Analisis Segmentasi Pengguna Informasi ... 31
3.1.4 Analisis Kebutuhan Informasi Berdasarkan Segmentasi Pengguna ... 32
3.1.5 Analisis Algoritma ... 34
3.1.6 Pemetaan Visualisasi Data ... 59
3.2
Analisis Spesifikasi Kebutuhan Perangkat Lunak ... 79
3.2.1 Analisis Kebutuhan Non-Fungsional ... 79
3.2.2 Analisis Kebutuhan Fungsional ... 80
3.3
Perancangan Data ... 110
3.4
Perancangan Sistem ... 114
3.4.1 Perancangan Arsitektur ... 114
3.4.2 Perancangan Struktur Menu ... 116
3.4.3 Perancangan Antarmuka ... 117
BAB IV IMPLEMENTASI DAN PENGUJIAN ... 135
vii
4.1.1 Lingkungan Implementasi ... 135
4.1.2 Implementasi Data ... 136
4.1.3 Implementasi Antarmuka ... 142
4.2
Pengujian Sistem ... 143
4.2.1 Rencana Pengujian ... 143
4.2.2 Sekenario Pengujian ... 159
4.2.3 Hasil Pengujian ... 188
4.2.4 Evaluasi Pengujian ... 212
BAB V KESIMPULAN DAN SARAN ... 213
5.1
Kesimpulan ... 213
5.2
Saran ... 213
215
in the Field of Internet Science,” Int. J. Internet Sci., vol. 7, no. 1, pp. 1–5,
2013.
[2]
Anon, “Open Definition - Defining Open in Open Data, Open Content and
Open Knowledge.” [Online]. Available: http://opendefinition.org/.
[Accessed: 03-Oct-2015].
[3]
Anon, “Tentang - Data.jakarta.go.id.” [Online]. Available:
http://data.jakarta.go.id/about. [Accessed: 03-Oct-2015].
[4]
I. J. Asmara, E. Achelia, W. Maulana, R. Wijayanti, and Y. Rianto, “Teknik
Visualisasi Grafik Berbasis Web Di Atas Platform,” Semin. Nas. Apl. Teknol.
Inf. 2009 (SNATI 2009), vol. 2009, no. Snati, pp. 44–47, 2009.
[5]
M. Berndtsson, J. Hansson, B. Olsson, and B. Lundell,
Thesis Guide - A
Guide for Students in Computer Science and Information Systems. 2008.
[6]
C. O’Neil and R. Schutt,
Doing Data Science: Straight Talk from the
Frontline. 2013.
[7]
R. Elmasri and S. B. Navathe,
Basics of Functional Dependencies and
Normalization for Relational Databases. 2010.
[8]
Fathansyah, Basis Data Edisi Revisi. Bandung: Informatika, 2012.
[9]
A. Silberschatz, H. F. Korth, and S. Sudarshan, Database System Concepts -
6th. ed., vol. 4. 2011.
[10] G. Vaish, Getting started with NoSQL. 2013.
[11] F. Frankel, Visualizing Data, vol. 92, no. 2. 2004.
[12] “Visual Encoding | Targetprocess - Visual management software.” [Online].
Available: https://www.targetprocess.com/articles/visual-encoding/.
[Accessed: 17-Dec-2015].
216
Types.” [Online]. Available:
http://guides.library.duke.edu/datavis/vis_types. [Accessed: 14-Oct-2015].
[16] A. M. Glenberg and M. E. Andrzejewski,
Learning from data: an
introduction to statistical reasoning. 2008.
[17] Anon, “Udacity - Intro to Inferential Statistics - Statistical Significance.”
[Online]. Available:
https://www.udacity.com/course/viewer#!/c-ud201/l-1330628575/m-230229089. [Accessed: 16-Dec-2015].
[18] Anon, “R-Squared: Sometimes, a Square is just a Square.” [Online].
Available:
http://blog.minitab.com/blog/statistics-and-quality-data-analysis/r-squared-sometimes-a-square-is-just-a-square. [Accessed: 16-Dec-2015].
[19] Anon, “MATH 241: Materials - confidence interval for r.” [Online].
Available:
http://turner.faculty.swau.edu/mathematics/math241/materials/rconf/.
[Accessed: 16-Dec-2015].
[20] R. M. Forte, Mastering Predictive Analytics with R. 2015.
[21] J. Han, M. Kamber, and J. Pei, “Data Mining: Concepts and Techniques,
Third Edition,” Morgan Kaufmann Publishers. p. 745, 2012.
[22] Boundless, “Macroeconomics,” 21-Jul-2015. [Online]. Available:
https://www.boundless.com/economics/textbooks/boundless-economics-
textbook/principles-of-economics-1/differences-between-macroeconomics-and-microeconomics-44/macroeconomics-162-12260/. [Accessed:
01-Dec-2015].
[23] Anon, “Microeconomics and Macroeconomics | Microeconomics.” [Online].
Available:
217
2015].
[25] D. W. Scott, “Optimal and Data-Based Histograms,” Biometrika, vol. 66, no.
3, pp. 605–610, 1979.
[26] M. Last and A. Kandel, “Automated Detection of Outliers in Real-World
Data,” Proc. Second Int. Conf. Intell. Technol., no. MARCH 2002, pp. 1–10,
2001.
[27] Anon, “CRS Report: THE 1997-98 ASIAN FINANCIAL CRISIS.”
[Online]. Available: http://fas.org/man/crs/crs-asia2.htm. [Accessed:
26-Feb-2016].
[28] S. Weisberg, “Simple linear regression,”
Appl. Linear Regression, Third Ed.,
no. 1994, pp. 19–46, 1985.
1
1.1
Latar Belakang Masalah
Pada era digital seperti sekarang, menemukan data tidaklah begitu sulit, data
(dataset) banyak ditemukan di internet. Dataset tersebut sangatlah besar, kompleks,
dan sulit dianalisis dengan perangkat lunak
data processing
seperti
spreadsheet
[1].
Pemerintah Provinsi DKI Jakarta menyediakan dataset yang bebas didistribusikan,
disimpan, dan dikelola. Dataset seperti ini dikenal dengan istilah
“open data”
(data
terbuka) [2]. Saat penelitian ini dilakukan, dataset yang terdapat pada tempat
penyimpanan data terbuka Pemerintah Provinsi DKI Jakarta sebanyak 556 dataset.
Selain sebagai transparansi, dataset itu juga sebagai upaya Pemerintah Provinsi DKI
Jakarta menyediakan satu basis data pembangunan yang akurat, terbuka, terpusat,
dan terintegrasi [3].
Data ekonomi dan keuangan daerah menggambarkan data tentang
pertumbuhan ekonomi dan hasil kinerja pemerintah, data ini ada sebagai upaya
transparansi pemerintah baik kepada pelaku ekonomi maupun pelaku non-ekonomi.
Akan tetapi, berdasarkan hasil kuesioner terbuka yang dilakukan pada tanggal 25
Agustus 2015 s/d 27 Agustus 2015 dengan segmentasi responden pelaku UKM atau
entrepreneur
, mayoritas responden setuju bahwa data yang disajikan dalam tempat
penyimpanan data Pemerintah Provinsi DKI Jakarta masih sulit dibaca dan
dimengerti. Selanjutnya, berdasarkan wawancara dengan Ibu Sri Dewi Anggadini,
SE., M.Si, dosen tetap Fakultas Ekonomi di Universitas Komputer Indonesia
(UNIKOM). Menurut beliau, melihat dataset yang digunakan dalam penelitian ini,
segmentasi pengguna informasi secara garis besar dibedakan menjadi dua segmen.
Segmen pertama adalah pelaku ekonomi makro dan segmen kedua dalah pelaku
Tabel I-1 Masalah Berdasarkan Segmentasi
No. Segmentasi Masalah
1 Pelaku ekonomi makro Sulitnya melihat bagaimana sumber daya telah dimanfaatkan.
2 Pelaku ekonomi makro Tidak dapat melihat trend variabel-variabel ekonomi mengalami pergerakan.
3 Pelaku ekonomi mikro Tidak dapat melihat distribusi harga suatu komoditas.
4 Pelaku ekonomi mikro Sulitnya melihat permintaan dan penawaran terhadap komoditas.
Cara efektif menyajikan data yang detail menjadi informasi yang mudah
diterima adalah dengan cara abstraksi menjadi informasi visual. Visualisasi melalui
perumpamaan visual dari dulu hingga saat ini telah digunakan sebagai teknik
penyimpanan pesan. Dahulu perumpamaan visual berbentuk simbol-simbol yang
merepresentasikan suatu makna. Visualisasi mengubah data menjadi informasi
yang bisa dimengerti secara universal [4].
Berdasarkan masalah yang dipaparkan, dapat disimpulkan bahwa (publik)
segmentasi pelaku ekonomi makro dan ekonomi mikro memerlukan visual analisis
dari dataset tersebut. Visualisasi dapat menjadi solusi dalam memahami informasi
umum dari dataset ekonomi dan keuangan.
1.2
Perumusan Masalah
Berdasarkan pemaparan latar belakang masalah, maka perumusan
permasalahan yang terdapat pada penelitian ini adalah memvisualisasikan dataset
ekonomi dan keuangan daerah Pemerintah Provinsi DKI Jakarta.
1.3
Maksud dan Tujuan
Maksud dari penelitian ini adalah melakukan implementasi visualisasi data
dari dataset terbuka topik ekonomi dan keuangan daerah Pemerintah Provinsi DKI
Jakarta berdasarkan analisis statistik/algoritma berbasis aplikasi
mobile
.
1.
Membantu pelaku ekonomi makro melihat seberapa besar sumber daya telah
dimanfaatkan.
2.
Membantu pelaku ekonomi makro melihat
trend
variabel-variabel ekonomi
mengalami pergerakan.
3.
Membantu pelaku ekonomi mikro melihat distribusi harga suatu komoditas.
4.
Membantu pelaku ekonomi mikro melihat seberapa besar permintaan dan
penawaran komoditas.
1.4
Batasan Masalah
Adapun batasan masalah dari penelitian ini adalah:
1.
Dataset yang digunakan adalah dataset keuangan daerah dan perekonomian
yang didapatkan dari tempat penyimpanan data terbuka (
open data
)
Pemerintah
Provinsi DKI Jakarta (http://data.jakarta.go.id).
2.
Segmentasi pengguna produk dari penelitian ini adalah pelaku ekonomi makro
dan pelaku ekonomi mikro.
3.
Sistem hanya menampilkan informasi visual, tidak menerima data masukan ke
basis data atau tidak melakukan
storing data
dari pengguna.
4.
Aplikasi hanya menggunakan Bahasa Indonesia.
5.
Pendekatan analisis perangkat lunak menggunakan
Object Oriented Analysis
and Design
.
1.5
Metodologi Penelitian
Gambar I-1
Data Science Process
[6]
Tahap pertama adalah tahap pengumpulan data, data yang diambil adalah
data dalam bentuk csv dari tempat penyimpanan data terbuka Pemprov DKI Jakarta
(http://data.jakarta.go.id), data ini belum bersih, masih terdapat beberapa tipe data
yang tidak sesuai (
null value
) dan
outliers
. Untuk melakukan proses data diperlukan
pembersihan data terlebih dahulu, proses ini disebut dengan
data cleaning.
Pada tahap
data cleaning
, data dibersihkan sekaligus diproses menggunakan
bahasa R. Keluaran yang dihasilkan adalah
data frame
yang sudah bersih, dalam
arti sudah tidak terdapat
null value
dan tipe data sudah sesuai.
Selanjutnya peneliti melakukan pemahaman dan analisis terhadap data.
Tahap ini tidak berlangsung satu arah, tetapi peneliti bisa kembali ke tahap pertama
untuk memeriksa/mengumpulkan data yang masih kurang. Tahap ini disebut
dengan EDA (
Exploratory Data Analysis
).
Selanjutnya adalah tahap penyelesaian masalah menggunakan algoritma
tertentu, tahap ini bersifat pilihan. Algoritma yang akan digunakan disesuaikan
berdasarkan masalah yang coba diselesaikan atau informasi yang dicari. Apabila
informasi sudah tersedia pada tahap analisis, maka tahap algoritma dapat dilewat
dan langsung menuju tahap selanjutnya, yaitu visualisasi data.
visualisasi dua dimensi dibuat, visualisasi ini menjadi
main ingredients
dalam tahap
perancangan aplikasi.
Tahap selanjutnya adalah membuat
blue print
untuk aplikasi yang dibuat,
blue print
ini mengacu pada proses perancangan rekayasa perangkat lunak.
Tahap terakhir, yaitu mengimpelemtasikan perancangan aplikasi. Istilah
lain tahap ini adalah pengkodingan. Informasi visual akan dikomunikasikan dalam
bentuk aplikasi.
1.6
Sistematika Penulisan
Sistematika penulisan yang akan digunakan untuk laporan akhir penelitian
disusun untuk memberikan gambaran umum tentang penelitian yang dikerjakan.
Sistematika penulisan dalam tugas akhir ini adalah sebagai berikut:
BAB I PENDAHULUAN
Bab 1 secara singkat membahas tentang latar belakang permasalahan,
perumusan masalah, maksud dan tujuan, batasan masalah, metodologi penelitian,
dan sistematika penulisan.
BAB II LANDASAN TEORI
Bab 2 menguraikan bahan-bahan kajian, konsep dasar, dan teori dari para
ahli yang berkaitan dengan penelitian. Meninjau permasalahan dan hal-hal yang
berguna dari penelitian-penelitian dan sintesis serupa yang pernah dikerjakan
sebelumnya dan menggunakannya sebagai acuan pemecahan masalah pada
penelitian ini.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Bab 3 menguraikan hasil analisis dari objek penelitian untuk mengetahui hal
atau masalah apa yang timbul dan mencoba memecahkan masalah tersebut dengan
mengaplikasikan perangkat-perangkat dan pemodelan yang digunakan.
BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab 4 menguraikan tentang perancangan solusi beserta implementasinya
dari masalah-masalah yang telah dianalisis. Pada bagian ini juga akan ditentukan
BAB V KESIMPULAN DAN SARAN
7
2.1
Konsep Data
2.1.1
Data
Menurut kamus internasional Cambridge data adalah kumpulan dari
fakta-fakta yang berupa angka yang digunakan untuk membantu pengambilan keputusan.
Menurut Joseph M. Firestone dalam buku
“Enterprise Information Portals and
Knowladge Management” data adalah kumpulan dari datum, yang mana datum
adalah nilai observasi yang bisa diukur atau dihitung. Kesimpulannya, data
merupakan fakta-fakta dari fenomena yang sudah ada.
2.1.2
Basis Data
Basis data adalah kumpulan data yang merepresentasikan dunia nyata
didesain dan dibangun dengan tujuan tertentu [7]. Perangkat lunak yang membantu
pengguna dalam mengelola dan membuat basis data disebut dengan DBMS (Data
Base Management System) [8]. Tujuan utama dari DBMS adalah menyediakan cara
untuk menyimpan dan mengambil informasi dari basis data secara lebih mudah dan
efisien.
Sistem basis data didesain untuk mengelola informasi yang besar [9].
Pengelolaan data termasuk mendefinisikan struktur informasi penyimpanan dan
penyediaan mekanisme untuk melakukan manipulasi informasi. Selain itu, sistem
basis data juga harus bisa memastikan bahwa informasi disimpan dengan aman,
baik dari system crash atau akses yang tidak diizinkan. Jika data memang dikelola
oleh beberapa pengguna, sistem harus menghindari sebisa mungkin hasil yang
anomali.
Interaksi antara pengguna dan DBMS ditentukan melalui bahasa atau sintak
khusus sesuai dengan jenis DBMS yang digunakan. Pada umumnya bahasa DBMS
dikelompokan ke dalam dua bentuk, yaitu DDL (data-definition language) dan
DML (data-manipulation language) [8].
DDL digunakan untuk membuat skema dan memberikan properti tambahan
data, dengan kata lain DDL adalah bahasa untuk membuat tabel, membuat indeks,
mengubah tabel, dan menentukan struktur penyimpanan tabel. Keluaran dari
perintah DDL adalah kumpulan tabel yang disimpan dalam berkas khusus yang
disebut data dictionary.
2.
DML (Data Manipulation Language)
DML adalah bahasa yang memungkinkan pengguna DBMS mengakses atau
melakukan manipulasi data yang diorganisasikan dengan model data yang sesuai.
Tipe akses tersebut yaitu:
§
Mengambil (retrieve) informasi dari basis data.
§
Memasukan (insert) informasi baru ke basis data.
§
Menghapus (delete) infromasi dari basis data.
§
Modifikasi (update) informasi yang terdapat dari basis data.
2.1.3
Basis Data NoSQL
NoSQL diinterpretasikan dengan “not only SQL” (bukan SQL saja) DBMS
yang tidak memakai model relasi; NoSQL tidak dibangun di atas tabel, sehingga
tidak bisa memakai query SQL untuk melakukan manipulasi data. Keunggulan
NoSQL dibandingkan basis data relasi ada pada skabilitas [10]. Selain skalabilitas,
NoSQL memiliki keunggulan sebagai berikut [10]:
§
Scemaless data representation: Hampir semua model NoSQL
merepresentasikan
schemalees. Administrator basis data tidak perlu
memikirkan bagaimana struktur dan model basis data yang berubah setiap
waktu.
§
Development time: Query yang komplek pada basis relasi yang sudah besar,
akan membuat proses penyajian data menjadi lambat (misalnya JOIN tabel
pada basis data yang tersebar di banyak server). Pada NoSQL hal demikian
tidak terjadi.
§
Plan ahead for scalability: Aplikasi yang memakai model NoSQL akan
2.2
Visualisasi Data
Data yang sangat banyak, kompleks, dan tidak teratur sangat sulit untuk
dimengerti sekilas pandang oleh manusia. Membaca data akan menjadi masalah
ketika data secara inkremental bertambah atau berubah. Tujuan visualisasi data
adalah menunjukan mana hal-hal yang penting secara jelas, melihat pola, dan
menunjukan informasi dari berbagai dimensi. Visualisasi yang efektif membantu
pengguna dalam melakukan analisis, mempermudah menyimpulkan data, dan
membuat data yang kompleks menjadi lebih mudah untuk dimengerti [11].
Visualisasi data tidak semerta-merta mengubah data menjadi grafik visual,
visualisasi data memerlukan perencanaan. Setiap jenis data memiliki teknik
visualisasi berdasarkan kebutuhannya. Berdasarkan tingkat kompleksitas data,
untuk menghasilkan solusi yang berharga diperlukan dari berbagai disiplin ilmu,
yaitu: statistika, data mining, desain grafis, dan visualisasi informasi [11].
2.2.1
Visual Encoding
Visual encoding adalah sebuah cara memtakan data ke dalam struktur
visual. Desainer membantu pembaca memahami makna data lebih cepat dengan
memakai beberapa prinsip
visual encoding. Terdapat dua tipe prinsip
visual
encoding: planar dan retina. Manusia sangat peka terhadap variabel retina [12].
Terdapat tiga tipe data dasar dalam visual encoding. Berikut adalah tiga tipe
dasar visual encoding [12]:
1.
Kuantitatif: Tipe data ini dibedakan berdasarkan objek yang bisa diukur.
Contoh: Nilai ujian, durasi jam dalam sehari, jumlah hari dalam setahun, dll.
2.
Kualitatif: Tipe data ini dibedakan berdasarkan objek yang bisa dibandingkan
dan tidak memiliki ukuran yang pasti. Contoh: Baik, buruk, jelek, tidak yakin,
dll.
3.
Categorical: Tipe data ini dibedakan berdasarkan pengelompokan objek.
Contoh:
a.
Buah: apel, jeruk, mangga, dll;
b.
Negara: Singapura, Indonesia, Jepang, Rusia, dll;
2.2.2
Tipe-Tipe Visualisasi
Tujuan visualisasi adalah untuk membantu pemahaman manusia terhadap
data dengan memaksimalkan sistem penglihatan manusia yang bisa membedakan
pattren, spot the trends, dan identifikasi
outlier [13]. Tantangan dari visualisasi data
adalah bagaimana membuat visualisasi yang effektif, menarik, dan tepat terhadap
data yang dipakai [13].
Terdapat tujuh hal yang harus dipenuhi dalam melakukan abstraksi tingkat
tinggi (high-level abstraction), semakin banyak hal yang disembunyikan, semakin
banyak juga langkah-langkah yang harus dipenuhi, langkah tersebut yaitu [14]:
1.
Overview: Melihat gambaran dari keseluruhan data;
2.
Zoom: Memperbesar item yang terlihat menarik.
3.
Filter: Melakukan penyaringan terhadap item yang dirasa kurang menarik.
4.
Details-on-demand: Pilih satu item dari grup tertentu dan dapat melihat detail
kapan saja.
5.
Relate: Lihat relasi dari setiap item.
6.
History: Dapat mengulang kembali atau kembali ke aksi sebelumnya.
7.
Extract: Dapat melakukan ekstraksi dari parameter yang diberikan.
Berdasarkan taksonominya, grafik visual dibedakan menjadi [14]:
1D/Linear; 2D/Planar; 3D/Volumetric; Temporal; Multidimensional; Tree/
Hierarchical; dan Network.
2.2.2.1
1D/Linear
Grafik 1-dimensi termasuk di dalamnya adalah tipe data tekstual, kode
sumber program, dan huruf alfabet. Setiap item yang digambarkan memiliki elemen
garis . Contoh dari grafik 1D seperti kode-kode DNA, perbedaan kode sumber, dan
lain-lain.
2.2.2.2
2D/Planar
Grafik 2-dimensi termasuk di dalamnya peta geografis, denah rancangan,
atau layout koran. Setiap item pada grafik 2-dimensi memiliki total area dan atribut
(warna, ukuran, dll).
Gambar II-1 Contoh Grafik Planar/2D [13]
2.2.2.3
3D/Volumetric
Grafik 3-dimensi adalah visual yang menggambarkan objek nyata, seperti
tubuh manusia, bentuk bangunan, dll. Setiap item pada grafik 3-dimensi memiliki
volume.
2.2.2.4
Temporal
Grafik temporal adalah grafik yang berhubungan dengan waktu (time lines).
Grafik ini menggambarkan persentasi historikal dari data 1-dimensi. Yang
membedakan, grafik temporal memiliki item dengan waktu awal dan waktu akhir,
Gambar II-2 Contoh Grafik Temporal [15]
2.2.2.5
Multi-dimensional
Grafik temporal didalamnya termasuk grafik-grafik yang dihasilkan dari
manipulasi data dari disiplin ilmu statistika. Antarmuka representasi
milti-dimensional adalah grafik 2-dimensi. Grafik multi-dimensi termasuk didalamnya
grafik
pie, histogram, tag cloud, bubble cloud, bar, tree-map, scatter plot, bubble
chart, line chart, step chart, heat-map, parallel sets, spider chart, box-plot, mosaic
display, waterfall, dan tabular.
Gambar II-3 Tree-map (Multi-dimensi) [15]
2.2.2.6
Tree/Hierarchical
Tree adalah grafik herarkikal dari item-item yang memiliki hubungan satu
dan anak bisa memiliki banyak atribut. Grafik tree termasuk didalamnya grafik tree,
dendorogram, radial-tree, hyperbolic-tree, tree-map, dan sunburst.
Gambar II-4 Contoh Radial-tree [15]
2.2.2.7
Network
Network adalah grafik relasi yang tidak bisa digambarkan oleh grafik tree,
network memvisualisasikan relasi-relasi item yang banyak (semena-mena). Grafik
network termasuk di dalamnya grafik matrix, node-diagram, dependency, hive-plot,
alluvial diagram, dan subway.
2.2.3
Proses Visualisasi Data
Visualisasi data sama halnya seperti berkomunikasi, berhasil atau tidaknya
komunikasi ditentukan oleh bagaimana cara pembicara menyampaikan informasi
yang diberikan kepada lawan komunikasi. Terlalu meluas apa yang dibicarakan
juga termasuk hal yang buruk dalam berkomunikasi. Visualisasi yang baik tentu
terfokus, memberikan jawaban yang jelas, dan tidak terlalu detail [11]. Banyak
metode dan cara untuk membuat visualisasi yang baik, akan tetapi pada prinsip
dasarnya, visualisasi yang bagus memenuhi aspek:
overview, zoom dan
filtering,
selanjutnya details-on-demand [14].
Proses memahami sebuah data dimulai dari beberapa pertanyaan.
Selanjutnya tidak semerta-merta dijawab begitu saja, tetapi terdapat
langkah-langkah dalam menjawab pertanyaan berdasarkan data. Langkah-langkah-langkah tersebut
yaitu [11]:
1.
Acquire
Tahap ini adalah tahap dimana data dikumpulkan dari berbagai sumber.
Tahap ini bisa menjadi sangat rumit (contoh: mengambil data dari berkas log sistem
yang besar). Tahap acquire
hanya peduli bagaimana data didapatkan, jika produk
akhir akan didistribusikan melalui internet, maka data yang ada harus memiliki
struktur yang bisa disimpan dalam suatu server.
2.
Parse
Tahap ini adalah tahap dimana data dekemas ke dalam bentuk atau format
data baku dan dikelompokan ke dalam beberapa kategori. Setiap berkas data harus
dapat dibaca dan bisa dibedakan dengan data lain.
3.
Filter
Pada tahap ini beberapa data yang tidak terlalu penting dengan pertanyaan
yang akan dijawab dihilangkan. Beberapa data pada berkas, mungkin perlu
diterjemahkan ke dalam model matematika atau dilakukan normalisasi terlebih
4.
Mine
Pada tahap ini, data diaplikasikan ke dalam metode disiplin ilmu statistika
atau data mining sebagai jalan untuk mencari pola atau dijabarkan pada konteks
matematis.
5.
Represent
Pada tahap ini data diubah dan disajikan dalam bentuk model visual dasar,
seperti bar,
list, atau tree. Tahap represent menunjukan bentuk dasar data yang akan
diambil. Tahap ini adalah tahap yang sangat penting dalam membuat visualisasi
data. Pemilihan model visualisasi yang tepat dapat memengaruhi bagaimana
nantinya kualitas produk yang akan dihasilkan.
6.
Refine
Pada tahap ini, model visual dibuat lebih jelas lagi dan lebih menarik. Grafik
desain lebih banyak berbicara pada tahap ini. Titik-titik yang cukup penting pada
visual grafik dibandingkan titik lainnya diberikan pembeda agar dapat mudah
dibaca.
7.
Interact
Pada tahap interact, metode untuk memanipulasi data ditambahkan, dengan
arti bahwa data bisa ditampilkan sesuai kehendak pengguna. Contoh interaksi
antara pengguna dan data seperti
zoom-in,
zoom-out, merubah rentang data,
melakukan filtering, dll.
2.3
Statistika Deskriptif
Statistika deskriptif (descriptive statistics) adalah suatu metode untuk
mengorganisasikan dan melihat gambaran umum dari pengukuran sampel dan
populasi. Statistika deskriptif seperti namanya biasa dipakai untuk membaca data,
seringkali digunakan pada sebuah sampel populasi karena sulitnya untuk
yang diambil dari populasi, maka hasil tersebut disebut statistika. Sementara bila
perhitungan ditarik dari seluruh populasi, maka hasilnya disebut parameter.
Statistika
deskriptif
mencakup
metode
untuk
menyusun
dan
mengelompokan distribusi data dan termasuk mencari satu nilai yang dapat
menggambarkan semua nilai dari sampel atau populasi. Menurut Arthur M.
Glenberg dan Matthew E. Andrzejewski dalam bukunya yang berjudul “Learning
from Data an Introduction to Statistical Reasoning 3
rd” terdapat tiga teknik penting
pada statistika deskriptif, distribusi frekuensi dan peresentil, titik tengah dan
variabilitas, dan z skor dan distribusi normal.
2.3.1
Distribusi Frekuensi dan Persentil
Distribusi frekuensi adalah tabulasi jumlah kemunculan dari setiap nilai.
Distribusi frekuensi mengelola dan memberikan gambaran umum data, yaitu
dengan cara menampilkan karakteristik terbanyak [16]. Persentil adalah persentasi
skor nilai yang didapatkan dari perhitungan distribusi di bawah skor nilai. Persentil
dan persen tidaklah sama. Skor nilai sendiri sering disebut sebagai persentil (Pth),
adalah skor nilai P% dari perhitungan di bawah distribusi [16].
2.3.2
Ukuran Gejala Pusat dan Variansi
Ukuran gejala pusat distribusi adalah nilai yang dekat dengan titik tengah
dari distribusi. Biasanya digunakan sebagai representasi nilai distribusi keseluruhan
[16].
2.3.2.1
Notasi Sigma
∑
adalah karakter kapital dari huruf Yunani yang disebut dengan sigma.
∑
digunakan sebagai persamaan jumlah dalam bentuk lebih pendek. Contoh: terdapat
sebuah data pelanggaran dari sebuah aktivitas olah raga [1], berikut adalah data
tersebut:
Atlit 1 2 3 4 5 6 7 8 9 Jumlah Pelanggaran (X) 0 3 1 0 2 2 2 5 1
�
" #"$%
X
adalah variable yang dihitung, dalam contoh di atas adalah “jumlah
pelanggaran”. i menunjukan posisi index ke-i, i=1 di bawah
∑
menunjukan index
posisi pertama yang akan dijumlahkan,
n di atas
∑
menunjukan index posisi terakhir
yang akan dihitung. Sehingga expresi sigma di atas bisa ditulis seperti:
�
" #"$%
= �
%+ �
(+ �
)+ �
*+ �
++ �
,+ �
-+ �
.+ �
/�
" #"$%
= 0 + 3 + 1 + 0 + 2 + 2 + 2 + 5 + 1 = 16
Dari data dan persamaan di atas, dapat diketahui bahwa jumlah pelanggaran
dapat ditulis dengan notasi
�
= 16.
2.3.2.2
Ukuran Gejala Pusat
Tedapat tiga perhitungan yang sering digunakan dalam mengukur gejala
pusat, mean, median, dan modus (mode). Nilai pada mean, median, dan modus tidak
dapat mewakili seluruh distribusi, tetapi bisa memberikan gambaran umum.
Rata-rata distribusi didefinisikan sebagai nilai penjumlahan setiap nilai
yang terdapat pada distribusi (
∑
) dibagi dengan jumlah nilai yang terdapat pada
distribusi (n). Formula yang dipakai untuk menghitung rata-rata adalah sebagai
berikut:
Rata-rata =
∑7 #Rata-rata pada sampel dan populasi dibedakan, untuk rata-rata sampel,
dinotasikan sebagai M, sedangkan pada populasi dinotasikan sebagai
µ
(miu).
µ
=
∑78
M =
∑7 #
Median distribusi adalah nilai yang berada pada titik tengah distribusi.
Formula median dapat dibedakan untuk jumlah distribusi genap dan ganjil.
Modus distribusi adalah nilai pada distribusi yang paling sering muncul atau
yang memiliki frekuensi terbanyak.
2.3.2.3
Varian dan Standar Deviasi
Variabilitas adalah pengukuran beda nilai antara satu nilai distribusi dengan
nilai distribusi pusat atau seberapa besar penyimpangan dengan nilai pusatnya.
Pengukuran yang lebih menggambarkan variabilitas adalah varian, varian
menghitung variabilitas berdasarkan nilai beda dengan
µ
[16].
Varian dari sebuah populasi dapat dihitung dengan cara [16]: (a) Hitung
setiap nilai distribusi dengan
µ
; (b) Kuadratkan setiap nilai yang sudah dihitung; (c)
Bagi jumlah dari setiap perhitungan dengan populasi, N.
�
(=
∑(� − µ)
(�
=
��(�)
�
Varian dari sebuah sampel untuk menggambarkan populasi, dihitung
dengan formula sebagai berikut:
�
(=
∑(� − µ)
(� − 1
=
��(�)
� − 1
Varian dari populasi atau sampel tidak dapat dinyatakan dalam stauan ukur,
karena alasan tersebut ukuran varian yang sering digunakan adalah standar deviasi.
Secara matematis, standar deviasi didefinisikan sebagai akar kuadrat dari varian.
� = �
((parameter)
� = �
((statistik)
2.3.3
z Skor dan Distribusi Normal
z skor atau disebut juga dengan skor standar, sama seperti persentil, z skor
juga menghitung posisi relatif dari mean. Index z skor adalah posisi distribusi relatif
terhadap distribusi lain. z skor sangat berguna pada distribusi normal [16].
z skor adalah skor yang sudah dilakukan standarisasi dengan menjadikan 0
sebagai mean dari distribusi dan 1 sebagai standar deviasi [16]. Formula untuk
menghitung z skor adalah sebagai berikut:
Jarak skor dari mean berdasarkan z skor adalah: +
�
dan +2
�
di atas nilai
mean (
µ
) atau : -
�
dan -2
�
di bawah nilai mean (
µ
).
2.4
Statistika Inferensi
Tahap pertama memahami data adalah memahami sampel, selanjutnya,
sampel yang diambil seringkali digunakan untuk menyimpulkan kondisi populasi
sesungguhnya dimana sampel tersebut diambil. Statistika inferensi menggunakan
sembarang sampel dari populasi yang diuji untuk membuat kesimpulan atau
menaksir terhadap karakteristik populasi [16]. Statistika inferensi diperlukan karena
terdapat dua masalah yang saling berhubungan. Pertama, skor dari populasi selalu
dibutuhkan. Kedua, populasi biasanya sangat besar, menghitung skor populasi
seringkali tidak bisa dilakukan.
Prosedur inferensial statistik dibedakan menjadi dua kategori, estimasi
parameter dan pengujian hipotesis.
§
Estimasi parameter melakukan estimasi parameter populasi dari sampel yang
diambil secara acak.
§
Pengujian hipotesis membandingkan dua hipotesis tentang populasi. Data dari
sampel acak digunakan untuk menentukan hipotesis mana yang cenderung
benar.
2.4.1
Probabilitas
Probabilitas adalah kemungkinan yang dapat terjadi dalam suatu peristiwa
(event) tertentu. Secara matematis, probabilitas diartikan sebagai banyaknya
pristiwa yang dimaksud dibagi dengan seluruh pristiwa yang mungkin [16].
Formula probabilitas yaitu:
�(�) =
�(�)
�(�)
dengan:
P(A) = probabilitas terjadinya peristiwa A
n(A) = jumlah peristiwa A
2.4.2
Distribusi Sampling
Keputusan diambil terhadap informasi yang diambil dari populasi. Informasi
yang lengkap diperoleh dari seluruh populasi. Hanya saja, untuk mendapatkan
seluruh data dari populasi hampir tidak mungkin dilakukan secara singkat.
Sampling adalah metode yang digunakan untuk mengestimasi parameter-parameter
populasi [16].
Standar deviasi dari distribusi sampling disebut dengan standar error statistik
(SE). Perbedaan standar deviasi dan standar error adalah pada nilai, sementara
standard error berkaitan dengan hasil perhitungan.
�� =
�
� − 1
Perbedaan hasil yang diperoleh dari sampel statistik dan hasil yang diperoleh
dari parameter populasi disebut sampling error. Sampling error dipakai untuk
menunjukan ketepatan populasi yang didasarkan pada perhitungan terhadap sampel
di bawah distribusi normal. Semakin kecil sampling error, semakin besar ketepatan
penaksiran.
2.4.2.1
Pendugaan Titik
Cara penaksiran skor tunggal parameter populasi mean (
µ
) dapat dilakukan
dengan mengambil mean terhadap sampel acak populasi (M). Mean sampel acak
tersebut disebut pendugaan titik (point estimator --
µ
") [16].
2.4.2.2
Pendugaan Interval
Pendugaan interval (interval estimation) menunjukan interval berapa suatu
parameter populasi akan berada pada dua nilai (dibatasi oleh dua nilai) karena
adanya treatment, nilai tersebut biasanya disebut batas bawah dan batas atas [16].
� − �
G/(�
�
≤ � ≤ �
G/(�
2.4.2.3
Significance Level (
α
)
Significant secara bahasa berarti penting, tetapi dalam statistik ‘significant’
berarti probabilitas true atau false. Alpha level (
α
) adalah simbol yang menunjukan
sebarapa besar suatu kejadian dalam sampel terjadi akibat pengambilan acak
(likely) atau bukan acak (unlikely). Artinya kejadian yang muncul dari sampel
apakah terjadi secara kebetulan (random) atau bukan kebetulan [17]. Significance
of Alpha level (
α
) dibagi menjadi tiga, yaitu:
1.
α
= 0.05
2.
α
= 0.01
3.
α
= 0.001
2.4.2.4
Nilai Statistik t
Nilai statistik
t menggambarkan seberapa jauh beda rata-rata sampel antara
satu sampel dengan sampel lainnya atau populasi. Nilai Statistik t didapatkan dari
pembagian antara beda mean populasi dengan sampel dengan standard error [16].
� =
� − �
��
=
� − �
�
�
2.5
Korelasi
Korelasi digunakan untuk mengukur hubungan antara dua sampel, yaitu
ketika pengukuran setiap variabel sampel dengan variabel lainnya harus dilibatkan.
Analisis korelasi digunakan untuk membuat kesimpulan terhadap populasi dari
sampel yang diukur, analisis ini bisa dilakukan hanya ketika suatu sampel yang
dependen [16].
2.5.1
Korelasi Pearson r
Korelasi
Pearson r atau yang sering disebut
r
saja, adalah pengukuran
terhadap kekuatan garis linear antara dua variabel. Pengukuran r bisa diaplikasikan
pada sampel atau populasi, simbol
r
dugunakan untuk mengukur statistik,
1.
Nilai korelasi selalu pada rentang -1 dan 1m inklusif.
2.
Nilai korelasi selalu menunjukan hubungan dengan kemiringan/gradien garis
regresi; garis regresi dengan kemiringan positif memiliki koefisien korelasi
positif, dan sebaliknya. Garis regresi dengan gradien 0, memiliki koefisien
korelasi 0.0.
3.
Kekuatan relasi garis linear diindikasikan dengan nilai absolut dari korelasi.
Relasi garis linear yang sempurna ditandai dengan r atau
ρ
yang bernilai -1 atau
1; tidak ada hubungan garis linear r atau
ρ
bernilai 0.
Kekuatan relasi garis linear ditandai dengan scatter plots yang dekat dengan
[image:35.595.123.426.323.581.2]garis regresi (S
y.xkecil). Ilustrasi ini digambarkan pada Gambar II-6.
Gambar II-6 Ilustrasi Korelasi dan Scatter plots [16]
2.5.2
Interpretasi r
2Gambar II-7 Ilustrasi Korelasi r
2Secara matematis, r2 dapat dihitung dengan mengurangi varian x terhadap
x dengan total varian dari y dengan 1 [18].
�
(= 1 −
��
NOP"Q��
R= 1 −
�
"− �
" (�
"− �
(= 1 −
�
"− (��
"+ �)
(�
"− �
(2.5.3
Faktor-Faktor yang Memengaruhi Nilai r
Terdapat beberapa faktor yang harus diperhatikan ketika akan menghitung
hubungan antara x
dan
y. Jika diabaikan, faktor-faktor tersebut akan memberikan
masalah terhadap regresi [16]. Faktor-faktor tersebut yaitu [16]:
1.
Nonlinear relationship. Korelasi linear hanya menghitung derajat hubungan
kelineran. Jika
x dan
y berhubgan tetapi tidak linear, r dapat memberikan nilai
kosong (meskipun terdapat hubungan antara dua variabel).
2.
Restricted range. Pengecualian baik pada range x atau y, akan mengurangi nilai
r.
3.
Extreme score. Satu nilai yang sangat tinggi dapat menghasilkan bukti pada saat
perhitungan korelasi ketika tidak ditemukan pada skor mayoritas.
4.
Combining griups. Dapat terjadi tidak adanya hubungan antara grup, tetapi
menggabungkan beberapa grup dapat menimbulkan kebiasan dalam korelasi
linear.
2.5.4
Pendugaan Interval Rho (
ρ
)
Nilai statistik
r dapat digunakan untuk membuat berbagai macam
pada
�
, dimana diperlukan nilai standar yaitu z dan
α
level. Pada pendugaan interval
ρ
juga diperlukan nilai statistik t dan
α
level [16]. Nilai statistik t untuk menduga
interval
ρ
dapat dihitung dengan formula:
� =
� − 0
1 − �
(��
=
� − 0
1 − �
(� − 2
df adalah kependekan dari dgree of freedom (derajat kebebasan). Dimana df
dapat dihitung dengan mengurangi setiap kelompok sampel dengan 1. Artinya, jika
terdapat
n sampel, maka
df
adalah
n-(banyak sampel). Sehingga, untuk regresi
linear yang memiliki sampel
x dan sampel
y, maka
df adalan 2(n-1). Selanjutnya
pada t statistik dinotasikan N-2 [16].
Selanjutnya interval
ρ
dapat dihitung dengan formula [19]:
� ± �
G (��
P��
Padalah simpangan baku dari r.
��
Pdapat dihitung dengan formula:
��
P=
1 − �
(��
=
1 − �
(� − 1
2.6
Regresi Linear
Regresi linear merupakan salah satu pembelajaran mesin
supervised
learning, yaitu pembelajaran mesin yang memproyeksikan suatu nilai berdasarkan
nilai lainnya [20]. Regresi linear memproyeksi nilai dengan membuat model. Model
adalah represtasi dari
state, proses, atau sistem untuk mengambil sebuah
kesimpulan [20]. Regresi linear menjelaskan hubungan matematis antara dua
variabel. Regresi linear memakai variabel independen x untuk menjelaskan variabel
dependen y atau sering disebut juga outcome variable [6].
Model regresi linear yang terbentuk untuk sampel adalah
� = �� + �
,
sedangkan untuk populasi adalah
� = �
%� + �
Z. b adalah tingkat kemiringan untuk
sampel, sedangkan
β
1adalah tingkat kemiringan (slop) untuk populasi. Untuk
mencari tingkat kemiringan, dilakukan dengan cara mengalikan
r
dengan
�
%= �
��
R��
[Model regresi linear ini kemudian diplot melewati titik (
�
,
�
) [17].
2.7
k-Means
Misalkan sebuah data set D, data set D membiliki n buah objek pada ruang
Euclidean. k-Means adalah algoritma yang mendistribusikan objek-objek pada data
set D ke cluster k, C
1, ..., C
k, dimana C
iÌ
D dan C
iÇ
C
j=
Æ
untuk (1
£
i, j
£
k)
[21]. Fungsi objektif yang hendak dicapai oleh
k-Means
clustering adalah objek
dalam cluster memiliki kriteria sejenis dan tidak sejenis untuk cluster lainnya [21].
Berikut adalah abstraksi bagaimana algoritma k-means bekerja [21]:
1.
Secara acak, pilih k-centroid (titik yang akan mencadi titik tengah
cluster) pada
ruang d dimensi.
2.
Kelompokan setiap titik ke dalam k-set centroid paling dekat.
3.
Perbaharui
k-centroid dengan rata-rata titik
k-set atau titik-titik yang sudah
dikelompokan sebelumnya.
135
BAB IV
IMPLEMENTASI DAN PENGUJIAN
4.1
Implementasi Sistem
Tahapan implementasi adalah tahapan dimana perancangan yang dibuat
pada BAB III diimplementasikan menggunakan bahasa pemrograman tertentu,
dalam penelitian tugas akhir ini, digunakan bahasa pemrograman JavaScript. Pada
tahap ini, dipaparkan seluruh elemen-elemen yang terlibat pada pengembangan
aplikasi
mobile
visualisasi data terbuka Pemprov DKI Jakarta.
4.1.1
Lingkungan Implementasi
Lingkungan implementasi merupakan spesfikasi perangkat keras dan
perangkat lunak baik
client
ataupun
server
dimana aplikasi
mobile
visualisasi data
akan diimplementasikan. Berikut adalah lingkungan implementasi aplikasi
mobile
visualisasi data terbuka Pemprov DKI Jakarta.
1.
Lingkungan Perangkat Keras
Berikut adalah spesifikasi perangkat keras
client
yang diimplementasikan
untuk menjalankan aplikasi, yang dapat dilihat pada Tabel IV-1.
Tabel IV-1 Lingkungan Perangkat Keras
Client
Perangkat Keras Spesifikasi Android Spesifikasi iPhone
Prosesor Quad-core 1.3 GHz Dual-core 1.4 GHz
Memori 1 GB RAM 1 GB RAM
Resolusi Layar 540 x 960 pixels 750 x 1334 pixels
Disk 8 GB 16 GB
Internet 4G 4G
Berikut adalah spesifikasi perangkat keras
server
(teknologi awan
Infrastructure as a Service
dan
Database as a Service
) yang diimplementasikan
untuk mendukung perangkat
client
berjalan, yang dapat dilihat pada Tabel IV-2.
Tabel IV-2 Lingkungan Perangkat Keras IaaS
Perangkat Keras Spesifikasi
Prosesor Intel(R) Xeon(R) CPU E5-2630L v2 @ 2.40GHz
Memori 1024 MB
Perangkat Keras Spesifikasi
Uplink/Downlink 1 Gbps
Data Center DigitalOcean (Singapore Node)
Tabel IV-3 Lingkungan Perangkar Keras DaaS
Perangkat Keras Spesifikasi
Prosesor Shared
Memori 512 MB
Disk 512 MB
Data Center AWS us-east-1
2.
Lingkungan Perangkat Lunak
Berikut adalah spesifikasi perangkat lunak
mobile
yang diimplementasikan
untuk menjalankan aplikasi, yang dapat dilihat pada Tabel IV-4.
Tabel IV-4 Lingkungan Perangkat Lunak
Mobile
Perangkat Lunak Spesifikasi Android Spesifikasi iPhone
Sistem Operasi Android OS v5.1.1 iOS v8
Berikut adalah spesifikasi perangkat lunak
server
yang diimplementasikan
untuk mendukung aplikasi
client
, yang dapat dilihat pada Tabel IV-5.
Tabel IV-5 Lingkungan Perangkat Lunak
Server
Perangkat Lunak Spesifikasi
Sistem Operasi Ubuntu 16.04 LTS 64 bit
Task Runner gulp 3.9.x
Server Proxy nginx v1.8.x
Software Platform NodeJS v6.0.0
Database MongoDB 3.x
Database Driver Mongoose 4.5.x
Framework Express 4.14.x
Task Runner Gulp 3.9.x, gulp-nodemon 2.1.x
Auth Handler Passport 0.3.x, passport-http-barer 1.0.x
4.1.2
Implementasi Data
Implementasi data yang dilakukan adalah menggunakan MongoDB.
Pembuatan
collection
dilakukan melalui
driver
mongoose nodejs.
1.
Pembuatan Database
1 use dbbatavia
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
var mongoose = require('mongoose'), Schema = mongoose.Schema;
var dataModel = new Schema({ tahun: Date,
rincian: String, jumlah: Number, kategori: String, persen: Number });
var data = mongoose.model('Ikhtisar', dataModel);
module.exports = { data: data }
3.
Implementasi Data 2: Besar Upan Minimum DKI Jakarta
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
var mongoose = require('mongoose'), Schema = mongoose.Schema;
var dataModel = new Schema({ tahun: Date,
ump: Number,
kenaikan_ump: Number, inflasi: Number, keterangan: String });
var data = mongoose.model('DataUmpInflasi', dataModel);
var linearModel = new Schema({ model: {
coefficient: Number, slope: Number,
correlation_coefficient: Number },
data: [{
type: Schema.ObjectId, ref: 'DataUmpInflasi' }]
});
var linear = mongoose.model('LinearUmpInflasi', linearModel);
module.exports = { data: data, linear: linear }
4.
Implementasi Data 3: Laju Pertumbuhan Ekonomi Jakarta dan Nasional
1 2 3
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
var dataModel = new Schema({ tahun: Date,
persen_tumbuh_jakarta: Number, persen_tumbuh_nasional: Number, keterangan: String
});
var data = mongoose.model('DataPertumbuhanEkonomi', dataModel);
var linearModel = new Schema({ model: { coefficient: Number, slope: Number, correlation_coefficient: Number }, data: [{ type: Schema.ObjectId, ref: 'DataPertumbuhanEkonomi' }] });
var linear = mongoose.model('LinearPertumbuhanEkonomi', linearModel);
module.exports = { data: data, linear: linear }
5.
Implementasi Data 4: Tingkat Inflasi Jakarta dan Nasional
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
var mongoose = require('mongoose'), Schema = mongoose.Schema;
var dataModel = new Schema({ tahun: Date,
inflasi_jakarta: Number, inflasi_nasional: Number, keterangan: String
});
var data = mongoose.model('DataInflasi', dataModel);
var linearModel = new Schema({ model: { coefficient: Number, slope: Number, correlation_coefficient: Number }, data: [{ type: Schema.ObjectId, ref: 'DataInflasi' }] });
25 26 27 28 29
module.exports = { data: data, linear: linear }
6.
Implementasi Data 5: Komponen Inflasi Jakarta
1 2 3 4 5 6 7 8 9 10 11 12 13 14
var mongoose = require('mongoose'), Schema = mongoose.Schema;
var dataModel = new Schema({ tahun: Date,
komponen: String, persen_inflasi: Number, persen_kontribusi: Number });
var data = mongoose.model('KomponenInflasi', dataModel);
module.exports = { data: data }
7.
Implementasi Data 6: Ekspor Impor DKI Jakarta
1 2 3 4 5 6 7 8 9 10 11 12 13
var mongoose = require('mongoose'), Schema = mongoose.Schema;
var dataModel = new Schema({ tahun: Date,
atribut: String, juta_usd: Number });
var data = mongoose.model('BesarEkprImpr', dataModel);
module.exports = { data: data }
8.
Implementasi Data 7: Volume dan Nilai Ekspor DKI Jakarta
1 2 3 4 5 6 7 8 9 10 11 12
var mongoose = require('mongoose'), Schema = mongoose.Schema;
var dataModel = new Schema({ tahun: Date,
no_hs: String, komoditas: String, volume: Number, nilai: Number, grup: String });
13 14 15 16
module.exports = { data: data }
9.
Implementasi Data 8: Nilai Impor Produk Menurut Golongan
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
17 18 19 20 21
var mongoose = require('mongoose'), Schema = mongoose.Schema;
var dataModel = new Schema({ bulan: Date,
golongan: String, nilai_fob: Number });
var data = mongoose.model('DataNilaiImprProgukGol', dataModel);
var histogramModel = new Schema({ kelas_interval: String,
frekuensi: Number,
frekuensi_relatif: Number });
var histogram = mongoose.model('HistogramNilaiImprProdukGol', histogramModel);
module.exports = { data: data,
histogram: histogram }
10.
Implementasi Data 9: Struktur Ekonomi Jakarta Berdasarkan Sektor
1 2 3 4 5 6 7 8 9 10 11 12 13 14
var mongoose = require('mongoose'), Schema = mongoose.Schema;
var dataModel = new Schema({ tahun: Date,
persen_kontribusi: Number, jenis_sektor: String, keterangan: String });
var data = mongoose.model('StrukturEkonomi', dataModel);
module.exports = { data: data }
11.
Implementasi Data 10: Harga Pangan Tingkat Konsumen DKI Jakarta
1 2 3 4
var mongoose = require('mongoose'), Schema = mongoose.Schema;
5 6 7 8 9 10 11 12 13 14 15 16 17 18
19 20 21 22 23
tanggal: Date, wilayah: String, komoditi: String, harga: Number, satuan: String });
var data = mongoose.model('DataHargaPanganKonsumen', dataModel);
var histogramModel = new Schema({ kelas_interval: String,
frekuensi: Number,
frekuensi_relatif: Number });
var histogram = mongoose.model('HistogramHargaPanganKonsumen', histogramModel);
module.exports = { data: data,
histogram: histogram }
12.
Implementasi Data 11: Perkembangan Harga Grosir di Pasar Induk
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
var mongoose = require('mongoose'), Schema = mongoose.Schema;
var dataModel = new Schema({ tanggal: Date,
komoditas: String, harga: Number });
var data = mongoose.model('DataPerkemHargaGrosir', dataModel);
var histogramModel = new Schema({ kelas_interval: String,
frekuensi: Number,
frekuensi_relatif: Number });
var histogram = mongoose.model('HistogramPerkemHargaGrosir', histogramModel);
module.exports = { data: data,
histogram: histogram }
13.
Implementasi Data 12: Pendapatan Perkapita Jakarta dan Nasional
1 2 3 4 5
var mongoose = require('mongoose'), Schema = mongoose.Schema;
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
perkapita_jakarta: Number, perkapita_nasional: Number, keterangan: String
});
var data = mongoose.model('DataPendapatanPerkapita', dataModel);
var linearModel = new Schema({ model: {
coefficient: Number, slope: Number,
correlation_coefficient: Number },
data: [{
type: Schema.ObjectId,
ref: 'DataPendapatanPerkapita' }]
});
var linear = mongoose.model('LinearPendapatanPerkapita', linearModel);
module.exports = { data: data, linear: linear }
4.1.3
Implementasi Antarmuka
Bagian ini merupakan implementasi antarmuka dari subsistem aplikasi
mobile
visualisasi data terbuka Pemprov DKI Jakarta. Implementasi ini terdiri dari
nama antarmukan dan nama file yang mewakilinya. Adapun rincian implementasi
antarmuka dapat dilihat pada lampiran. Implementasi antarmuka ini dapat dilihat
[image:47.595.86.476.108.412.2]pada Tabel IV-6.
Tabel IV-6 Implementasi Antarmuka
No. Nama Antarmuka Nama Berkas No. Lampiran
1 Perkenalan Aplikasi intro.html A-1
2 Beranda main.html A-2
3 Halaman Kredit credit.html A-3
4 Menu Ekonomi Makro makro-menu.html A-4
5 Menu Ekonomi Mikro mikro-menu.html A-5
6 Halaman Visualisasi
Ikhtisar Statistik
ikhtisar-statistik-tab.html A-6
7 Halaman Visualisasi UMP
upah-minimum-provinsi-tab.html
A-7
8 Halaman Visualisasi
Pertumbuhan Ekonomi
pertumbuhan-ekonomi-tab.html
A-8
9 Halaman Visualisasi
Tingkat Inflasi
No. Nama Antarmuka Nama Berkas No. Lampiran 10 Halaman Visualisasi
Komponen Inflasi
komponen-inflasi-tab.html A-10
11 Halaman Visualisasi Struktur Ekonomi
struktur-ekonomi-pie.html A-11
12 Halaman Visualisasi Pendapatan Perkapita
pendapatan-perkapita-tab.html
A-12
13 Halaman Visualisasi Ekspor dan Impor
ekspor-impor-line.html A-13
14 Halaman Visualisasi Volume dan Nilai Ekspor
volume-nilai-ekspor-tab.html
A-14
15 Halaman Visualisasi Nilai Impor Produk
nilai-impor-produk-tab.html
A-15
16 Halaman Visualisasi Pangan Konsumen
pangan-konsumen-tab.html A-16
17 Halaman Visualisasi Harga Grosiran
harga-grosiran-tab.html A-17
4.2
Pengujian Sistem
Pengujian sistem merupakan tahapan untuk mencari tahu
kekurangan-kekurangan pada aplikasi yang dibangun sehingga bisa memenuhi tujuan untuk
selanjutnya disempurnakan dan di-
deploy
sebaik mungkin.
4.2.1
Rencana Pengujian
Rencana pengujian merupakan strategi dokumentasi yang digunakan untuk
melakukan verifikasi dan memastikan bahwa aplikasi yang dibangun telah
memenuhi desain dan tujuan yang dipaparkan pada bagian sebelumnya. Terdapat
empat rencana pengujian yang dilakukan, yaitu rencana pengujian unit, pengujian
integrasi, pengujian algoritma, dan pengujian
beta
.
1.
Rencana Pengujian Unit
Pengujin unit yang akan dilakukan, ditujukan untuk kelas
controller
pada
subsistem RESTful API yang terdiri dari tiga kelas. Dari setiap kelas tersebut
[image:48.595.113.512.110.338.2]kemudian akan menguji setiap method yang ada di kelas tersebut. Berikut adalah
Tabel IV-7 Rencana Pengujian Unit
Kelas Uji Method Uji Jenis Pengujian
Controller create() Unit Testing
delete() Unit Testing
getDateBetween() Unit Testing
getMaxMin() Unit Testing
limitSortByKey() Unit Testing
select() Unit Testing
selectById() Unit Testing
sortByKey() Unit Testing
update() Unit Testing
updateAll() Unit Testing
LinearCtrl createModel() Unit Testing
deleteModel() Unit Testing
selectModel() Unit Testing
selectModelById() Unit Testing
updateModel() Unit Testing
HistogramCtrl createHist() Unit Testing
deleteHist() Unit Testing
getDateBetween() Unit Testing
selectHist() Unit Testing
selectHistById() Unit Testing
sortHist() Unit Testing
updateHist() Unit Testing
updateHistAll() Unit Testing
2.
Rencana Pengujian Integrasi
Pengujin integrasi ditujukan untuk router dari subsistem RESTful API.
Tujuannya untuk memeriksa integrasi dengan database. Berikut adalah tabel
lengkap rencana pengujian integrasi, dapat dilihat pada Tabel IV-8 sampai Tabel
[image:49.595.87.482.130.454.2]IV-19.
Tabel IV-8 Route Data 1: Ikhtisar Statistik antar Kerja DKI Jakarta
Method URL Keterangan Jenis
Pengujian
POST { Base URL
}/ikhtisar-statistik-antar-kerja
Digunakan untuk membuat data baru Ikhtisar Statistik antar Kerja Jakarta
Integration Testing
GET { Base URL
}/ikhtisar-statistik-antar-kerja
Digunakan untuk me-retrive data Ikhtisar Statistik antar Kerja Jakarta antar kerja
Integration Testing
GET { Base URL }/
ikhtisar-statistik-antar-kerja /limit={ :n }
Digunakan untuk me-retrive data dengan n buah objek
Method URL Keterangan Jenis Pengujian &sortBy={ :key }
&order={ [asc]/[desc] }
GET { Base URL
}/ikhtisar-statistik-antar-kerja/id= { :id }
Digunakan untum me-retrive satu data Ikhtisar Statistik antar Kerja Jakarta dengan
berdasarkan field id
Integration Testing
GET { Base URL
}/ikhtisar-statistik-antar-kerja &sortBy{ :key } &order{ [asc]/[desc] }
Digunakan untuk mengurutkan data secara ascending atau descending berdasarkan key
Integration Testing
GET { Base URL
}/ikhtisar- statistik-antar-kerja/key={ field } &get{ [max]/[min] }
Digunakan untuk me-retrive maksimum atau minumum data berdasarkan field
Integration Testing
GET { Base URL
}/ikhtisar- statistik-antar-kerja/key=tahun &gd=”{ :tahun }” &ld”{ :tahun }”
Digunakan untuk me-retrive data antara tahun
Integration Testing
PUT { Base URL
}/ikhtisar-statistik-antar-kerja/id= { :id }
Digunakan untuk melakukan update terhadap seluruh fields dari id yang dipilih
Integration Testing
PATCH { Base URL
}/ikhtisar-statistik-antar-kerja/id= { :id }
Digunakan untuk melakukan update terhadap sebagian atau seluruh fields dari id yang dipilih
Integration Testing
DELETE { Base URL }/ikhtisar-statistik-antar-kerja/id= { :id }
Digunakan untuk menghapus data berdasarkan id-nya
Integration Testing
Tabel IV-9 Route Data 2: Besar Upan Minimum DKI Jakarta
Method URL Keterangan Jenis
Pengujian
POST { Base URL
}/ump-inflasi
Digunakan untuk membuat data model linear UMP DKI Jakarta
Integration Testing
GET { Base URL
}/ump-inflasi/id={ :id }
Digunakan untum me-retrive data model linear UMP DKI Jakarta berdasarkan field _id-nya
Integration Testing
GET { Base URL
}/ump-inflasi
Digunakan untum me-retrive data model linear UMP DKI Jakarta dan data-nya
Integration Testing
PATCH { Base URL
}/ump-inflasi/id={ :id }
Digunakan untuk melakukan update terhadap sebagian atau seluruh fields dari id yang dipilih
Method URL Keterangan Jenis Pengujian DELETE { Base URL
}/ump-inflasi/id={ :id }
Digunakan untuk menghapus model linear UMP DKI Jakarta berdasarkan id-nya
Integration Testing
POST { Base URL
}/ump-inflasi/data
Digunakan untuk membuat data baru UMP DKI Jakarta
Integration Testing
GET { Base URL
}/ump-inflasi/data
Digunakan untuk me-retrive data UMP DKI Jakarta
Integration Testing
GET { Base URL
}/ump-inflasi/data/ id={ :id }
Digunakan untum me-retrive satu data UMP DKI Jakarta
berdasarkan id-nya
Integration Testing
GET { Base URL
}/ump-inflasi/data/limit={ :n } &sortBy={ :key } &order={ [asc