2.1 tinjauan muktahir - sinta.unud.ac.id727523190... · 2 kendaraan bermotor. saat petugas dari...
TRANSCRIPT
BAB II
KAJIAN PUSTAKA
2.1 Tinjauan Muktahir
Adapun beberapa penelitian terdahulu yang terkait tentang pemanfaatan QR
Code sebagai berikut :
Penelitian yang dilakukan oleh Setyawan (2012), yang berjudul
“Perancangan Aplikasi Sistem Presensi Mahasiswa menggunakan QR Code Pada
Sistem Operasi Android. Penelitian ini tentang sistem presensi mahasiswa
menggunakan QR Code. QR Code yang dibuat nantinya dicetak seperti kartu.
Ketika kehilangan kartu QR Code mahasiswa sulit melakukan presensi dan
presensi bisa dilakukan jika mahasiswa menyimpan QR Code dalam format jpg.
pada ponselnya.
Sementara itu, Kusuma (2012), melakukan penelitian dengan judul
“Implementasi QR Code dan Algoritma Kriptografi AES Pada Pengamanan
Keaslian Dokumen ”. Pada penelitian ini menghasilkan sebuah Sistem
Implementasi QR Code yang dipadukan dengan algoritma enkripsi kriptografi
AES sehingga data yang disimpan pada QR Code terjaga keasliannya. Hanya saja
sistem ini memiliki keterbatasan dalam membaca QR Code yaitu menggunakan
sistem operasi Android dan belum bisa dibaca menggunakan OS lain seperti
Windows Phone.
Penelitian lainnya dilakukan oleh Rahmawati, Rahman (2011), yang
berjudul Sistem Pengamanan Keaslian Ijasah Menggunakan QR – Code dan
Algoritma Base 64. Pada penelitian ini sistem pengamanan ijasah menggunakan
QR-Code dan algritma enkripsi Base 64 yang di bangun dalam penelitian ini telah
dapat meng-generate QR-Code berdasarkan nomor ijasah yang telah dienkripsi,
mencetak ijasah dan membaca image QR-Code melalui webcam serta mendeteksi
validasi data ijasah dengan baik.
Berdasarkan kajian dalam penelitian terdahulu, maka dalam penelitian ini
akan dibangun suatu prototype untuk pengamanan perizinan KIR yang
diimplementasikan dengan QR Code, yang akan memberikan kemudahan untuk
identifikasi dan juga meminimalkan terjadinya pemalsuan mengenai izin sebuah
1
2
kendaraan bermotor. Saat petugas dari Dinas Perhubungan melakukan sidak
kendaraan bermotor, dengan tampilan visual yang lebih menarik, mudah dalam
penggunaannya dan dapat digunakan secara offline maupun online melalui media
internet. Perbedaan penelitian ini dengan penelitian lainya yang membahas
pemaanfaat QR Code untuk identifikasi keaslian yaitu terletak pada algoritma
enkripsi yang digunakan dimana sudah banyak yang menggunakan algoritma
simetris dan belum pernah ada yang menggunakan algoritma enkripsi 3DES.
Algoritma enkripsi 3DES merupakan algoritma simetris dengan kunci panjang
yaitu 165-bit dimana lebih panjang dari kunci algoritma enkripsi simetris lainnya.
2.2 Tinjauan Pustaka
2.2.1 Proses Pengembangan Perangkat Lunak
Proses pengembangan perangkat lunak (Software development process)
adalah suatu struktur yang diterapkan pada pengembangan suatu produk
perangkat lunak yang bertujuan untuk mengembangkan sistem dan memberikan
panduan yang bertujuan untuk menyukseskan proyek pengembangan sistem
melalui tahap demi tahap. Proses ini memiliki beberapa model yang masing-
masing menjelaskan pendekatan terhadap berbagai tugas atau aktivitas yang
terjadi selama proses. Contoh model proses pengembangan perangkat lunak antara
lain adalah proses iteratif, extream programming, waterfall serta agile.
Pengembangan perangkat lunak (juga disebut pengembangan
aplikasi, desain perangkat lunak, merancang perangkat lunak, pengembangan
aplikasi perangkat lunak. Pengembangan aplikasi perusahaan, atau pengembangan
platform) adalah pengembangan suatu produk perangkat lunak. Istilah
“pengembangan perangkat lunak” bisa dipakai untuk menyebut aktivitas
pemrograman komputer, yaitu proses menulis dan mengelola kode sumber, namun
dalam artian luas istilah ini mencakup semua hal yang terlibat antara penciptaan
perangkat lunak yang diinginkan melalui pewujudan akhir perangkat lunak,
idealnya dalam proses yang terencana dan terstruktur. Karena itu, pengembangan
perangkat lunak bisa mencakup penelitian, pengembangan baru, purwarupa,
modifikasi, pemakaian kembali, rekayasa ulang, pengelolaan, atau aktivitas lain
yang menghasilkan produk perangkat lunak.
3
Gambar 2.1 model waterfall
Berikut ini adalah penjelasan dari gambar 2.1 proses pengembangan perangkat
lunak model waterfall
1. Rekayasa sistem dan Analisis (Sistem Engineering and Analysis)
Karena perangkat lunak adalah bagian dari sistem yang lebih besar,
pekerjaan dimulai dari pembentukan kebutuhan-kebutuhan untuk seluruh
elemen sistem dan kemudian memilah mana yang untuk pengembangan
perangkat lunak. Hal ini penting, ketika perangkat lunak harus
berkomunikasi dengan hardware, orang dan basis data
2. Analisis kebutuhan perangkat lunak (Software Requirements Analysis)
Pengumpulan kebutuhan dengan fokus pada perangkat lunak, yang meliputi,
Domain informasi, fungsi yang dibutuhkan, unjuk kerja/performansi dan
antarmuka. Hasilnya harus didokumentasi dan direview ke pelanggan.
3. Perancangan (Design)
4
Ada 4 atribut untuk program yaitu : Struktur Data, Arsitektur perangkat
lunak, Prosedur detil dan Karakteristik Antarmuka. Proses desain mengubah
kebutuhan-kebutuhan menjadi bentuk karakteristik yang dimengerti
perangkat lunak sebelum dimulai penulisan program. Desain ini harus
terdokumentasi dengan baik dan menjadi bagian konfigurasi perangkat
lunak.
4. Pembuatan kode (Coding)
Penerjemahan perancangan ke bentuk yang dapat dimengerti oleh mesin,
dengan menggunakan bahasa pemrograman
5. Pengujian (Testing)
Setelah kode program selesai testing dapat dilakukan. Testing memfokuskan
pada logika internal dari perangkat lunak, fungsi eksternal dan mencari
segala kemungkinan kesalahan dan memeriksa apakah sesuai dengan hasil
yang diinginkan.
6. Pemeliharaan (Maintenance)
Merupakan bagian paling akhir dari siklus pengembangan dan dilakukan
setelah perangkat lunak dipergunakan :
• Corrective Maintenance : Mengoreksi kesalahan pada perangkat lunak,
yang baru terdeteksi pada saat perangkat lunak dipergunakan.
• Adaptive Maintenance : Penyesuaian dengan lingkungan baru, misalnya
sistem operasi atau sebagai tuntutan atas perkembangan sistem
komputer, misalnya penambahanprinter driver.
• Perfektive Maintenance : Bila perangkat lunak sukses dipergunakan oleh
pemakai. Pemeliharaan ditujukan untuk menambah kemampuannya
seperti memberikan fungsi-fungsi tambahan, peningkatan kinerja dan
sebagainya.
2.2.2 Perangkat Pemodelan Sistem
2.2.2.1 DFD Data Flow Diagram
Data Flow Diagram (DFD) adalah alat pembuatan model yang
memungkinkan profesional sistem untuk menggambarkan sistem sebagai suatu
jaringan proses fungsional yang dihubungkan satu sama lain dengan alur data,
5
baik secara manual maupun komputerisasi. DFD ini sering disebut juga dengan
nama Bubble chart, Bubble diagram, model proses, diagram alur kerja, atau model
fungsi. DFD ini adalah salah satu alat pembuatan model yang sering digunakan,
khususnya bila fungsi-fungsi sistem merupakan bagian yang lebih penting dan
kompleks dari pada data yang dimanipulasi oleh sistem. Dengan kata lain, DFD
adalah alat pembuatan model yang memberikan penekanan hanya pada fungsi
sistem. DFD ini merupakan alat perancangan sistem yang berorientasi pada alur
data dengan konsep dekomposisi dapat digunakan untuk penggambaran analisa
maupun rancangan sistem yang mudah dikomunikasikan oleh profesional sistem
kepada pemakai maupun pembuat program (Shelly dan Rosenblatt, 2009).
Gambar 2.2 Komponen DFD(sumber : Shelly dan Rosenblatt, 2009)
Terminator mewakili entitas eksternal yang berkomunikasi dengan sistem yang
sedang dikembangkan. Biasanya terminator dikenal dengan nama entitas luar
(external entity). Terdapat dua jenis terminator :
1 Terminator Sumber (source) : merupakan terminator yang menjadi sumber.
2 Terminator Tujuan (sink) : merupakan terminator yang menjadi tujuan data /
informasi sistem.
6
Terminator dapat berupa orang, sekelompok orang, organisasi, departemen
di dalam organisasi, atau perusahaan yang sama tetapi di luar kendali sistem yang
sedang dibuat modelnya. Terminator dapat juga berupa departemen, divisi atau
sistem di luar sistem yang berkomunikasi dengan sistem yang sedan
dikembangkan Komponen proses menggambarkan bagian dari sistem yang
mentransformasikan input menjadi output. Ada empat kemungkinan yang dapat
terjadi dalam proses sehubungan dengan input dan output :
Ada beberapa hal yang perlu diperhatikan tentang proses :
Proses harus memiliki input dan output.
Proses dapat dihubungkan dengan komponen terminator, data store atau
proses melalui alur data.
Sistem/bagian/divisi/departemen yang sedang dianalisis oleh profesional
sistem digambarkan dengan komponen proses.
Berikut ini merupakan suatu contoh proses yang salah :
Gambar 2.3 Proses DFD(sumber : Shelly dan Rosenblatt.2009).
Umumnya kesalahan proses di DFD adalah :
1 Proses mempunyai input tetapi tidak menghasilkan output. Kesalahan ini
disebut dengan black hole (lubang hitam), karena data masuk ke dalam proses
dan lenyap tidak berbekas seperti dimasukkan ke dalam lubang hitam.
7
2 Proses menghasilkan output tetapi tidak pernah menerima input. Kesalahan ini
disebut dengan miracle (ajaib), karena ajaib dihasilkan output tanpa pernah
menerima input
3 Data store ini biasanya berkaitan dengan penyimpananpenyimpanan, seperti
file atau database yang berkaitan dengan penyimpanan secara komputerisasi,
misalnya file disket, file harddisk, file pita magnetik. Data store juga berkaitan
dengan penyimpanan secara manual seperti buku alamat, file folder, dan
agenda.
Suatu data store dihubungkan dengan alur data hanya pada komponen proses,
tidak dengan komponen DFD lainnya. Alur data yang menghubungkan data store
dengan suatu proses mempunyai pengertian sebagai berikut :
1 Alur data dari data store yang berarti sebagai pembacaan atau pengaksesan
satu paket tunggal data, lebih dari satu paket data, sebagian dari satu paket
tunggal data, atau sebagian dari lebih dari satu paket data untuk suatu proses.
2 Alur data ke data store yang berarti sebagai pengupdatean data, seperti
menambah satu paket data baru atau lebih, menghapus satu paket atau lebih,
atau mengubah/memodifikasi satu paket data atau lebih. Pada pengertian
pertama jelaslah bahwa data store tidak berubah, jika suatu paket
data/informasi berpindah dari data store ke suatu proses. Sebaliknya pada
pengertian kedua data store berubah sebagai hasil alur yang memasuki data
store. Dengan kata lain, proses alur data bertanggung jawab terhadap
perubahan yang terjadi pada data store.
2.2.2.2 Komponen Data Flow / Alur Data
Suatu data flow / alur data digambarkan dengan anak panah, yang
menunjukkan arah menuju ke dan keluar dari suatu proses. Alur data ini
digunakan untuk menerangkan perpindahan data atau paket data/informasi dari
satu bagian sistem ke bagian lainnya. Selain menunjukkan arah, alur data pada
model yang dibuat oleh profesional sistem dapat merepresentasikan bit, karakter,
pesan, formulir, bilangan real, dan macam-macam informasi yang berkaitan
dengan komputer. Alur data juga dapat merepresentasikan data/informasi yang
tidak berkaitan dengan komputer.
8
1. Konsep Paket Data (Packets of Data)
Apabila dua data atau lebih mengalir dari suatu sumber yang sama menuju
ke tujuan yang sama dan mempunyai hubungan, dan harus dianggap
sebagai satu alur data tunggal, karena data itu mengalir bersama-sama
sebagai satu paket.
2. Konsep Alur Data Menyebar (Diverging Data Flow)
Alur data menyebar menunjukkan sejumlah tembusan paket data yang
yang berasal dari sumber yang sama menuju ke tujuan yang berbeda, atau
paket data yang elemen data yang dikirim ke tujuan yang berbeda, atau
alur data ini membawa paket data yang memiliki nilai yang berbeda yang
akan dikirim ke tujuan yang berbeda.
3. Konsep Alur Data Mengumpul (Converging Data Flow)
Beberapa alur data yang berbeda sumber bergabung bersamasama menuju
ke tujuan yang sama.
4. Konsep Sumber atau Tujuan Alur Data
Semua alur data harus minimal mengandung satu proses. Maksud kalimat
ini adalah :
1 Suatu alur data dihasilkan dari suatu proses dan menuju ke suatu data
store dan/atau terminator
2 Suatu alur data dihasilkan dari suatu data store dan/atau terminator
dan menuju ke suatu proses.
3 Suatu alur data dihasilkan dari suatu proses dan menuju ke suatu
proses.
9
Gambar 2.4 Konsep sumber atau tujuan alur data(sumber : Shelly dan Rosenblatt, 2009)
2.2.2.3 Bentuk Data Flow Diagram
Terdapat dua bentuk DFD, yaitu Diagram Alur Data Fisik, dan Diagram
Alur data Logika. Diagram alur data fisik lebih menekankan pada bagaimana
proses dari sistem diterapkan, sedangkan diagram alur data logika lebih
menekankan proses-proses apa yang terdapat di sistem.
1 Diagram Alur Data Fisik (DADF)
DADF lebih tepat digunakan untuk menggambarkan sistem yang ada (sistem
yang lama). Penekanan dari DADF adalah bagaimana proses-proses dari
sistem diterapkan (dengan cara apa, oleh siapa dan dimana), termasuk proses-
proses manual.
Untuk memperoleh gambaran bagaimana sistem yang ada diterapkan, DADF
harus memuat :
Proses-proses manual juga digambarkan.
Nama dari alur data harus memuat keterangan yang cukup terinci untuk
menunjukkan bagaimana pemakai sistem memahami kerja sistem.
Simpanan data dapat menunjukkan simpanan non komputer.
10
Nama dari simpanan data harus menunjukkan tipe penerapanna apakah
secara manual atau komputerisasi. Secara manual misalnya dapat
menunjukkan buku catatat, meja pekerja. Sedang cara komputerisasi
misalnya menunjukkan file urut, file database.
Proses harus menunjukkan nama dari pemroses, yaitu orang, departemen,
sistem komputer, atau nama program komputer yang mengakses proses
tersebut.
2.2.3 QR Code (Quick Response Code)
QR Code (Quick Response Code) merupakan teknik yang mengubah data
tertulis menjadi kode-kode 2-dimensi yang tercetak kedalam suatu media yang
lebih ringkas. QR-Code adalah barCode 2-dimensi yang diperkenalkan pertama
kali oleh perusahan Jepang Denso-Wave pada tahun 1994. BarCode ini pertama
kali digunakan untuk pendataan invertaris produksi suku cadang kendaraan dan
sekarang sudah digunakan dalam berbagai bidang. QR adalah singkatan dari
Quick Renponse karena ditujukan untuk diterjemahkan isinya dengan cepat. QR-
Code merupakan pengembangan dari barCode satu dimensi, QR-Code salah satu
tipe dari barCode yang dapat dibaca menggunakan kamera handphone.
QR-Code mampu menyimpan semua jenis data, seperti data
angka/numerik, alphanumerik, biner, kanji/kana. Selain itu QR-Code memiliki
tampilan yang lebih kecil daripada barCode. Hal ini dikarenakan QR-Code
mampu menampung data secara horizontal dan vertikal, jadi secara otomatis
ukuran dari tampilannya gambar QR-Code bisa hanya sepersepuluh dari ukuran
sebuah barcode. Tidak hanya itu QR-Code juga tahan terhadap kerusakan, sebab
QR Code mampu memperbaiki kesalahan sampai dengan 30% tergantung dengan
ukuran atau versinya. Oleh karena itu, walaupun sebagian simbol QR-Code kotor
ataupun rusak, data tetap dapat disimpan dan dibaca. Tiga tanda berbentuk persegi
di tiga sudut memiliki fungsi agar simbol dapat dibaca dengan hasil yang sama
dari sudut manapun (Wave,2010).
11
Gambar 2.5 QR Code.(Sumber: Rahmawati dan Rahman, 2011)
QR Code dapat menampung data berupa:
1. Angka / Numerik : Maksimal 7.089 karakter
2. Alphanumerik : Maksimal 4.296 karakter
3. Bineri : Maksimal 2.844 byte
4. Kanji / Kana : 1.817 karakter
5. Koreksi kesalahan : Level L = 7%,Level M = 15%,Level Q = 25%,
Level H = 30%
Gambar 2.6 Detail QR Code.(Sumber: Rahmawati dan Rahman, 2011)
Penjelasan rinci mengenai QR-Code pada gambar 2.4 adalah:
1. Position detection patterns: Posisi pola deteksi diatur pada tiga sudut kode
QR, posisi dari kode QR terdeteksi dengan pola deteksi posisi yang
12
memungkinkan kecepatan tinggi membaca dan dapat dibaca dari segala
arah.
2. Margin: Ini adalah area kosong di sekitar kode QR dan membutuhkan
margin sebesar empat modul.
3. Timing pattern: Modul putih dan modul hitam diatur secara bergantian
untuk menentukan koordinat, pola waktu ditempatkan di antara dua pola
deteksi posisi dalam kode QR.
4. Format Information: Informasi format dibaca pertama ketika kode tersebut
diterjemahkan.
2.2.3.1 Versi Simbol QR Code
Versi simbol QR-Code berkisar dari Versi 1 ke Versi 40. Setiap versi
memiliki konfigurasi modul yang berbeda atau jumlah modul (Modul ini mengacu
pada titik-titik hitam dan putih yang membentuk QR-Code). Konfigurasi Modul
mengacu pada jumlah modul yang terkandung dalam simbol, dimulai dengan
Versi 1 (21 x 21 modul) sampai ke Versi 40 (177 x 177 modul). Setiap nomor
versi lebih tinggi terdiri dari 4 modul tambahan per samping.
Gambar 2.7 Versi Simbol QR Code(Sumber: Rahmawati dan Rahman, 2011)
Setiap versi simbol QR-Code memiliki kapasitas data yang sesuai dengan
jumlah data, jenis karakter dan tingkat kesalahan koreksi. Untuk pemeriksaan data
dengan kapasitas maksimum ditentukan pada setiap versinya. Untuk versi dan
kapasitas data maksimum, maka jumlah data dan modul akan meningkat sehingga
simbol QR-Code semakin besar ( Rahmawati dan Rahman, 2011).
2.2.3.2 Koreksi Kesalahan QR Code
13
QR Code memiliki kemampuan mengoreksi kesalahan untuk
mengembalikan data jika kode kotor atau rusak. Empat tingkat kesalahan koreksi
yang tersedia bagi pengguna, tingkatan ini mampu mengoreksi kesalahan pada
QR-Code. Faktor lingkungan dan ukuran QR-Code perlu dipertimbangkan untuk
mengetahui tingkat kesalahan. Tingkat Q atau H dapat dipilih jika kondisi
lingkungan kotor yang akan menyebabkan QR-Code mengalami kerusakan,
sedangkan tingkat L dapat dipilih jika kondisi lingkungan bersih dengan jumlah
data yang besar. Tingkat M adalah tingkat yang paling sering digunakan.
Berikut tabel koreksi kesalahan QR-Code:
Tabel 2.1 Koreksi Kesalahan pada QR Code
Kapasitas Koreksi Kesalahan pada QR CodeLevel L Dapat mengoreksi kesalahan sampai 7%Level M Dapat mengoreksi kesalahan sampai 15%Level Q Dapat mengoreksi kesalahan sampai 25% Level H Dapat mengoreksi kesalahan sampai 30%
(Sumber: Rahmawati dan Rahman, 2011)
2.2.3.3 Kelebihan QR Code
Beberapa kelebihan dalam menggunakan QR Code adalah sebagai berikut:
1. Dibandingkan dengan barCode dua dimensi lain yang ada (misalnya:
Datamatrix, PDF417 dan lain-lain) QR Code mampu menyimpan informasi
cukup banyak (maksimum 4296 karakter untuk alfanumerik atau 7089 digit
numerik). Sebagai ilustrasi, barCode satu dimensi standar yang banyak
digunakan hanya mampu menampung informasi sebanyak 20 digit.
2. Memiliki kemampuan error correction. Data dapat diperbaiki meskipun QR
Code mengalami kerusakan atau kotor sebagian.
3. Proses pembacaan yang cepat karena tidak harus dibaca dalam posisi sudut
tertentu seperti halnya barCode satu dimensi.
4. Lebih murah jika dibandingkan dengan media penyimpanan smartcard
berbasis chip ( Rahmawati dan Rahman, 2011).
1.2.4 Algoritma Enkripsi 3 DES
14
3DES (Triple Data Encryption Standard) merupakan suatu algoritma
pengembangan dari algoritma DES (Data Encryption Standard). Pada dasarnya
algoritma yang digunakan sama, hanya pada 3DES dikembangkan dengan
melakukan enkripsi dengan implementasi algoritma DES sebanyak tiga kali.
3DES memiliki tiga buah kunci yang berukuran 168-bit (tiga kali kunci 56-bit dari
DES). Pada algoritma 3DES dibagi menjadi tiga tahap, setiap tahapnya
merupakan implementasi dari algoritma DES.Tahap pertama, plainteks yang
diinputkan dioperasikan dengan kunci eksternal pertama (K1) dan melakukan
proses enkripsi dengan menggunakan algoritma DES. Sehingga menghasilkan
pra-cipherteks pertama. Tahap kedua, pra-cipherteks pertama yang dihasilkan
pada tahap pertama,kemudian dioperasikan dengan kunci eksternal kedua (K2)
dan melakukan proses enkripsi atau proses dekripsi (tergantung cara
pengenkripsian yang digunakan) dengan menggunakan algoritma DES. Sehingga
menghasilkan prs-cipherteks kedua. Tahap terakhir, pra-cipherteks kedua yang
dihasilkan pada tahap kedua, dioperasikan dengan kunci eksternal ketiga (K3) dan
melakukan proses enkripsi dengan menggunakan algoritma DES, sehingga
menghasilkan cipherteks (C) ( Hidayat, A. 2008).
Gambar 2.8 Algoritma 3DES (Sumber: Hidayat, 2008 )
2.2.4.1 Pemilihan Kunci
Ada dua pilihan untuk pemilihan kunci eksternal algoritma 3DES, yaitu:
1. K1, K2, dan K3 adalah kunci-kunci yang saling bebas
K1 ≠ K2 ≠ K3 ≠ K1
15
2. K1 dan K2 adalah kunci-kunci yang saling bebas, dan K3 sama dengan K1
K1 ≠ K2 dan K3 = K1
2.2.4.2 Proses Enkripsi dan Dekripsi
Proses enkripsi dan dekripsi algoritma 3DES dapat dicapai dengan beberapa cara,
yaitu:
Tabel 2.2 Cara Enkripsi dan Deskripsi
Cara Enkripsi Deskripsi
1 DES – EDE2K1 ≠ K2, K3 = K1
C = E [D {E (P, K1), K2}, K3
DES – DED2 K1 ≠ K2, K3 = K1
P = D [E {D (C, K3), K2}, K1]
2 DES – EEE2K1 ≠ K2, K3 = K1
C = E [E {E (P, K1), K2}, K3]
DES – DDD2K1 ≠ K2, K3 = K1
P = D [D {D (C, K3), K2}, K1]
3 3 DES – EDE3
K1 ≠ K2 ≠ K3 ≠ K1
C = E [D {E (P, K1), K2}, K3]
DES – DED3
K1 ≠ K2 ≠ K3 ≠ K1
P = D [E {D (C, K3), K2}, K1]
4 DES – EEE3K1 ≠ K2 ≠ K3 ≠ K1
C = E [E {E (P, K1), K2}, K3]
DES – DDD3K1 ≠ K2 ≠ K3 ≠ K1
P = D [D {D (C, K3), K2}, K1]
(Sumber : Hidayat, 2008)
2.2.5 Basis Data
Basis data (atau database) adalah kumpulan informasi yang disimpan di
dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu
program komputer untuk memperoleh informasi dari basis data tersebut.
Database digunakan untuk menyimpan informasi atau data yang terintegrasi
dengan baik di dalam komputer. Untuk mengelola database diperlukan suatu
perangkat lunak yang disebut DBMS (Data-base Management System). DBMS
merupakan suatu sistem perangkat lunak yang memungkinkan user (pengguna)
untuk membuat, memelihara, mengontrol, dan mengakses database secara praktis
dan efisien. Dengan DBMS, user akan lebih mudah mengontrol dan memanipulasi
data yang ada. DBMS merupakan salah satu jenis dari RDBSM yang mendukung
adanya relationship atau hubungan antar tabel. Di samping RDBMS, terdapat
jenis DBMS lain, misalnya Hierarchy DBMS, Object Ori-ented DBMS, dan
16
lainya. Dalam konsep database, urutan atau hierarki database sangatlah penting.
Urutan atau hi-erarki database digambarkan dalam gambar sbb:
Gambar 2.9 Hirarki Database( Sumber : Pratama, 2013 ).
2.2.5.1 DBMS (Database Management System)
Database Management System adalah seperangkat program yang
memungkinkan Anda untuk menyimpan, memodifikasi dan mengekstrak
informasi dari sebuah basis data. Juga dapat untuk menambah, menghapus,
mengakses, memodifikasi, dan menganalisis data yang disimpan dalam satu
lokasi. Grup A dapat mengakses data dengan menggunakan query dan alat
pelaporan yang merupakan bagian dari DBMS atau dengan menggunakan
program aplikasi khusus ditulis untuk mengakses data.DBMS ini juga
menyediakan metode untuk menjaga integritas data yang tersimpan,sistem
keamanandan memulihkan data jika sistem gagal. Informasi dari database dapat
disajikan dalam berbagai format. Kebanyakan DBMS termasuk program penulis
laporan yang memungkinkan Anda mengaksesoutput data dalam bentuk laporan.
Banyak DBMS juga termasuk komponen grafis yang memungkinkan Anda
mengakses output informasi dalam bentuk grafik dan diagram ( Pratama. 2013 ).
17
Gambar 2.10 DBSM( Sumber : Pratama, 2013 ).
2.2.5.2 MySQL
MySQL adalah sebuah implementasi dari sistem manajemen basis
datarelasional (RDBMS) yang didistribusikan secara gratis di bawahlisensi GPL
(General Public License). Setiap pengguna dapat secara bebas menggunakan
MySQL, namun dengan batasan perangkat lunak tersebut tidak boleh dijadikan
produk turunan yang bersifat komersial. MySQL sebenarnya merupakan turunan
salah satu konsep utama dalam basis datayang telah ada sebelumnya; SQL
(Structured Query Language). SQL adalahsebuah konsep pengoperasian basis
data, terutama untuk pemilihan atau seleksi dan pemasukan data, yang
memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis.
Kehandalan suatu sistem basis data (DBMS) dapat diketahui dari cara
kerja pengoptimasi-nya dalam melakukan proses perintah-perintah SQL yang
dibuat oleh pengguna maupun program-program aplikasi yang memanfaatkannya.
Sebagai peladen basis data, MySQL mendukung operasi basis datatransaksional
maupun operasi basis datanon-transaksional. Pada modus operasi non-
transaksional, MySQL dapat dikatakan unggul dalam hal unjuk kerja
dibandingkan perangkat lunak peladen basis datakompetitor lainnya. Namun
demikian pada modus non-transaksional tidak ada jaminan atas reliabilitas
terhadap data yang tersimpan, karenanya modus non-transaksional hanya cocok
untuk jenis aplikasi yang tidak membutuhkan reliabilitas data seperti aplikasi
blogging berbasis web (Wordpress), CMS, dan sejenisnya. Untuk kebutuhan
sistem yang ditujukan untuk bisnis sangat disarankan untuk menggunakan modus
basis datatransaksional, hanya saja sebagai konsekuensinya unjuk kerja MySQL
pada modus transaksional tidak secepat unjuk kerja pada modus non-transaksional
(Sudarma, 2010).
18
MySQL memiliki beberapa keistimewaan, antara lain:
1. Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi
seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan
masih banyak lagi.
2. Perangkat lunak sumber terbuka. MySQL didistribusikan
sebagaiperangkat lunak sumber terbuka, di bawahlisensiGPLsehingga
dapat digunakan secara gratis.
3. Multi-user. MySQL dapat digunakan oleh beberapa pengguna dalam
waktu yang bersamaan tanpa mengalami masalah atau konflik.
4. 'Performance tuning', MySQL memiliki kecepatan yang menakjubkan
dalam menangani query sederhana, dengan kata lain dapat memproses
lebih banyak SQL per satuan waktu.
5. Ragam tipe data. MySQL memiliki ragam tipe data yang sangat kaya,
seperti signed / unsigned integer, float, double, char, text, date, timestamp,
dan lain-lain.
6. Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh
yang mendukung perintah Select dan Where dalam perintah (query).
7. Keamanan. MySQL memiliki beberapa lapisan keamanan seperti
levelsubnet mask, namahost, dan izin aksesuserdengan sistem perizinan
yang mendetail serta sandi terenkripsi.
8. Skalabilitas dan Pembatasan. MySQL mampu menangani basis data
dalam skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan
60 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang dapat
ditampung mencapai 32 indeks pada tiap tabelnya.
9. Konektivitas. MySQL dapat melakukan koneksi dengan klien
menggunakan protokolTCP/IP, UNIXsoket (UNIX), atauNamed Pipes
(NT).
10. Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan
menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa
Indonesia belum termasuk di dalamnya.
19
11. Antar Muka. MySQL memiliki antar muka (interface) terhadap berbagai
aplikasi dan bahasa pemrograman dengan menggunakan fungsi API
(Application Programming Interface).
12. Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tool)
yangdapat digunakan untuk administrasi basis data, dan pada setiap
peralatan yang ada disertakan petunjuk online.
13. Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel
dalam menangani ALTER TABLE, dibandingkan basis data lainnya
semacam PostgreSQL ataupun Oracle (Sudarma, 2010).
2.2.6 Android
Android adalah sistem operasi berbasis Linux yang dipergunakan sebagai
pengelola sumber daya perangkat keras, baik untuk ponsel, smartphone dan juga
PC tablet. Secara umum Android adalah platform yang terbuka (Open Source)
bagi para pengembang untuk menciptakan aplikasi mereka sendiri untuk
digunakan oleh berbagai piranti bergerak. Semenjak kehadirannya pada 9 Maret
2009, Android telah hadir dengan versi 1.1, yaitu sistem operasi yang sudah
dilengkapi dengan pembaruan estetis pada apalikasinya, seperti jam alarm, voice
search, pengiriman pesan dengan Gmail, dan pemberitahuan email. Hingga tahun
2012, Android telah berkembang dengan pesat. Dalam kurun 3 tahun Android
telah diproduksi dalam versi, dan versi terakhir yang diproduksi disebut sebagai
Android Lolipop.
Android SDK adalah tools API (Application Programming Interface) yang
dipergunakan untuk mulai mengembangkan aplikasi pada platform Android
menggunakan bahasa pemrograman Java (Khannedy, 2012).
Beberapa fitur Android yang paling penting :
1. Framework, aplikasi yang mendukung pengantian komponen dan reuseble
2. Mesin Virtual Dalvik dioptimalkan untuk perangkat mobile
3. Integrated browser berdasarkan engine open source Webkit
4. Grafis yang dioptimalkan dan didukung oleh libraries grafis 2D, grafis 3D
berdasarkan spesifikasi opengl ES 1,0 (Opsional akselerasi hardware)
5. SQLite untuk penyimpanan data
20
6. Media support yang mendukung audio, video dan gambar (MPEG4,
H.264,
7. MP3,AAC, AMR, JPG, PNG, GIF), GSM telephony (tergantung
hardware)
8. Bluetooth, EDGE, 3G dan WiFi (tergantung hardware)
9. Kamera, GPS, kompas dan accelerometer (tergantung hardware)
ADK (ANDROID DEVELOPMENT TOOLS) adalah plugin yang
didesain untuk IDE Eclipse yang memberikan kemudahan dalam aplikasi Android
menggunakan IDE Eclipse. Dengan ADT kita dapat melakukan pembuatan
package Android (.apk) yang digunakan untuk distribusi aplikasi Android yang
kita rancang semakin tinggi platform Android yang kita gunakan, dianjurkan
menggunakan ADT yang lebih terbaru, karena biasanya munculnya platform baru
diikuti oleh munculnya versi ADT terbaru (Khannedy, 2012).
2.2.6.1 Java
Java adalah bahasa pemrograman berorientasi objek murni yang dibuat
berdasarkan kemampuan-kemampuan terbaik bahasa pemrograman objek
sebelumnya (C++, Ada, Simula). Java diciptakan oleh James Gosling, developer
dari Sun Microsystems pada tahun 1991 (Hakim dan Sutarto, 2009).
Karakteristik Java antara lain :
1. Sederhana (Simple)
2. Berorientasi Objek (Object Oriented)
3. Terdistribusi (Distributed)
4. Interpreted
5. Robust
6. Aman (Secure)
7. Architecture Neutral
8. Portable
9. Performance
10. Multithreaded
11. Dinamis
21
Macam-macam Java 2 Software Developer Kit (J2SDK) antara lain :
1. J2SE (Java 2 Standard Edition)
2. J2EE (Java 2 Enterprise Edition)
3. J2ME (Java 2 Micro Edition)
Gambar 2.11 Cara Kerja Java(Sumber : Novyanto, 2010).
Java mempunyai platform yaitu :
1. Java Virtual Machine (Java VM)
2. Java Application Programming Interface (Java API)
Gambar 2.12 Platform Java(Sumber : Novyanto, 2010).
22
Aplikasi-aplikasi java antara lain :
1. Stand alone
2. Applets
3. Aplikasi berbasis Windows (GUI)
4. Java Servlet
5. Java Server Pages (JSP)
6. Java Beans dan Enterprise Java Beans
7. Java Micro Edition ( Novyanto, 2010 ).
2.2.7 Konsep pemrograman berbasis web dengan PHP
PHP merupakan singkatan rekursif (akronim berulang) dari PHP Hypertext
Preprocessor. PHP adalah bahasa pemrograman script yang paling banyak dipakai
saat ini atau dalam kata lain bisa diartikan sebuah bahasa pemrograman web yang
bekerja di sisi server ( server side scripting) yang dapat melakukan konektifitas
pada database yang di mana hal itu tidak dapat dilakukan hanya dengan
menggunakan sintaks-sintaks HTML biasa (Anugrah, 2010). PHP banyak dipakai
untuk memrogram situs web dinamis, walaupun tidak tertutup kemungkinan
digunakan untuk pemakaian lain (Triswansyah, 2009).
Gambar 2.13 Pengaksesan database melalui web menggunakan PHP
Konsep pemrograman PHP sedikit berbeda dengan pemrograman dengan
menggunakan script CGI yang memaksa untuk menulis kode yang menghasilkan
keluaran dalam format HTML. Pada PHP, penyisiapan kode ditulis secara bebas
setiap ada permintaan terhadap halaman tersebut. Interpreter PHP dalam
mengeksekusi script code PHP pada sisi server, dan output dalam bentuk
dokumen HTML. Secara diagram dapat dilihat pada Gambar 2.12.
23
Gambar 2.14 Proses eksekusi kode PHP.
Keterangan gambar :
1. Client melakukan permintaan data ke web server.
2. Web server melakukan pengecekan ke skrip php.
3. Skrip php diolah di mesin php.
4. Skrip php yang berada diantara skrip HTML dieksekusi di server
5. Client menerima hasil eksekusi php di server berupa informasi dalam
dokumen HTML.
2.2.8 Web Service
Web service adalah suatu sistem perangkat lunak yang dirancang untuk
mendukung interoperabilitas dan interaksi antar sistem pada suatu jaringan. Web
service digunakan sebagai suatu fasilitas yang disediakan oleh suatu web site
untuk menyediakan layanan (dalam bentuk informasi) kepada sistem lain,
sehingga sistem lain dapat berinteraksi dengan sistem tersebut melalui layanan-
layanan (service) yang disediakan oleh suatu sistem yang menyediakan web
service. Web service menyimpan data informasi dalam format XML, sehingga
data ini dapat diakses oleh sistem lain walaupun berbeda platform, sistem operasi,
maupun bahasa compiler.
Web service bertujuan untuk meningkatkan kolaborasi antar pemrogram
dan perusahaan, yang memungkinkan sebuah fungsi di dalam Web Service dapat
dipinjam oleh aplikasi lain tanpa perlu mengetahui detil pemrograman yang
terdapat di dalamnya (Faisal, 2010).
24
Beberapa alasan mengapa digunakannya web service adalah sebagai
berikut:
1. Web service dapat digunakan untuk mentransformasikan satu atau beberapa
bisnis logic atau class dan objek yang terpisah dalam satu ruang lingkup yang
menjadi satu, sehingga tingkat keamanan dapat ditangani dengan baik.
2. Web service memiliki kemudahan dalam proses deployment-nya, karena tidak
memerlukan registrasi khusus ke dalam suatu sistem operasi. Web service
cukup di-upload ke web server dan siap diakses oleh pihak-pihak yang telah
diberikan otorisasi.
3. Web service berjalan di port 80 yang merupakan protokol standar HTTP,
dengan demikian web service tidak memerlukan konfigurasi khusus di sisi
firewall. (Utama, 2012).
Arsitektur Web Service
Web service memiliki tiga entitas dalam arsitekturnya, yaitu:
1. Service Requester (peminta layanan)2. Service Provider (penyedia layanan)3. Service Registry (daftar layanan)
Gambar 2.15 Arsitektur Web service(Sumber :Utama, 2012)
Pada gambar diatas dapat di jelaskan sebagai berikut :
1. Service Provider: Berfungsi untuk menyediakan layanan/service dan
mengolah sebuah registry agar layanan-layanan tersebut dapat tersedia.
2. Service Registry: Berfungsi sebagai lokasi central yang mendeskripsikan
semua layanan/service yang telah di-register.
25
3. Service Requestor: Peminta layanan yang mencari dan menemukan
layanan yang dibutuhkan serta menggunakan layanan tersebut.
Operasi-Operasi Web Service
Secara umum, web service memiliki tiga operasi yang terlibat di
dalamnya, yaitu:
1. Publish/Unpublish: Menerbitkan/menghapus layanan ke dalam atau dari
registry.
2. Find: Service requestor mencari dan menemukan layanan yang
dibutuhkan.
3. Bind: Service requestor setelah menemukan layanan yang dicarinya,
kemudian melakukan binding ke service provider untuk melakukan interaksi
dan mengakses layanan/service yang disediakan oleh service provider.
2.2.8.1 JSON
JSON (JavaScript Object Notation ) adalah format pertukaran data yang
ringan, mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan
dibuat (generate) oleh komputer. Format ini dibuat berdasarkan bagian dari
Bahasa Pemograman JavaScript. JSON meupakan format teks yang tidak
bergantung pada Bahasa pemograman apapun karena menggunakan gaya Bahasa
yang umum digunakan oleh programmer keluarga C termasuk C, C++, C#, Java,
JavaScript, Perl, Python dan lain-lain. Oleh karena sifat-sifat tersebut menjadikan
JSON ideal sebagai Bahasa pertukaran data. Adapun struktur penulisan JSON
sebegai berikut:
1. Kumpulan pasangan nama/nilai. Pada beberapa Bahasa, hal ini dinyatakan
sebagai objek (object), rekaman (record), struktur (struct), kamus
(dictionary), tabel hash (hash table), daftar terkunci (keyed list) atau
associative array.
2. Daftar nilai terurutkan (an ordered list of values). Pada kebanyakan Bahasa,
hal ini dinyatakan sebagai larik (array), vektor (vector), daftar (list) atau
urutan (sequence).
26
Struktur – struktur data tersebut dikenal sebagai strktur data universal. Pada
dasarnya, semua Bahasa pemograman modern mendukung struktur data ini dalam
bentuk yang sama maupun berlainan (Kasman, 2013).
2.2.9 Metode pengujian perangkat lunak
Pengujian perangkat lunak merupakan tahapan dalam proses
pengembangan perangkat lunak. Fungsi dari pengujian perangkat lunak ini adalah
untuk memfokuskan pada logika internal dari perangkat lunak, fungsi eksternal
dan mencari segala kemungkinan kesalahan dan memeriksa apakah sesuai dengan
hasil yang diinginkan.
2.2.9.1 Metode Black Box
Metode black box memungkinkan perekayasa perangkat lunak
mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan semua
persyaratan fungsional untuk suatu program.
Black Box dapat menemukan kesalahan dalam kategori berikut:
1. Fungsi-fungsi yang tidak benar atau hilang
2. Kesalahan interface
3. Kesalahan dalam strutur data atau akses basisdata eksternal
4. Inisialisasi dan kesalahan terminasi
5. validitas fungsional
6. kesensitifan sistem terhadap nilai input tertentu
7. batasan dari suatu data
Gambar 2.17 Sistem kerja dari Teknik Pengujian Black Box(sumber: Rouf, 2012)
2.2.9.2 Tipe dari Black Box Testing
Adapun beberapa tipe dari black box testing adalah sebagai berikut.
27
1. Equivalence Class Testing
a. Bagi domain Input ke dalam beberapa kelas yang nantinya akan
dijadikan sebagai kasus uji
b. kelas yang telah terbentuk disajikan sebagai kondisi input dalam kasus
uji
c. Kelas tersebut merupakan himpunan nilai-nilai yang valid dan tidak
valid
d. kondisi input bisa merupakan suatu range, harga khusus, suatu
himpunan, atau suatu boolean
e. Bila kondisi input berupa suatu range, maka input kasus ujinya satu
valid dan dua yang invalid
f. Bila kondisi input berupa suatu harga khusus, maka input kasus ujinya
satu valid dan dua yang invalid
g. Bila kondisi input berupa suatu anggota himpunan, maka input kasus
ujinya satu valid dan dua yang invalid
h. Bila kondisi input berupa suatu anggota Boolean , maka input kasus
ujinya satu valid dan dua yang invalid
2. Sample Testing
a. Melibatkan sejumlah nilai yang dipilih dari data masukan kelas ekivalensi
b. Integrasikan nilai tersebut ke dalam kasus uji
c. Nilai yang dipilih dapat berupa konstanta atau variabel Limit Testing
d. Kasus uji yang memproses nilai batas (atau titik singular)
e. Nilai batas disimpulkan dari kelas ekivalensi dengan mengambil nilai yang
sama atau mendekati nilai yang membatasi kelas akivalensi tersebut
f. Limit test also juga melibatkan data keluaran dari ekivalensi kelas
g. Pada kasus segi tiga, misalnya limit testing mencoba untuk mendeteksi
apakah a+b >= c dan bukan a + b > c
h. Bila kondisi input menentukan suatu range, maka kasus ujinya harus
mencakup pengujian nilai batas dari range dan nilai invalid yang dekat
28
dengan nilai batas. Misal bila rangenya antara [-1.0, +1.0], maka input
untuk kasus ujinya adalah -1.0, 1.0, -1.001,1.001
i. Bila kondisi inputnya berupa harga khusus kasaus ujinya harus
mencakup nilai minimum dan maksimum. Misal suatu file dapat terdiri
dari 1 to 255 record, maka kasus ujinya harus mencakup untuk nilai 0, 1,
255 and 256, atau uji saat keadaan record kosong dan record penuh.
3. Robustness Testing
Data dipilih dari luar range yang didefinisikan. Tujuan pengujian ini
adalah untuk membuktikan tidak adanya kejadian yang katastropik yang
dihasilkan akibat adanya keabnormalan.
4. Behavior Testing
Suatu pengujian yang hasilnya hanya dapat dievaluasi per sub program,
tidak bisa dilakukan per modul
5. Requirement Testing
a. Menyusun kasus uji untuk tiap kebutuhan yang berkorelasi dengan modul /
CSU
b. Tiap kasus uji harus dapat dirunut dengan kebutuhan perangkat lunaknya
melalui matriks keterunutuan.
29