BAB 3 ANALISA DAN PERANCANGAN
3.1
Analisa
Analisa bertujuan untuk mengkaji situasi dan memutuskan dengan tepat tentang masalah yang akan dipecahkan. Dalam tahap analisa langkah pertama yang harus dilakukan adalah mengidentifikasi masalah seperti input apa saja yang dibutuhkan serta output apa yang akan dihasilkan. Input adalah data-data yang dimasukkan, yang nantinya akan diproses sehingga bisa menghasilkan output sesuai dengan yang diharapkan. Input ini yang nantinya akan mengalami proses encoding yaitu mengetikkan data, mencocokan karakter dengan tipe data yang digunakan dan mengubah karakter menjadi image QR Code. Dari proses tersebut, dihasilkan sebuah output berupa image QR Code yang nantinya akan dibaca menggunakan aplikasi QR Code Reader.
3.1.1 Analisa Kebutuhan
Analisa kebutuhan merupakan analisis terhadap komponen-komponen yang digunakan untuk pembuatan QR Code pada sistem online reservasi tiket pesawat ini. Pada studi kasus maskapai penerbangan XYZ, setiap data pemesanan tiket yang diinput user akan dikirimkan melalui email dimana kode pemesanan tiket masih dalam bentuk barcode atau kode batang. Dengan masalah yang dihadapi tersebut penulis mencoba menerapkan untuk mengubah data kode pemesanan tiket pesawat yang akan dikirim melalui email pengguna dalam bentuk simbol, dalam hal ini penulis menggunakan QR Code atau kode 2 dimensi. Kode pemesanan tiket dalam bentuk QR Code dapat dibaca dengan menggunakan 1 http://digilib.mercubuana.ac.id/
2
decoder QR Code dan untuk pengecekan valid atau tidaknya tiket, melalui dokumen XML yang berisi data pemesanan tiket di server.
3.1.2
Analisa Transformasi Data Berdasarkan file dokumen ISO QR Code symbology specification yang
menjelaskan tahapan - tahapan dari penyusunan dan struktur QR Code penulis mencoba menjabarkan setiap tahapan yang ada di BAB 2 dengan menggunakan sampel data sebagai contoh untuk dirubah kedalam bentuk QR Code, dalam hal ini penulis hanya menggunakan mode alphanumeric saja. Dalam tipe data alphanumeric terdapat 45 karakter berbeda yang dikenali oleh QR Code yaitu diantaranya : a. 10 karakter digit angka yaitu angka 0 sampai dengan angka 9 dengan nilai byte data dimulai dari 30HEX hingga 39HEX. b. 26 karakter huruf alphabet yaitu huruf A-Z dengan nilai byte dimulai dengan 41HEX sampai dengan 5AHEX. c. 9 karakter tanda baca yaitu ‖ ‖, ‖$‖, ‖%‖, ‖*‖, ‖+‖, ‖-‖, ‖.‖, ‖/‖, dan ‖:‖ dengan nilai byte 20HEX, 24HEX, 25HEX, 2AHEX, 2BHEX, 2DHEX, 2EHEX, 2FHEX, dan 3AHEX. Tabel 3.1 Encoding/decoding untuk mode alphanumeric [Sumber: ISO/IEC 18004, Information technology — Automatic identification and data capturetechniques — QR Code 2005 bar code symbology specification, 2006:26]
http://digilib.mercubuana.ac.id/
3
3.1.2.1 Encoding
Pada
mode
alphanumeric
ini
standarnya
setiap
dua
karakter
dipresentasikan dengan panjang 11 bit. Misalkan data yang akan diproses adalah ― ABC123‖ maka data akan dipresentasikan ― AB‖, ― C1‖ dan ― 23‖ dengan panjang masing – masing 11 bit. Tapi jika jumlah karakter yang akan diproses jumlahnya ganjil, maka 1 karakter akhir akan dipresentasikan dengan panjang 6 bit. Sebagai contoh penulis akan mengubah data ― ABCDE123‖ menjadi sebuah simbol QR Code dengan versi 1-H. a. Pertama data akan dipisah-pisahkan menjadi kelompok yang beranggotakan 2 karakter. Hasil: (A,B) (C,D) (E,1) (2,3) b. Setiap karakter data yang ada pada tiap kelompok dikonversi kedalam nilai yang tercantum di tabel 3.1. Hasil: (10,11) (12,13) (14,1) (2,3) c. Selanjutnya setiap kelompok yang mempresentasikan nilai dari setiap karakter akan diubah menjadi angka biner dengan panjang 11 bit per kelompok. Setiap kelompok akan diubah terlebih dahulu kedalam bentuk desimal dengan rumus Dec = (A x 45) + B, lalu hasilnya akan dikonversi kedalam bentuk binari. (10, 11) => (10 x 45) + 11 => 450 + 11 => 461 => 00111001101 (12, 13) => (12 x 45) + 13 => 540 + 13
http://digilib.mercubuana.ac.id/
4
=> 553 => 01000101001 (14, 1) => (14 x 45) + 1 => 630 + 1 => 631 => 01001110111 (2, 3) => (2 x 45) + 3 => 90 + 3 => 93 => 00001011101 Diurutkan
menjadi
00111001101
01000101001
01001110111
00001011101 d. Konversi indikator jumlah data kedalam bentuk bilangan biner dengan panjang 9 bit untuk versi 1-H. Hasil: 8 – 000001000 Digabung
menjadi
000001000
00111001101
01000101001
01001110111 00001011101 e. Tambahkan indikator mode alphanumeric yaitu 0010. Hasil: 0010 000001000 00111001101 01000101001 01001110111 00001011101 f. Tambahkan indicator terminator data sepanjang 4 bit pada akhir urutan biner. Apabila panjang data sudah memenuhi jumlah data maksimal yang dapat ditampung oleh versi QR Code maka terminator tidak dibutuhkan. Hasil: 0010 000001000 00111001101 01000101001 01001110111 00001011101 0000
http://digilib.mercubuana.ac.id/
5
g. Ubah data kedalam kelompok-kelompok bit data yang memiliki panjang 8 bit, jika kelompok data terakhir jumlahnya kurang dari 8 bit maka ditambahkan dengan angka nol pada bagian belakang hingga memiliki panjang 8 bit. Hasil: 00100000 01000001 11001101 01000101 00101001 11011100 00101110 10000000 h. Kelompok-kelompok yang terdiri dari 8 bit disebut dengan kode kata. Jika jumlah kode kata kurang dari kapasitas yang dapat ditampung dalam versi tersebut maka sebagai alternatif akan ditambahkan ― 11101100‖ dan ― 00010001‖ hingga memenuhi kapasitas. Untuk versi 1-H memiliki kapasitas 9 karena kode data yang ada saat ini memiliki panjang 8 kode kata maka akan ditambahkan dengan ― 11101100‖ Hasil: 00100000 01000001 11001101 01000101 00101001 11011100 00101110 10000000 11101100 i. Data yang sudah memenuhi kapasitas tersebut diubah kembali kedalam bentuk desimal dan dirubah per kode kata. Hasil: 00100000 => 32 01000001 => 65 11001101 => 205 01000101 => 69 00101001 => 41 11011100 => 220 00101110 => 46 10000000 => 128 11101100 => 236
http://digilib.mercubuana.ac.id/
6
j. Dalam tahapan ini barisan kode data akan ditambahkan dan diproses dengan error correction code. Versi 1-H memiliki jumlah block RS (Reed Solomon) 1. Fungsi g(x) sesuai dengan versi 1-H yaitu : g(x) = x17 + α43x16 + α139x15 + α206x14 + α78x13 + α43x12 + α239x11 + α123x10 + α206x9 + α214x8 + α147x7 + α24x6 + α99x5 + α150x4 + α39x3 + α243x2 + α163x + α136
Fungsi g(x) diatas adalah bentuk dasar dari elemen GF(28), fitur dari GF(28) diantaranya adalah : -
Mendukung fungsi aritmatik dengan 4 operasi
-
α255 adalah sama dengan 1 - Bilangan eksponensial α dapat dikonversi kedalam bentuk integer menggunakan tabel konversi eksponensial α yang ada di lampiran.
Setelah diproses dengan menggunakan algoritma Reed Solomon maka akan menghasilkan urutan kode kata sebagai berikut: 32 65 205 69 41 220 46 128 236 42 159 74 221 244 169 239 150 138 70 237 85 224 96 74 219 61 k. Hasil kode kata yang merupakan bilangan integer dirubah kembali menjadi bilangan biner dengan panjang 8 bit. Hasil: 32 => 00100000 65 => 01000001 205 => 11001101 69 => 01000101 41 => 00101001 220 => 11011100
http://digilib.mercubuana.ac.id/
7
46 => 00101110 128 => 10000000 236 => 11101100 42 => 00101010 159 => 10011111 74 => 01001010 221 => 11011101 244 => 11110100 169 => 10101001 239 => 11101111 150 => 10010110 138 => 10001010 70 => 01000110 237 => 11101101 85 => 01010101 224 => 11100000 96 => 01100000 74 => 11101100 219 => 11011011 61 => 001111101 l. Kode data yang sudah terbentuk binari kemudian akan dimasukan kedalam simbol QR Code dalam bentuk module-module yang terdiri dari 2 warna yaitu terang dan gelap. Sesuai dengan file dokumen ISO QR Code symbology specification bahwa ukuran simbol QR Code yang digunakan adalah simbol yang berukuran 21 modul x 21 modul seperti yang terlihat pada gambar 3.1
http://digilib.mercubuana.ac.id/
8
Gambar 3.1 Ukuran simbol yang digunakan pada versi 1-H [Sumber: ISO/IEC 18004, Information technology — Automatic identification and data capturetechniques — QR Code 2005 bar code symbology specification, 2006:10]
QR Code versi 1 memiliki 26 blok module dan pada setiap blok memiliki 8 modul yang mewakili panjang bit data pada setiap kode data. Setiap simbol memiliki koordinat yang dapat digambarkan dengan (x, y) dimana x adalah kolom dan y adalah baris, untuk QR Code versi 1 sendiri memiliki kordinat dari (0, 0) yaitu di posisi pojok kanan bawah sampai (20, 20) yaitu pojok kiri atas. Adapun untuk memasukan data kedalam simbol QR Code harus mengikuti aturan dan standar yang sudah dibuat, diantaranya adalah: - Data mulai dimasukan dari koordinat (0, 0) atau dari blok module kanan bawah. - Untuk pengisian pada setiap blok ada dua arah yaitu dengan arah pengisian ke bawah dan ke atas.
http://digilib.mercubuana.ac.id/
9
(a)
(c)
(b)
8
7
8
2
1
6
5
7
4
3
4
3
6
6
5
2
1
5
8
7
4
3
2
1
Gambar 3.2 Cara pengisian data ke dalam blok data (a) pengisian normal dengan arah ke atas, (b) Pengisian normal dengan arah ke bawah, (c) Pengisian data jika blok bertindihan dengan pola struktur QR Code - Jika pertama yaitu blok paling paling kanan bawah sudah penuh maka dilanjutkan ke blok diatasnya, jika sudah mencapai blok terakhir dalam 1 kolom maka pindah ke kolom sebelah kiri tapi dengan arah berbeda yaitu dari atas ke bawah seperti yang digambarkan pada gambar 3.3.
Gambar 3.3 Arah urutan pengisian blok data pada very 2-M. [Sumber: ISO/IEC 18004, Information technology — Automatic identification and data capturetechniques — QR Code 2005 bar code symbology specification, 2006:48]
http://digilib.mercubuana.ac.id/
10
- Hasil gambar simbol QR Code setelah dimasukan barisan kode kata yang sebelumnya sudah diubah kedalam bentuk binari terlihat pada gambar 3.4.
Gambar 3.4 Hasil sementara QR Code yang sudah dimasukan data m. Jika salah satu warna lebih dominan atau jika motif pada simbol menyerupai motif struktur QR Code seperti finder pattern dan lainlain maka akan membuat pembacaan QR Code menjadi kabur atau salah pengartian kode itu sendiri, Untuk menghindari hal tersebut maka pada simbol QR Code akan dimasukan struktur mask pattern untuk menghindari terjadinya hal – hal yang disebutkan sebelumnya. Area yang akan diberikan mask pattern adalah kode kata yang ada di di simbol tidak termasuk didalamnya finder pattern, timing pattern dan lain – lain. Cara dan aturan untuk memberikan mask pattern itu sendiri dibagi ke dalam 8 cara yang dapat digunakan salah satunya. Tabel 3.2 Daftar mask pattern, Arti ―mod‖ pada table adalah sisa dari pembagian dan ― div‖ adalah pembagian. Indikator mask pattern
Kondisi
000
(i+j) mod 2 = 0
001
i mod 2 = 0
010
j mod 3 = 0
011
(i+j) mod 3 = 0
100
((i div 2) + (j div 3)) mod 2 = 0
http://digilib.mercubuana.ac.id/
11
mod‖ pada table adalah sisa dari Tabel 3.3 Daftar mask pattern, Arti ― pembagian dan ― div‖ adalah pembagian (lanjutan). Indikator mask pattern
Kondisi
101
(ij) mod 2 + (ij) mod 3 = 0
110
((ij) mod 2 + (ij) mod 3) mod 2 = 0
111
((ij) mod 3 + (i+j) mod 2) mod 2 = 0
Rumus atau formula dari mask pattern itu sendiri untuk setiap kordinat yang ada pada simbol QR Code. Contoh cara penggunaan mask pattern jika menggunakan mask pattern dengan indikator 000 : - Pada kodinat (20, 20) : (20+20) mod 2 = 0 - Pada kordinat (19,20) : (19+20) mod 2 = 1 Bit asli akan diproses dengan XOR dengan data bit yang didapatkan sesuai dengan kordinatnya. Pada sample data kali ini penulis akan menggunakan mask pattern ― 011‖.
Gambar 3.5 Pattern mask pada simbol versi 1 [Sumber: ISO/IEC 18004, Information technology — Automatic identification and data capturetechniques — QR Code 2005 bar code symbology specification, 2006:51]
http://digilib.mercubuana.ac.id/
12
n. Format informasi yang ada pada simbol QR Code adalah format yang berisi data-data informasi mengenai QR Code itu sendiri. Dalam format informasi itu sendiri terdapat keterangan error correction level yang digunakan dan indikator mask pattern sepanjang 15 bit. 2 bit pertama adalah error correction level yang ada pada tabel 3.3. Tabel 3.4 Daftar indikator error correction level Error Correction Level
Inidcator
L
01
M
00
Q
11
H
10
Karena versi QR Code yang digunakan pada sample data adalah versi 1-H maka indicator yang digunakan adalah ― 10‖. 3 bit berikutnya adalah mask pattern yang dipilih pada bagian sebelumnya yaitu ― 011‖. Hasil: 10 011 o. Untuk 10 bit sisanya adalah bit – bit untuk error correction level dari 5 bit sebelumnya. Setelah memproses ― 10011‖ dengan algoritma error correction level maka akan menghasilkan ― 0111000010‖ dan jika digabung dengan 5 data sebelumnya maka akan menjadi ― 100110111000010‖. p. Untuk mencegah agar format informasi tidak memunculkan angka 0 semua maka format informasi yang sudah ada diproses XOR dengan ― 101010000010010‖
maka
format
informasi
menjadi
― 001100111010000‖. q. Cara untuk meletakan format informasi kedalam simbol QR Code juga tidak sembarangan karena ada aturan dan urutan yang harus dilalui seperti yang terlihat pada gambar 3.6 dibawah ini.
http://digilib.mercubuana.ac.id/
13
Gambar 3.6 Ilustrasi urutan dari pengisian format informasi [Sumber: ISO/IEC 18004, Information technology — Automatic identification and data capturetechniques — QR Code 2005 bar code symbology specification, 2006:56]
Urutan yang terlihat pada gambar adalah urutan yang menghitung mundur jadi bukan angka 0 yang menjadi awal memasukan format informasi tapi format informasi dimasukan dimulai dari posisi 14. Hasil dari format informasi yang dimasukan kedalam simbol QR Code dapat dilihat pada gambar dibawah ini.
Gambar 3.7 Ilustrasi format informasi yang sudah dimasukan kedalam simbol QR Code
http://digilib.mercubuana.ac.id/
14
r. Hasil akhir dari simbol QR Code adalah simbol yang sudah diberikan format informasi dan kode kata yang sudah diproses dengan mask pattern dapat dilihat pada gambar dibawah ini.
BCDE123‖ Gambar 3.8 Hasil akhir dari QR Code untuk ―A
3.1.2.2 Decoding
Proses decoding dari bentuk simbol QR Code kembali kedalam bentuk kalimat atau data asli hanyalah sebuah pembalikan dari proses-proses decoding yang sudah dibahas sebelumnya. Adapun langkah-langkah dari decoding itu sendiri dapat diuraikan secara ringkas sebagai berikut: a. Alat pembaca atau scanner melakukan pencitraan gambar simbol yang akan didecode kembali menjadi data asli. Pada saat pembacaan yang akan dicari pertama kali adalah finder pattern atau pola pencari yang berada di posisi kanan atas, kiri atas, dan kiri bawah. b. Mendeteksi perputaran simbol dan kemiringan simbol dengan berpatokan kepada finder pattern. c. Mendeteksi panjang modul dengan mengukur jarak antara finder pattern dengan rumus X = (WUL + WUR) / 14 d. Memperkirakan versi dari simbol dengan rumus V = [(D/X) – 10] / 4. Jika hasilnya adalah kurang dari 6 atau sama dengan 6 maka hasil ini dipakai sebagai data versi yang valid.
http://digilib.mercubuana.ac.id/
15
Gambar 3.9 Ilustrasi pengukuran symbol [Sumber: ISO/IEC 18004, Information technology — Automatic identification and data capturetechniques — QR Code 2005 bar code symbology specification, 2006:64]
e. Jika versi yang dihasilkan lebih dari 6 maka akan dilakukan pembacaan sebagai berikut : -
Membagi lebar dari WUR yang berada di pojok kanan atas dengan angka 7 untuk mengkalkulasi ukuran modul.
-
Mendeteksi garis bantuan antara finder pattern A ke finder pattern B dan finder pattern A ke finder pattern C
-
Membaca informasi format yang tersimpan disamping pada symbol
Gambar 3.10 Ilustrasi penghubungan antar finder pattern dan letak format informasi [Sumber: ISO/IEC 18004, Information technology — Automatic identification and data capturetechniques — QR Code 2005 bar code symbology specification, 2006:64]
http://digilib.mercubuana.ac.id/
16
f. Setelah mendapatkan format informasi dan sudah diartikan isinya maka lakukan fungsi XOR dengan rumus data masking yang sesuai dengan indicator mask pattern yang ada di format informasi. g. Setelah data masking dihilangkan maka data dirangkai kembali menjadi bit-bit dengan cara membalik urutan saat memasukan data pada proses encoding. h. Lakukan pendeteksian error correction pada data. i. Kembalikan rangkaian data kedalam bentuk awal dari aliran data tersebut dengan menyusun kembali rangkaian blok-blok data dengan panjang yang sesuai dengan indikator-indikator yang ada pada informasi format. j. Mengembalikan data aslinya dengan melakukan kebalikan proses dari perubahan data menjadi bit.
3.1.3
Analisa Perangkat Lunak
Dalam pembuatan encoder QR Code untuk pemesanan tiket ini penulis menggunakan script yang ditulis dengan menggunakan bahasa pemrograman C# berbasis web, sedangkan untuk decode QR Code ditulis dengan menggunakan bahasa pemrograman Java yang akan dijalankan pada sistem operasi Android.
3.2
Perancangan Prinsip dari decoder dan encoder yang dirancang ini memanfaatkan fungsi
dan yang telah tersedia lalu digabungkan dengan bahasa pemrograman C# sebagai interface untuk retrieve lalu mengolah data yang dimasukan oleh user, disimpan ke dalam database dimana nantinya hasil data pemesanan tiket juga dalam bentuk dokumen XML dan bahasa pemrograman java sebagai interface untuk scan QR Code yang diterima user.
http://digilib.mercubuana.ac.id/
17
3.2.1
Perancangan Dengan Diagram Alur (Flow Chart)
Diagram Alur adalah gambaran sebuah sistem dalam bentuk diagram alir dari algortima-algortima dalam suatu program, diagram ini menyatakan arah alur program tersebut dijalankan. Diagram alur untuk encoding dan decoding pada aplikasi ini dapat dilihat pada gambar dibawah ini.
Gambar 3.11 Diagram alur proses encode pada aplikasi
http://digilib.mercubuana.ac.id/
18
Gambar 3.12 Diagram alur proses decode pada aplikasi Proses Encode pada gambar 3.11 dijelaskan bahwa user melakukan input data pemesanan tiket kedalam aplikasi, setelah data siap untuk diproses maka aplikasi akan melakukan validasi data dengan cara memeriksa apakah semua hal yang dibutuhkan sudah diisi dengan baik atau belum. Data yang dimaksud disini yaitu Negara dan Kota asal keberangkatan, Negara dan Kota tujuan, tanggal dan jam keberangkatan. Bila data yang dimasukan tersebut tidak valid atau dalam hal ini kosong maka aplikasi akan menampilkan pesan kesalahan lalu akan kembali menampilkan form pemesanan tiket agar user dapat mengulang untuk melengkapi pengisian form. Jika data yang dimasukan sudah valid maka aplikasi akan memproses data tersebut dengan menggunakan class dari QR Code. Setelah data
http://digilib.mercubuana.ac.id/
19
diproses oleh class QR Code maka data akan ditampilkan ke layar dalam bentuk detail data yang dimasukan oleh user berikut dengan gambar QR Code yang merupakan kode pemesanan tiket. Data yang ditampilkan ini juga akan dikirimkan ke user dalam bentuk email dan data pemesanan tiket juga terdapat di server dengan tipe XML. Untuk proses decode terlihat pada gambar 3.12. Petugas check in melakukan scan gambar QR Code yang akan diproses menjadi data kode pemesanan tiket. Setelah gambar dilakukan scan, maka aplikasi akan memproses dengan mengecek validasi, apakah format gambar yang di scan sudah benar. Bila gambar yang di scan tidak valid atau dalam hal ini rusak maka aplikasi akan menampilkan pesan kesalahan lalu Petugas check in dapat mengulang untuk melakukan scan gambar. Jika gambar yang di scan sudah valid maka aplikasi akan memproses gambar tersebut dengan menggunakan class dari QR Code untuk dilakukan decoding dan dicek dengan yang ada di database lalu menampilkan kode pemesanan dan status data pemesanan tiket.
3.2.2
Analisis Use Case
Langkah pertama yang harus dilakukan untuk mengetahui apakah kebutuhan user adalah memodelkan sistem dengan menggunakan use case diagram. Use case adalah peringkat tertinggi dari fungsionalitas yang dimiliki sistem. Dengan kata lain, use case menggambarkan bagaimana seseorang akan menggunakan/memanfaatkan sistem. Sedangkan use case diagram sendiri memperlihatkan hubungan-hubungan yang terjadi antara aktor-aktor, yakni seseorang atau sesuatu yang sedang berinteraksi dengan sistem, dengan use caseuse case yang ada dalam sistem. (Nugroho, 2005:51) Dengan use case diagram ini dapat diketahui proses yang terjadi pada sistem aplikasi QR Code. Kompenenkompenen yang terdapat pada use case diagram terdiri dari: 1. Actor: pengguna software aplikasi, dalam hal ini bias berupa manusia, hadware, atau sistem informasi yang lain. Actor dapat memasukkan informasi ke dalam sistem, menerima informasi dari sistem ataupun keduanya.
http://digilib.mercubuana.ac.id/
20
2. Use Case: perilaku atau apa yang dikerjakan oleh pengguna sistem aplikasi, termasuk interaksi antara actor dengan software aplikasi tersebut. Tabel 3.5 Daftar Aktor yang terlibat dalam sistem User
Term
Petugas Check In
Deskripsi Suatu individual atau organisasi yang mempunyai peran untuk mengajukan data pemesanan tiket pesawat Suatu individual atau organisasi yang mempunyai peran serta tanggung jawab untuk melakukan scan dan validasi data pemesanan tiket pesawat.
Aktor yang digunakan hanya dua yaitu user dan petugas check in yang menggunakan bagian terpisah dari aplikasi ini, yang pertama adalah user yang mengajukan data pemesanan tiket dan memasukannya kedalam sistem yang akan merubah menjadi simbol QR Code yang kemudian dikirimkan kepada user melalui email. Aktor kedua adalah petugas check in yang dapat melakukan scan untuk validasi data pemesanan tiket ke dalam sistem, kemudian sistem akan menterjemahkan simbol QR Code atau dalam hal ini melakukan decoding dari gambar simbol QR Code yang dimiliki user dan mencocokan dengan yang ada di database. Diagram Use case dari aplikasi sistem pemesanan tiket pesawat memanfaatkan QR Code dapat dilhat pada gambar 3.13 berikut:
Gambar 3.13 Diagram Use Case
http://digilib.mercubuana.ac.id/
21
Gambar diatas merupakan use case diagram dari aplikasi sistem pemesanan tiket pesawat memanfaatkan QR Code, sedangkan untuk deskripsi singkat dari masing-masing use case adalah sebagai berikut: Tabel 3.6 Deskripsi singkat masing-masing use case Aktor
User
Petugas Check in
System
3.2.3
Use Case Deskripsi Input data Use case ini digunakan untuk proses pemesanan tiket menginputkan data pemesanan tiket yang nantinya akan di encode. Terima QR Code Use case ini digunakan untuk user Melalui Email menerima data pemesanan tiket dalam bentuk QR Code melalui email. Scan Image Use case ini digunakan untuk QR Code menangkap image QR Code menggunakan kamera digital dan nanti hasilnya digunakan untuk proses penerjemahan. Encode Use case ini digunakan untuk merubah data yang akan digunakan sebagai informasi data pemesanan tiket, mencocokan karakter dengan tipe data dan mengubah karakter-karakter tersebut menjadi QR Code. Decode Use case ini digunakan untuk menerjemahkan inputan citra QR Code sehingga mendapatkan data yang tersimpan dalam QR Code tersebut. Pengecekan Data Use case ini sistem akan mencari dan mencocokan kode pemesanan tiket pesawat pada dokumen file XML dan selanjutnya akan ditampilkan pada layar.
Analisis Activity Diagram
Activity diagram adalah salah satu cara untuk memodelkan event-event yang terjadi dalam suatu use case. Secara esensial, activity diagram mirip dengan diagram alir (flowchart) karena memperlihatkan aliran kendali dari suatu aktifitas ke aktifitas lainnya (Nugroho, 2005:61). Berikut adalah activity diagram secara keseluruhan proses yang terjadi di dalam sistem online reservasi tiket pesawat:
http://digilib.mercubuana.ac.id/
22
3.2.3.1 Activity Diagram QR Code Encode
Activity diagram QR Code Encode dimulai pada saat user mengetikan data-data yang akan dijadikan image dari QR Code kemudian menyimpannya. Setelah itu image QR Code akan dibaca menggunakan kamera yang terintegrasi pada mobile phone dengan menggunakan aplikasi QR Code Reader. Activity diagram QR Code Encode seperti pada gambar 3.14.
Gambar 3.14 Activity diagram QR Code Encode
3.2.3.2 Activity Diagram QR Code Decode
Activity diagram decode ini diawali dengan melakukan scan QR Code sehingga didapatkan sebuah simbol QR Code, kemudian sistem akan mengenali dan mengambil simbol data matrik QR Code. Dari simbol yang didapat, sistem
http://digilib.mercubuana.ac.id/
23
akan mengambil format informasi level koreksi kesalahan dan pola mask yang digunakan. Setelah pola mask didapat maka proses unmask pada data matrik QR Code yang dimiliki simbol. Kemudian sistem mengambil blok-blok data yang terdapat pada simbol yang selanjutnya melakukan proses koreksi kesalahan pada blok data. Setelah proses koreksi maka sistem melakukan penerjemahan blok-blok data yang didapat menjadi data teks. Setelah semua proses selesai maka akan ditampilkan isi dari QR Code. Activity diagram QR Code Encode Pengecekan data seperti pada gambar 3.15.
Gambar 3.15 Activity diagram QR Code Decode
http://digilib.mercubuana.ac.id/
24
3.2.3.3 Activity Diagram Pengecekan Data
Activity diagram pada use case ini diawali dengan membaca data dan mengeceknya, kemudian sistem mencocokan data dengan list pemesanan tiket dalam bentuk dokumen XML. Jika data yang dicari cocok maka akan ditampilkan status kode pemesanan tiket valid, jika data yang dicari tidak cocok maka akan ditampilkan status kode pemesanan tiket tidak valid. Activity diagram Pengecekan data seperti pada gambar 3.16.
Gambar 3.16 Activity diagram Pengecekan Data
3.2.4
Analisis Sequence Diagram
Sequence Diagram adalah interaction diagram yang memperlihatkan event-event yang berurutan sepanjang berjalannya waktu (Nugroho, 2005:92). Cara membaca sequence diagram dimulai dari atas ke bawah. Masing-masing sequence diagram akan menggambarkan aliran-aliran pada suatu use case. Pada
http://digilib.mercubuana.ac.id/
25
sistem online reservasi tiket pesawat menggunakan QR Code ini terdapat tiga buah sequence diagram, antara lain: 3.2.4.1 Sequence Diagram Decode
Gambar 3.17 Sequence diagram decode
3.2.4.2 Sequence Diagram Encode
Gambar 3.18 Sequence diagram encode
http://digilib.mercubuana.ac.id/
26
3.2.4.3 Sequence Diagram Pengecekan Data
Gambar 3.19 Sequence diagram pengecekan data
3.2.5
Analisis Class Diagram
Class diagram adalah diagram yang digunakan untuk menampilkan beberapa kelas serta paket-paket yang ada dalam sistem perangkat lunak yang sedang dikembangkan. Class diagram memberikan gambaran / diagram statis tentang sistem perangkat lunak dan relasi-relasi yang ada di dalamnya (Nugroho, 2005:110). Dalam class diagram diperlihatkan hubungan antar kelas dan penjelasan mengenai tiap-tiap kelas. Class diagram dari sistem online reservasi tiket pesawat menggunakan QR Code seperti pada gambar 3.20.
http://digilib.mercubuana.ac.id/
27
Gambar 3.20 Class diagram Pengecekan Data
3.2.6
Rancangan Basis Data
Perancangan merupakan suatu hal yang sangat penting dalam pembuatan basis data. Permasalahan yang dihadapi pada waktu perancangan yaitu bagaimana basis data yang akan dibangun ini dapat memenuhi kebutuhan saat ini dan masa yang akan datang. Untuk itu diperlukan perancangan basis data baik secara fisik maupun secara konseptualnya. Perancangan konseptual akan menunjukkan entity dan relasinya berdasarkan proses yang diinginkan oleh organisasinya. Untuk menentukan entity dan relasinya perlu dilakukan analisis data tentang informasi yang ada dalam spesifikasi di masa yang akan datang. Perancangan data dilakukan untuk mendesain dan merencanakan data-data apa yang nantinya akan digunakan dan diolah dalam proses QR Code berserta tipe dan panjang dari masing-masing data tersebut.
http://digilib.mercubuana.ac.id/
28
3.2.6.1 Perancangan Data Input
Data input adalah data – data yang dimasukkan untuk kemudian diproses. Berikut adalah perancangan data input yang nantinya akan digunakan dalam aplikasi sistem pemesanan tiket pesawat. Tabel 3.7 Kamus Data Tabel Pengguna Nama Field Id_Pengguna*(PK) Kata_Sandi Nama_Pengguna Tanggal_Lahir Jenis_Kelamin Alamat Kota Kode_Pos Negara Kebangsaan Nomor_Identitas Nomor_Ponsel Tanggal_Daftar
Tipe Data NVarchar(50) Varchar(50) Varchar(100) Datetime Varchar(50) Varchar(50) Varchar(50) Varchar(15) Varchar(50) Varchar(50) Varchar(50) Varchar(50) Datetime
Deskripsi ID pengenal user Kata sandi user untuk login aplikasi Nama lengkap user Tanggal lahir user Jenis kelamin user Alamat lengkap tempat tinggal user Kota tempat tinggal user Kode pos tempat tinggal user Negara asal user Kebangsaan dari user Nomor Identitas KTP/SIM dari user Nomor ponsel dari user Tanggal daftar ke aplikasi
Tabel 3.8 Kamus Data Tabel Master Kota Nama Field Id_Kota*(PK) Nama_Kota Nama_Negara
Tipe Data Integer Varchar(50) Varchar(50)
Deskripsi ID Kota yang terdaftar Nama Kota yang terdaftar Nama Negara yang terdaftar
Tabel 3.9 Kamus Data Tabel Master Roles Nama Field Id_Roles*(PK) Nama_Roles Status_Aktif
Tipe Data Integer Varchar(50) Bit
Deskripsi ID Roles yang terdaftar Nama Roles yang terdaftar Status dari roles
Tabel 3.10 Kamus Data Tabel Master RolesUser Nama Field Tipe Data Id_RolesUser*(PK) Integer Id_Pengguna(FK) Varchar(50) Id_Roles(FK) Integer
Deskripsi ID Roles User yang terdaftar ID Pengguna yang terdaftar ID Roles yang terdaftar
http://digilib.mercubuana.ac.id/
29
3.2.6.2 Perancangan Data Proses
Data proses adalah data input yang masih menjalani pengolahan untuk memperoleh hasil yang diinginkan. Berikut adalah perancangan data proses yang nantinya akan digunakan dalam aplikasi sistem pemesanan tiket pesawat. Tabel 3.11 Kamus Data Tabel Pemesanan Tiket Nama Field ID_Pemesanan_Tiket*(PK) Kode_Pemesanan_Tiket(FK) Id_Pengguna (FK) Negara_Asal Kota_Asal Negara_Tujuan Kota_Tujuan Tanggal_Keberangkatan Jam_Keberangkatan QR_Code
Tipe Data Integer NVarchar(Max) Varchar(50) Varchar(50) Varchar(50) Varchar(50) Varchar(50) Datetime Varchar(50)
Deskripsi ID Tabel pemesanan tiket Kode dari pemesanan tiket Id pengguna Nama Negara keberangkatan Nama Kota keberangkatan Nama Negara tujuan Nama Kota tujuan Tanggal Keberangkatan Jam Keberangkatan Gambar QR Code Varbinary(Max) hasil encode
3.2.6.3 Perancangan Data Proses
Data output adalah data jadi yang telah selesai mengalami proses pengolahan. Berikut adalah perancangan data ouput yang dihasilkan dari aplikasi sistem pemesanan tiket pesawat. 4
Tabel 3.12 Perancangan Data Ouput Nama Data Kode_Pemesanan_Tiket Nama_Pengguna Negara_Asal Kota_Asal Negara_Tujuan Kota_Tujuan Tanggal_Keberangkatan Jam_Keberangkatan
Tipe Data NVarchar(Max) Varchar(50) Varchar(50) Varchar(50) Varchar(50) Varchar(50) Datetime Varchar(50)
Deskripsi Kode dari pemesanan tiket Nama pengguna Nama Negara keberangkatan Nama Kota keberangkatan Nama Negara tujuan Nama kota tujuan Tanggal keberangkatan Jam Keberangkatan
http://digilib.mercubuana.ac.id/
30
Tabel 3.11 Perancangan Data Ouput (lanjutan) Nama Data QR_Code
3.2.7
Tipe Data Varbinary
Gambar encode
Deskripsi QR Code
hasil
Rancangan Antar Muka
Dalam mendesain sebuah sistem, salah satu hal yang perlu diperhatikan adalah rancangan tersebut harus dapat memudahkan user dalam menggunakan sistem aplikasi yang dibuat. Sehingga perlu diperhatikan dalam mengatur letak tombol, kolom teks, menu ataupun komponen visual lain sehingga tidak membingungkan user dalam pemakaian aplikasi tersebut. Berikut adalah rancangan antarmuka dari aplikasi sistem pemesanan tiket pesawat.
3.2.7.1 Rancangan Form Input Pendaftaran User
Form input pendaftaran user adalah interface untuk input data detail user yang nantinya berguna sebagai akses login ke aplikasi dan melakukan pemesanan tiket. Tampilan dari form tersebut dapat dilihat pada gambar 3.21 dibawah ini.
http://digilib.mercubuana.ac.id/
31
Gambar 3.21 Tampilan interface input pendaftaran
Berikut ini adalah penjelasan dari isi dan control yang ada pada form input pendaftaran tersebut: a. Pada bagian User ID user harus memasukan alamat email yang valid dan pada Kata Sandi harus terdiri dari setidaknya satu angka dan satu huruf, minimal 8 karakter dan maksimal 16 karakter, yang nantinya akan digunakan untuk akses aplikasi dan mengirimkan data pemesanan tiket melalui email. b. Pada bagian Nama Lengkap, Tanggal Lahir dan Jenis Kelamin adalah field untuk data pribadi user. c. Pada bagian Alamat, Kota, Kode Pos, Negara, Kebangsaan dan Nomor ponsel adalah field untuk data tempat tinggal user dan nomor telepon yang bisa dihubungi.
http://digilib.mercubuana.ac.id/
32
d. Tombol save untuk mengakhiri proses pendaftaran user dan menyimpan ke database, sedangkan tombol cancel untuk membatalkan proses pendaftaran user.
3.2.7.2 Rancangan Form Input Pemesanan Tiket
Form input pemesanan tiket adalah interface untuk mengetik data detail pemesanan tiket. Tampilan dari form tersebut dapat dilihat pada gambar 3.22 dibawah ini.
Gambar 3.22 Tampilan interface input pemesanan tiket Berikut ini adalah penjelasan dari isi dan control yang ada pada form input pemesanan tiket tersebut: a. Pada bagian Negara Asal Keberangkatan dan Kota Keberangkatan adalah field yang dapat dipilih negara asal dan kota keberangkatan untuk rencana perjalanan. b. Pada bagian Negara Tujuan dan Kota Tujuan adalah field yang dapat dipilih untuk data negara dan kota tujuan perjalanan.
http://digilib.mercubuana.ac.id/
33
c. Pada bagian Tanggal Keberangkatan dan Jam Keberangkatan adalah field yang dapat dipilih untuk Tanggal dan Jam perjalanan. d. Tombol submit untuk mengakhiri proses pemesanan tiket, merubah kedalam bentuk QR Code, menyimpan ke database lalu di generate ke dalam dokumen XML dan mengirimkan data pemesanan tiket kepada user, sedangkan tombol cancel untuk membatalkan proses pemesanan tiket.
3.2.7.3 Rancangan Form Scan QR Code Tiket
Form Scan QR Code Tiket adalah interface untuk scan dan pengecekan data pemesanan tiket. Tampilan dari form tersebut dapat dilihat pada gambar 3.23 dibawah ini.
Gambar 3.23 Tampilan interface scan QR Code tiket
http://digilib.mercubuana.ac.id/
34
Berikut ini adalah penjelasan dari isi dan control yang ada pada form scan QR Code tiket tersebut: a. Pada bagian Image Scan Area adalah bagian kamera untuk menangkap gambar QR Code dan melakukan decode. b. Pada bagian output Kode Tiket adalah field untuk menampilkan kode tiket yang sudah dipesan oleh user. c. Pada bagian Status Validasi Pemesanan Tiket adalah field untuk menampilkan status validasi dan kecocokan data tiket dengan yang ada di server. d. Tombol Cek Status untuk melakukan proses validasi dan kecocokan data tiket dengan yang ada di server.
http://digilib.mercubuana.ac.id/