BAB II LANDASAN TEORI
2.1 Definisi dan Konsep 2 Dimensi
Barcode merupakan sebuah simbol penandaan objek yang terbuat dari pola batang-batang berwarna hitam dan putih. Seiring dengan perkembangan ilmu pengetahuan dan teknologi maka dilakukan teknik penandaan objek dunia nyata agar mudah dikenali dan semakin berkembang, berawal dari ditemukannya barcode linear, kemudian barcode 2D, hingga teknik penandaan menggunakan infra merah (IR) dan teknik penandaan menggunakan frekwensi radio (RFID). Namun diantara semua teknik penandaan yang ada saat ini, yang paling popular adalah teknik penandaan barcode, hal ini dikarenakan: 1. Barcode dapat dicetak di atas kertas atau media lainnya. 2. Printer untuk mencetak barcode dan scanner untuk pembaca barcode saat ini sudah banyak dan memiliki harga yang terjangkau. 3. Beberapa barcode telah menjadi standar dunia, sehingga dapat dibuat sistem yang bisa digunakan secara internasional.
Barcode saat ini masih populer dan banyak digunakan karena dari sisi kecepatan membaca, akurasi dan fungsionalitas yang dapat diandalkan juga banyak membantu dalam berbagai bidang. Seiring dengan adanya kebutuhan untuk menyimpan informasi dengan jenis karakter yang lebih banyak dan dapat dicetak dalam ukuran yang lebih kecil, maka dilakukan pengembangan barcode yang dapat memenuhi kebutuhan tersebut seperti dengan meningkatkan jumlah digit barcode.
1
http://www.mercubuana.ac.id
2
Namun hal tersebut menyebabkan permasalahan yaitu memperbesar area barcode, kompleksitas dalam proses membaca barcode dan meningkatkan biaya yang dikeluarkan untuk mencetak barcode. Untuk mengatasi permasalahan tersebut dilakukan pengembangan barcode lebih lanjut dan menghasilkan Kode 2 Dimensi (2D Code). Proses pengembangan Kode 2 Dimensi ini mulai dari tipe stacked barcode lalu berkembang menjadi matrix barcode. Berikut adalah beberapa contoh dari penggunaan barcode untuk memuat data yang lebih besar hingga ditemukan kode 2 dimensi.
Gambar 2.1 Barcode dengan beberapa susunan [Sumber: Denso Wave Incorporated, http://www.qrcode.com/en/aboutqr.html]
Gambar 2.2 Kode 2D dengan barcode batangan [Sumber: Denso Wave Incorporated, http://www.qrcode.com/en/aboutqr.html]
Gambar 2.3 Kode 2D (matrix code)
http://www.mercubuana.ac.id
[Sumber: Denso Wave Incorporated, http://www.qrcode.com/en/aboutqr.html]
http://www.mercubuana.ac.id
3
Kode 2 dimensi ini mengandung informasi dua arah vertical dan horizontal berbeda sekali dengan barcode (kode batang) yang hanya mengandung informasi pada satu arah saja yaitu horizontal, perbedaan inilah yang membuat kapasitas muatan data informasi pada kode 2 Dimensi menjadi lebih besar daripada barcode.
Gambar 2.4 Perbandingan Barcode dengan QR Code [Sumber: Denso Wave Incorporated, http://www.qrcode.com/en/aboutqr.html]
2.2
Jenis-Jenis Barcode 2D
Kebutuhan untuk menyimpan informasi yang lebih banyak ke dalam ruang yang lebih kecil telah membawa ke arah pengembangan, standarisasi dan penggunaan kepada pemakai barcode 2D. Barcode linear biasanya berlaku sebagai lisensi untuk menjadi petunjuk informasi penyimpanan data ke dalam database, barcode 2D bisa memenuhi fungsi yang sama dengan ruang yang lebih sedikit. Sebagai tambahan, barcode 2D juga dapat berfungsi sebagai database itu sendiri. Berikut data perbandingan dari setiap jenis Barcode 2D:
http://www.mercubuana.ac.id
4 Tabel 2.1 Perbandingan dari setiap jenis barcode dua dimensi [Sumber: Denso Wave Incorporated, http://www.qrcode.com/en/aboutqr.html]
QR Code
PDF417
Data Matrix
Maxi Code
DENSO (Japan)
Symbol Technologies (USA)
RVSI CiMatrix (USA)
UPS (USA)
Matrix
Stacked Bar Code
Matrix
Matrix
Numeric
7,089
2,710
3,116
138
Alpha numeric
4,296
1,850
2,355
93
Binary
2,953
1,018
1,556
Kanji
1,817
554
778
Keunggulan Utama
Kapasitas besar, ukuran cetak kecil, kecepatan Pembacaan
Kapasitas Besar
Ukuran cetak kecil
Standardisasi
AIM International JIS ISO
AIM International ISO
Pengemban g (Negara) Tipe
Kapasitas Data
Kecepatan Pembacaan
AIM AIM International International ISO ISO
Dari table tersebut dapat dilihat bahwa barcode 2D dengan tipe QR Code memiliki banyak kelebihan diantaranya adalah: a. Kapasitas penyimpanan data yang besar b. Ukuran cetak kecil c. Kecepatan yang tinggi saat pembacaan
http://www.mercubuana.ac.id
5 2.3 Quick Response Code (QR Code)
QR Code merupakan singkatan dari Quick Response Code. QR Code pertama kali dikembangkan di oleh Denso Wave, sebuah divisi Denso Corporation yang merupakan sebuah perusahaan Jepang dan dipublikasikan pada tahun 1994 dengan fungsionalitas utama yaitu dapat dengan mudah dibaca oleh pemindai QR yang sesuai dengan tujuannya adalah untuk menyampaikan informasi dengan cepat dan mendapatkan respons yang cepat pula. Saat ini terdapat beragam jenis barcode 2 dimensi yang digunakan di pasaran. Namun barcode 2 dimensi yang paling populer digunakan saat ini adalah QR Code dan Data Matrix. Quick Response (QR) Code merupakan barcode 2 dimensi yang paling populer digunakan di Jepang. Hal ini dikarenakan selain mampu melakukan encode angka dan huruf, QR Code juga mampu melakukan encode huruf Jepang menjadi barcode 2 dimensi. Sementara itu, Data Matrix populer digunakan di Amerika, baik QR Code dan Data Matrix telah distandarisasi oleh International Standard Organization (ISO).
2.3.1 Struktur Symbol QR Code
QR Code adalah sistem simbol dengan matriks, simbol ini terdiri dari beberapa array modul yang tersusun dalam bentuk persegi atau kotak, karakterkarakter yang dapat disimpan dan disandikan oleh QR Code ada beberapa macam, yaitu: a. Numeric (0-9), 3 karakter yang disandikan sepanjang 10 bit, secara teori jumlah maksimum yang dapat ditampung pada versi 40-L adalah sebanyak 7089 karakter. b. Alphanumeric (0-9, A-Z, %, $, *, +, /, -, :), 2 karakter dapat disandikan sepanjang 11 bit, secara teori data yang dapat ditampung pada versi 40-L bisa mencapai 4296 karakter. c. 8bit byte data, secara teori data yang ditampung pada versi 40L mencapai 2953 karakter
http://www.mercubuana.ac.id
6
d. KANJI, sebuah karakter KANJI (Karakter multi byte) dapat disandikan sepanjang 13 bit. Secara teori, jumlah maksimum yang dapat ditampung bisa mencapai 1817 karakter.
Salah satu keunggulan dari QR Code ini adalah memiliki error correction yang cukup tinggi, misalkan QR Code kotor ataupun cacat sebagian. Error correction sendiri terbagi dalam 4 tingkatan, yaitu: 1. Level L: Tingkat kerusakan yang dapat dipulihkan maksimal 7%. 2. Level M: Tingkat kerusakan yang dapat dipulihkan maksimal 15%. 3. Level Q: Tingkat kerusakan yang dapat dipulihkan maksimal 25%. 4. Level H: Tingkat kerusakan yang dapat dipulihkan maksimal 30%.
Gambar 2.5 Contoh QR Code yang kotor dan rusak [Sumber: Denso Wave Incorporated, http://www.qrcode.com/en/aboutqr.html]
Namun dalam penggunaan biasanya level Q dan level H banyak digunakan untuk lingkungan produksi karena memungkinkan simbol QR Code menjadi kotor, sedangkan Level L digunakan pada lingkungan yang bersih dengan kapasitas data yang besar. Tapi secara umum Level M yang paling banyak digunakan. Ukuran dari QR Code ini dapat ditentukan dari versi QR Code itu sendiri, versi QR Code sendiri dimulai dari versi 1 hingga versi 40 pada saat tulisan ini dibuat. Versi 1 memiliki matrix berukuran 21 x 21 module, setiap naik 1 versi maka akan bertambah 4 module, maka pada versi 40 akan memiliki 177 x 177 module. QR Code memiliki pola yang disebut dengan finder pattern (pola pencari) dan timing pattern (pola timing), finder pattern berfungsi untuk mendeteksi posisi dari QR Code pada aplikasi decoder untuk mempermudah dalam hal pembacaan posisi simbol, ukuran simbol dan kemiringan pembacaan, sedangkan untuk timing http://www.mercubuana.ac.id
7
pattern berfungsi untuk menentukan koordinat simbol pada aplikasi decoder seperti yang dijelaskan pada gambar berikut.
Gambar 2.6 Struktur dari QR Code [Sumber: ISO/IEC 18004, Information technology — Automatic identification and data capturetechniques — QR Code 2005 bar code symbology specification, 2006:8]
Pada versi 2 keatas terdapat penambahan dalam struktur QR Code yaitu alignment pattern yang befungsi untuk memperbaiki dana sebagai pengenal jika QR Code dilakukan scan dalam posisi yang miring. Pada versi 7 keatas terdapat penambahan version information yang berisi informasi dari QR Code itu sendiri.
2.3.1.1 Finder Patern
Ada tiga buah finder pattern (pola pencari) yang bentuknya identik satu sama lain dan ditempatkan pada tiga sudut dalam simbol QR Code itu sendiri yaitu diantaranya pada sudut kanan atas, sudut kiri atas dan sudut kiri bawah seperti yang ditunjukan pada gambar sebelumnya, setiap pola pencari dapat diartikan sebagai posisi penempatan dan pembacaan simbol QR Code yang http://www.mercubuana.ac.id
8
berbentuk segi empat yang berukuran 7 x 7 module berwarna gelap, 5 x 5 module berwana cerah dan 3 x 3 module berwarna gelap. Rasio dari lebar pola pencari ini adalah 1 : 1 : 3 : 1 : 1 : seperti yang dijelaskan pada gambar berikut:
Gambar 2.7 Struktur dari finder pattern atau pola pencari [Sumber: ISO/IEC 18004, Information technology — Automatic identification and data capturetechniques — QR Code 2005 bar code symbology specification, 2006:17]
Simbol dari pola pencari ini lebih baik digunakan dalam format data yang sudah di encode untuk menghindari adanya penggunaan bentuk yang sama di dalam simbol yang dapat mengakibatkan kacaunya pembacaan data karena salahnya pengartian posisi simbol itu sendiri.
2.3.1.2 Separator
http://www.mercubuana.ac.id
Separator adalah simbol dengan lebar 1 module yang digambarkan dengan module berwarna cerah yang dijadikan pemisah antara pola pencari dengan module lainnya yaitu informasi format dan informasi versi.
http://www.mercubuana.ac.id
9 2.3.1.3 Timing Pattern
Timing Pattern adalah simbol dengan lebar 1 module yang digambarkan dengan module berwarna gelap dan cerah secara bergantian, diawali dengan module gelap dan diakhiri dengan module berwarna gelap juga. Timing pattern ini berfungsi agar dapat diketahui kepadatan dan versi dari QR Code sehingga dapat ditentukan posisi QR Code dan koordinat dari module dapat diketahui. Horizontal timing pattern pada QR Code tercetak pada module keenam dari module teratas finder pattern dan berada pada sebelah luar separator sedangkan vertical timing patern tercetak pada module keenam dari module paling kiri dari finder patern dan berada pada sebelah luar separator. Setiap timing pattern menjadi penghubung dari setiap finder pattern seperti yang dapat dilihat pada gambar struktur QR Code.
2.3.1.4 Alignment Pattern
Alignment pattern hanya terdapat pada QR Code versi 2 keatas. Setiap alignment pattern berbentuk seperti finder pattern namun dengan ukuran yang berbeda yaitu 5 x 5 module berwarna gelap, 3 x 3 module berwarna cerah dan 1 buah module berwarna gelap, jumlah dan posisi dari penempatan alignment pattern tergantung dari versi QR Code itu sendiri, alignment pattern itu sendiri diletakan diantara data pada simbol QR Code.
2.3.1.5 Encoding Region
Encoding region atau areas encode adalah area dimana diletakannya data yang sudah di encode, error correction data, informasi format dan informasi versi dari QR Code itu sendiri.
http://www.mercubuana.ac.id
10 2.3.1.6 Quite Zone
Quiet zone adalah area dimana bisa diletakan tanda atau apapun dalamnya, quite zone sendiri memiliki 4 module disekeliling QR Code.
2.3.2 Encode dan Decode
Dalam transformasi ke dalam bentuk susunan simbol ini data akan melalui beberapa tahap dan tahap-tahap yang dilalui oleh setiap jenis data akan berbedabeda yang terbagi ke dalam mode-mode tertentu yang sesuai dengan tipe data, misalkan tipe data numerik yang akan diubah ke dalam bentuk simbol akan menggunakan mode numerik maka tahapan yang dilalui akan berbeda dengan data alphanumeric yang akan diubah dengan menggunakan mode alphanumeric. Dalam prakteknya proses perubahan data sendiri tidak harus selalu menggunakan satu macam mode saja karena jika dipaksakan menggunakan satu macam mode dalam data yang panjang dan memiliki tipe data yang berbeda maka data tidak dapat di encode dengan maksimal sehingga hasilnya akan membengkak dengan data yang besar. Sebagai contoh jika memasukan 3 karakter data numerik
―123‖ jika diubah dengan menggunakan mode numerik maka data dapat dipresentasikan dengan 10 bit saja, karena dalam mode numerik setiap 3 karakter akan dipresentasikan dengan panjang 10 bit, tapi jika dengan mode alpha numerik maka data tersebut sudah pasti lebih dari 11 bit karena dalam mode alpha numerik setiap 2 karakter akan dipresentasikan dengan panjang 11 bit. Namun bukan berarti data tidak dapat dikonversi dengan satu macam mode saja. Data tetap dapat bisa dikonversi dengan satu macam mode saja dan tetap bisa dikenali oleh mesin scan untuk QR Code.
http://www.mercubuana.ac.id
11 2.3.2.1 Proses Encode
Dalam membentuk sebuah QR Code data akan diproses kedalam beberapa langkah, langkah-langkah tersebut adalah: a. Analisis data Menganalisa data sehingga dapat diketahui jumlah dan tipe data yang akan di encode. b. Encoding data Merubah data kedalam kode yang sesuai dengan aturan dan susunan dari QR Code. c. Memasukan error correction code Jika fitur error correction code pada pembentukan QR Code diaktifkan maka data yang sudah diubah kedalam rangkaian kode tersebut akan diolah dengan menambahkan error correction code kedalamnya. d. Melengkapi struktur kode Bagian yang kosong dari data ataupun error correction code yang sudah menjadi rangkaian kode akan dilengkapi bitnya dengan memasukkan bit-bit data hingga lengkap menjadi satu blok penuh. e. Penempatan blok module dalam kotak matriks Memasukan blok-blok module yang sudah dihasilkan ke dalam kotak matrik bersama-sama dengan finder pattern (pola pencari), separator (pemisah), timing pattern dan jika diperlukan alignment pattern. f. Data Masking Memasukan data masking patterns kedalam area simbol QR Code dengan cara mengevaluasi hasil dari generate simbol yang sudah dilakukan sehingga dapat diputuskan untuk memakai pola seperti apa yang dapat menyeimbangkan antara warna gelap dan terang dalam simbol QR Code dan juga dapat meminimalisir kemiripan rangkaian kode data dengan pola standar QR Code dalam hal ini finder pattern, timing pattern, dll.
http://www.mercubuana.ac.id
12
g. Informasi format dan versi Memasukan informasi format dan informasi versi (hanya pada versi QR Code tertentu) kedalam simbol.
2.3.2.2 Proses Decode
Proses Decode atau mengembalikan data yang sudah diubah kedalam bentuk kode dan simbol QR Code adalah kebalikan dari proses encode itu sendiri. Proses tersebut yaitu: a. Menemukan dan mendapatkan simbol QR Code yang akan di decode. Mengenali warna module gelap dan terang sebagai array bit "0" dan "1",
dan
mengidentifikasikan
setiap
sisi
QR
Code
dengan
menggunakan fomat finder pattern sehingga dapat diketahui apakah simbol dalam kondisi berdiri tegak atau miring. b. Membaca informasi format. Memisahkan data masking dan melakukan pemeriksaan kesalahan kode dengan error correction format. c. Membaca informasi versi (jika ada), lalu menetapkan versi dari QR Code yang sedang diproses. d. Melepaskan data masking dengan menggunakan XOR pada setiap bagian dengan menggunakan referensi mask pattern yang didapat saat membaca informasi format dari QR Code. e. Membaca susunan simbol karakter yang sesuai dengan aturan mode QR Code lalu mengembalikan data yang sudah diubah ke dalam simbol menjadi susunan kode. f. Mendeteksi
apakah
terdapat
kerusakan
pada
data
dengan
menggunakan error correction sesuai dengan levelnya masing-masing dan perbaiki jika terdapat kesalahan. g. Pisahkan kode-kode tersebut kedalam setiap segment sesuai dengan indikator mode dan indikator hitungan karakter. h. Terakhir, ubah susunan kode dengan menggunakan mode yang sesuai dan tampilkan hasilnya.
http://www.mercubuana.ac.id
13
Gambar 2.8 Flow proses decoding [Sumber: ISO/IEC 18004, Information technology — Automatic identification and data capturetechniques — QR Code 2005 bar code symbology specification, 2006:62]
2.3 System Development Life Cycle (SDLC)
Menurut Kenneth E. Kendall dan Julie E. Kendall (2005:8) System Development life Cycle (selanjutnya disebut SDLC) adalah langkah pendekatan untuk analisa dan desain dari sistem yang dikembangkan melalui daur tertentu dari analisis dan aktifitas pengguna. The classic life cycle merupakan salah satu metode penerapan dari SDLC dan sering juga disebut ―waterfall model‖. Dengan menerapkan metode ini, diharapkan bisa mendapatkan pendekatan dan pengembangan perangkat lunak yang sistematis dan sekuensial. 14
http://www.mercubuana.ac.id
Gambar 2.9 Model SDLC [Sumber: Wikipedia, http://en.wikipedia.org/wiki/Systems_development_life-cycle]
Metode SDLC ini terdiri dari beberapa tahapan yaitu: a. Planning atau Perencanaan Untuk menghasilkan sebuah sistem dengan hasil berkualitas dan dapat mencapai semua tujuan dan kebutuhan maka harus dilakukan secara terencana. Biasanya setiap proyek pembuatan sebuah sistem dievaluasi dari 3 area kemungkinan yaitu: ekonomi, operasional dan teknik. Selanjutnya ketiga area tersebut dijadikan landasan untuk membuat proyek sesuai tidak keluar jalur dan untuk mengevaluasi proses dari pembuatan sistem. b. Analisa dan merumuskan kebutuhan Tujuan dari analisa ini adalah agar dapat merumuskan masalah dan kebutuhan sehingga dapat tercapai sebuah solusi sistem yang dapat menangani masalah tersebut. Pada tahapan ini biasanya sistem akan dipecah menjadi beberapa bagian dan beberapa diagram untuk menganalisasi situasi.
http://www.mercubuana.ac.id
15
c. Perancangan Pada tahapan perancangan ini semua hasil analisa baik fungsi dan setiap langkah operasi akan dijabarkan secara detail meliputi layout, peraturan, diagram proses dan dokumentasi lainnya. d. Coding atau Pembuatan Semua hasil perancangan baik berupa module dan perancangan kode lainnya diselesaikan pada tahapan ini. e. Testing atau Percobaan Ini adalah tahap dimana sistem yang sudah selesai dicoba. Setiap baris-baris perintah dalam sistem dicoba apakah masih memiliki kesalahan dalam pemrograman atau kesalahan dalam prosedur lainnya. f. Operasi dan Maintenance Tahapan akhir yaitu pengoperasian dan maintenance. Pada tahapan ini sistem yang sudah disebarkan dan digunakan harus tetap dikontrol karena masih ada kemungkinan kesalahan pada sistem yang tidak ditemukan pada tahap percobaan. Apabila ditemukan kesalahan dan diperlukan perbaikan untuk sistem maka harus melalui setiap tahapan lagi dari awal untuk memecahkan masalah yang muncul tersebut.
2.4 Metode Pengembangan Sistem
Perangkat lunak mempunyai tahapan-tahapan mulai dari perangkat lunak tersebut
dianalisa
sampai
dapat
dioperasikan.
Tahapan-tahapan
tersebut
digambarkan dengan model-model proses pengembangan perangkat lunak, salah satu pendekatan pembangunan perangkat lunak yang akan digunakan dalam pembahasan perangkat lunak adalah menggunakan model Waterfall. Metode pengembangan perangkat lunak dengan model Waterfall disebut juga classic life cycle atau model linear sequential merupakan metode pengembangan perangkat lunak yang sistematis. Model ini adalah model yang muncul pertama kali yaitu
http://www.mercubuana.ac.id
sekitar tahun 1970 yang dikenalkan oleh Winston W. Royce, model ini sering dianggap kuno, tetapi merupakan model yang paling banyak dipakai didalam
http://www.mercubuana.ac.id
16
Software Engineering (SE). Dalam model waterfall, desain sistem dipecahkan dalam sejumlah langkah linier dan sequential di mana evolusi sistem dilihat bagaikan air yang mengalir semakin turun melalui fase-fase tertentu. Model ini melakukan pendekatan secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap analisis, desain, coding, testing / verification, dan maintenance Metoda pengembangan ini tidaklah membolehkan fase tertentu langsung menggantikan fase berikutnya sampai operasi fase yang terdahulu telah terpenuhi. Keluaran (output) dari fase masing-masing membentuk masukan (input) pada fase berikutnya. Oleh karena itu, masing-masing fase harus terpenuhi dahulu pada gilirannya untuk memelihara pertaliannya antara masukan dan keluaran. Berikut ini adalah tahap-tahap yang harus dilakukan dalam pendekatan dengan menggunakan model Waterfall:
Gambar 2.10 [Sumber: Wikipedia, http://en.wikipedia.org/wiki/Waterfall_model]
http://www.mercubuana.ac.id
Iterasi pada
model Waterfall
http://www.mercubuana.ac.id
17
Gambar di atas adalah tahapan umum dari model proses waterfall. Akan tetapi Roger S. Pressman memecah model ini menjadi 6 tahapan meskipun secara garis besar sama dengan tahapan-tahapan model waterfall pada umumnya. Berikut adalah penjelasan dari tahap-tahap yang dilakukan di dalam model ini menurut Pressman (Pressman, 2005) :
a.
System / Information Engineering and Modeling: Permodelan ini diawali dengan mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam bentuk software. Hal ini sangat penting, mengingat software harus dapat berinteraksi dengan elemen-elemen yang lain seperti hardware, database, dsb. Tahap ini sering disebut dengan Project Definition.
b.
Software Requirements Analysis: Proses pencarian kebutuhan diintensifkan dan difokuskan pada software. Untuk mengetahui sifat dari program yang akan dibuat, maka para software engineer harus mengerti tentang domain informasi dari software, misalnya fungsi yang dibutuhkan, user interface, dsb. Dari 2 aktivitas tersebut (pencarian kebutuhan sistem dan software) harus didokumentasikan dan ditunjukkan kepada pelanggan.
c.
Design: Proses ini digunakan untuk mengubah kebutuhan-kebutuhan diatas menjadi representasi ke dalam bentuk ―blueprint‖ software sebelum coding dimulai. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya. Seperti 2 aktivitas sebelumnya, maka proses ini juga harus didokumentasikan sebagai konfigurasi dari software.
http://www.mercubuana.ac.id
d.
Implementation: Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka desain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh mesin, yaitu ke dalam bahasa pemrograman melalui
http://www.mercubuana.ac.id
18
proses coding. Tahap ini merupakan implementasi dari tahap design yang secara teknis nantinya dikerjakan oleh programmer. e.
Testing / Verification: Sesuatu yang dibuat haruslah diujicobakan. Demikian juga dengan software. Semua fungsi-fungsi software harus diujicobakan, agar software bebas dari error, dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya.
f.
Maintenance: Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Ketika dijalankan mungkin saja masih ada error kecil yang tidak ditemukan sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada software tersebut. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya.
2.5 UML
UML (Unified Modeling Language) adalah sebuah bahasa yang berdasarkan
grafik/gambar
untuk
memvisualisasi,
menspesifikasikan,
membangun, dan pendokumentasian dari sebuah sistem pengembangan perangkat lunak berbasis OO (Object-Oriented). UML sendiri juga memberikan standar penulisan sebuah sistem blue print, yang meliputi konsep bisnis proses, penulisan kelas-kelas dalam bahasa program yang spesifik, skema database, dan komponenkomponen yang diperlukan dalam sistem perangkat lunak. UML adalah standar dunia yang dibuat oleh Object Management Group (OMG), sebuah badan yang bertugas mengeluarkan standar-standar teknologi object-oriented dan software component. Hingga saat ini sejak Juni 1998 UML versi 1.3 telah diperkaya dan direspons oleh OMG (Object Management Group),
http://www.mercubuana.ac.id
19
Anderson Consulting, Ericsson, Platinum Technology, ObjectTime Limited serta di pelihara oleh OMG yang dipimpin oleh Cris Kobryn. UML mendeskripsikan Object Oriented Programming dengan beberapa diagram, diantaranya adalah:
2.3.5.1 Use Case Diagram
Use Case Diagram adalah pemodelan yang menunjukkan hubunganhubungan yang terjadi antar aktor-aktor dengan use case-use case di dalam sebuah sistem (Nugroho, 2005). Aktor merepresentasikan orang yang akan mengoperasikan atau orang yang berinteraksi dengan sistem aplikasi. Use Case merepresentasikan operasi-operasi yang dilakukan oleh actor (Azis, 2005). Salah satu manfaat yang didapat dari Use Case Diagram ini adalah calon pengguna sistem dapat memperoleh pemahaman yang menyeluruh tentang sistem yang akan dikembangkan. Penggambaran Use Case Diagram dapat dilihat pada Gambar 2.11.
Gambar 2.11 Contoh Use Case Diagram
http://www.mercubuana.ac.id
20
2.3.5.2 Activity Diagram
Activity Diagram adalah pemodelan yang memperlihatkan event-event yang terjadi di dalam sebuah use case. Activity Diagram digunakan untuk memodelkan aspek dinamis dari sistem. Secara esensial, Activity Diagram mirip dengan diagram alir (flowchart), yang memperlihatkan aliran kendali dari suatu aktifitas ke aktifitas lainnya. Penggambaran Activity Diagram dapat dilihat pada Gambar 2.12.
Gambar 2.12 Contoh Activity Diagram
2.3.5.3 Class Diagram
Class Diagram adalah diagram yang digunakan untuk menampilkan seluruh kelas serta paket-paket yang terdapat di dalam sistem yang sedang dikembangkan (Nugroho, 2005). Class Diagram memberikan gambaran tentang sistem yang akan dibangun dan relasi-relasi yang terjadi di dalamnya. Class Diagram juga akan membantu para pengembang untuk melihat dan merencanakan struktur dari sistem yang akan dibuat sebelum kode-kode program diketikkan. Penggambaran Class Diagram dapat dilihat pada Gambar 2.13.
http://www.mercubuana.ac.id
21
Gambar 2.13 Contoh Class Diagram
2.3.5.4 Sequence Diagram
Sequence
Diagram
adalah
sebuah
interaction
diagram
yang
memperlihatkan event-event yang berurutan sepanjang jalannya waktu. Sequence Diagram akan menggambarkan aliran-aliran alternatif pada suatu use case yang terjadi dalam waktu yang berurutan. Penggambaran Sequence Diagram dapat dilihat pada Gambar 2.14.
http://www.mercubuana.ac.id
22
Gambar 2.14 Contoh Sequence Diagram
2.3.5.5 Statechart Diagram
Statechart Diagram menunjukkan siklus hidup sebuah obyek tunggal, dari saat dibuat sampai obyek tersebut dihapus. Diagram ini adalah cara tepat untuk memodelkan perilaku dinamis sebuah kelas. Diagram statechart tidak dibuat untuk setiap kelas, bahkan kadang-kadang untuk suatu proyek sistem informasi tidak menggunakannya sama sekali (Sholiq, 2006:150). Penggambaran Statechart Diagram dapat dilihat pada Gambar 2.15.
http://www.mercubuana.ac.id
23
Gambar 2.15 Contoh Statechart Diagram
2.6 C# (C Sharp)
C# sering dianggap sebagai bahasa penerus C++ atau versi canggih, karena ada anggapan bahwa tanda # adalah perpaduan 4 tanda tambah yang disusun sedemikian rupa sehingga membentuk tanda pagar. Akan tetapi, terlepas dari benar tidaknya anggapan tersebut, C# adalah sebuah bahasa pemrograman yang berorientasi pada objek yang dikembangkan oleh Microsoft dan menjadi salah satu bahasa pemrograman yang mendukung .NET programming melalui Visual Studio. C# didasarkan pada bahasa pemrograman C++. C# juga memiliki kemiripan dengan beberapa bahasa pemrograman seperti Visual Basic, Java, Delphi dan tentu saja C++. C# memiliki kemudahan syntax seperti Visual Basic dan tentu saja ketangguhan seperti Java dan C++. Kemiripan-kemiripan ini tentunya memudahkan programmer dari berbagai latar belakang bahasa pemrograman tidak perlu waktu yang lama untuk menguasainya, karena
http://www.mercubuana.ac.id
24
bagaimanapun juga C# lebih sederhana dibandingkan bahasa-bahasa pemrograman seperti C++ dan Java. C# didesain oleh program designer dari Microsoft, Anders Hajlsberg. Sebelum bekerja pada Mircrosoft, Anders bekerja di Borland, tempat dia menulis Pascal compiler. Sebelum mengembangkan C#, Anders mengetahui berbagai macam kekurangan pada bahasa C++, Delphi, Java dan Smaltalk, karena itu Anders menciptakan bahasa C# yang lebih tangguh. Hal ini juga menjelaskan mengapa C# memiliki kemiripan dengan bahasa tersebut.
2.7
Zxing (“Zebra Crossing”)
Zxing (―Zebra Crossing‖) adalah sebuah library image processing dalam bahasa pemrograman Java untuk barcode multi-format 1D/2D yang sifatnya open source. Fokus dalam menggunakan built-in kamera pada ponsel untuk barcode foto dan membaca sandi pada perangkat tanpa berkomunikasi dengan server. Selain itu juga dapat digunakan untuk melakukan encode dan decode barcode pada aplikasi berbasis desktop dan web dengan sangat baik. Saat ini Zxing memiliki dukungan format untuk: a. UPC-A dan UPC-E b. EAN-8 dan EAN-13 c. Kode 39 d. Kode 93 e. Kode 128 f. QR Code g. ITF h. Codabar i. RSS-14 (semua varian) j. Data Matrix k. PDF 417 l. Aztec
http://www.mercubuana.ac.id
25
Library ini dibagi menjadi beberapa komponen, secara aktif didukung oleh: a. Core: inti library dari image decoding dan kode uji. b. Javase: khusus kode klien J2SE. d. Android: klien dari Android, yang disebut barcode scanner. e. Androidtest: aplikasi uji android. f. Android-integration: mendukung integrasi dengan aplikasi barcode scanner melalui internet. g. Zxingorg: sumber dibalik zxing.org/w. Beberapa modul untuk beberapa bahasa pemrograman yang disediakan antara lain: a. Csharp: Partial port C#. b. Cpp: Partial port C++. c. Iphone: iPhone client + port untuk objective C/C++ (hanya kode QR). d. Jruby: Ruby wrapper. e. Actionscript: partial port untuk Actionscript. f. Zxing.appspot.com: Sumber barcode generator berbasis web.
2.8 XML
XML (Extensible Markup Language) adalah bahasa markup untuk keperluan umum yang disarankan oleh W3C untuk membuat dokumen markup keperluan pertukaran data antar sistem yang beraneka ragam. XML merupakan kelanjutan dari HTML (HyperText Markup Language) yang merupakan bahasa standar internet. XML (Extensible Markup Languange) adalah sebuah meta-bahasa, yaitu adalah bahasa yang diciptakan bahasa lain. Dalam XML, data "markup" dengan tag, mirip dengan tag html. Bahkan, versi terbaru dari HTML yang disebut XHTML mengikuti aturan sintaks XML. XML didesain untuk mempu menyimpan data secara ringkas dan mudah diatur. Kata kunci utama XML adalah data yang jika diolah bisa memberikan informasi. XML digunakan untuk menyimpan data atau informasi. Data ini http://www.mercubuana.ac.id
26
mungkin dimaksudkan untuk dapat dibaca oleh orang atau mesin. XML menyediakan suatu cara terstandarisasi namun bisa dimodifikasi untuk menggambarkan isi dari dokumen. XML adalah berbasis text, sehingga dapat dengan mudah dipindahkan dari satu sistem komputer ke sistem yang lain. Dengan XML, data direpresentasikan dalam sebuah dokumen yang terstruktur dan juga telah menjadi sebuah standard industri. Keunggulan dari XML adalah sebagai berikut: a.
Pintar (Intelligence). XML dapat menangani berbagai tingkat (level) kompleksitas.
b.
Dapat beradaptasi. Dapat mengadaptasi untuk membuat bahasa sendiri.
Seperti
Microsoft
membuat
bahasa
MSXML
atau
Macromedia mengembangkan MXML. c.
Mudah pemeliharaannya.
d.
Sederhana, XML lebih sederhana sehingga mudah dipindahpindahkan (Portability). XML mempunyai kemudahan perpindahan (portabilitas) yang lebih bagus.
2.9 Java APIs bagi XML
JAXP atau Java API for XML Processing (JAXP) dirancang untuk membantu aplikasi dalam penguraian dan transformasi dokumen XML. JAXP juga telah mendukung namespaces, sehingga akan mendukung untuk bekerja dengan schema XML dalam mengatasi permasalahan penamaan. DOM API, Document Object Model (DOM) adalah sebuah struktur tree, dimana tiap node akan terdiri dari sebuah komponen dari struktur XML. DOM API mendukung untuk membuat atau menghilangkan sebuah node didalam tree. Dapat digunakan juga untuk mengganti content dari node dan mengubah hierarki node. Oleh karena itu DOM API membutuhkan banyak memori didalam runtimenya jika sebuah tree me-representasikan keseluruhan XML data. SAX API, Simple API for XML (SAX) adalah sebuah event-based XML parser API. Ia akan membaca XML dokumen dari awal hingga akhir. Setiap saat
http://www.mercubuana.ac.id
27
bertemu dengan sebuah construction syntax, ia akan memberikan tanda (notify) untuk menjalankan program tersebut. Sebuah SAX parser akan memberikan tanda kepada aplikasi dengan jalan memanggil method dari interface ContentHandler. Sebagai contoh, pada saat parser mencapai simbol kurang dari (<), ia akan memanggil method startElement. Pada saat bertemu dengan tag terakhir (sebuah slash yang diikuti dengan tanda lebih besar dari), hal ini disebut method endElement. SAX sangatlah cepat dan efisien, membutuhkan memori yang lebih sedikit daripada DOM, karena tidak mengharuskan untuk membuat sebuah struktur tree internal dari data-data XML. SAX hanya akan mengirimkan data setiap kali aplikasi ingin membaca data tersebut.
2.10 Android
Android adalah sistem operasi untuk telepon seluler yang berbasis Kernel Linux. Android menyediakan platform terbuka bagi para pengembang buat menciptakan aplikasi mereka sendiri untuk digunakan oleh bermacam peranti bergerak. Awalnya, Google Inc. membeli Android Inc., pendatang baru yang membuat peranti lunak untuk ponsel. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia. Pada saat perilisan perdana Android, 5 November 2007, Android bersama Open Handset Alliance menyatakan mendukung pengembangan standar terbuka pada perangkat seluler. Di lain pihak, Google merilis kode–kode Android di bawah lisensi Apache, sebuah lisensi perangkat lunak dan standar terbuka perangkat seluler. Di dunia ini terdapat dua jenis distributor sistem operasi Android. Pertama yang mendapat dukungan penuh dari Google atau Google Mail Services (GMS) dan kedua adalah yang benar-benar bebas distribusinya tanpa dukungan langsung Google atau dikenal sebagai Open Handset Distribution (OHD). Pada Juli 2000, Google bekerjasama dengan Android Inc., perusahaan yang berada di Palo Alto, California Amerika Serikat. Para pendiri Android Inc.
http://www.mercubuana.ac.id
28
bekerja pada Google, di antaranya Andy Rubin, Rich Miner, Nick Sears, dan Chris White. Saat itu banyak yang menganggap fungsi Android Inc. hanyalah sebagai perangkat lunak pada telepon seluler. Sejak saat itu muncul rumor bahwa Google hendak memasuki pasar telepon seluler. Di perusahaan Google, tim yang dipimpin Rubin bertugas mengembangkan program perangkat seluler yang didukung oleh kernel Linux. Hal ini menunjukkan indikasi bahwa Google sedang bersiap menghadapi persaingan dalam pasar telepon seluler. versi android terbaru yaitu versi 3.0. Pada tahun 2005 Google mengakusisi Android Inc yang pada saat itu dimotori oleh Andy Rubin, Rich Miner, Nick Sears dan Crish White. Yang kemudian pada tahun itu juga memulai membangun platform Android secara lebih intensif. Kemudian pada tanggal 12 November 2007 Google bersama Open Handset Aliance (OHA) yaitu konsorium perangkat lunak mobile terbuka, merilis Google Android SDK, setelah mengumumkannya seminggu sebelumnya. Dan sambutannya sangat luar biasa, hampir semua media berita tentang IT dan Programming
memberitakan
tentang
dirilisnya
Android
SDK
(Software
Developtment Kit). Ini dikarenakan ide dari flatform Android sangat menarik untuk developer dan programmer di seluruh penjuru dunia. Di sisi lain, produsen pembuat handset ponsel juga segera berlomba-lomba membuat handset dengan platform Android ini. Google bersama dengan OHA merilis paket software SDK yang lengkap untuk mengembangkan aplikasi pada perangkat mobile, yaitu: Sistem Operasi, Middleware dan aplikasi utama untuk perangkat mobile. Sebagai Programmer atau Developer kita bisa melakukan segalanya, mulai dari membuat aplikasi pengiriman SMS hanya dengan dua baris kode, hingga mengganti even pada Home Screen perangkat Android. Selain itu, bahkan dengan mudah kita bisa membuat dan mengkostumisasi Sistem Operasinya, atau mengganti semua aplikasi default dari google. Semua aplikasi yang dibuat untuk android akan memiliki akses setara dalam mengakses seluruh kemampuan handset, tanpa membedakan apakah itu merupakan aplikasi inti atau aplikasi pihak ketiga. Dalam kata lain dengan platform android ini, Programmer atau Developer secara penuh akan bisa
http://www.mercubuana.ac.id
mengkustomisasi perangkat androidnya. Android built in pada Linux kernel (Open Linux Kernel), dengan sebuah mesin virtual yang telah didesain dan untuk
http://www.mercubuana.ac.id
29
mengoptimalkan
penggunaan
sumberdaya
memori
dan
handware
pada
lingkungan perangkat mobile (Mobile Environment). Dalvik adalah nama dari Android Virtual Mesin, yang merupak interpreter virtual mesin yang akan mengeksekusi file kedalam format Dalvik Executable (*.dex). Sebuah format yang dirancang untuk ruang penyimpanan yang efisien dan eksekusi memori yang terpetakan (memory-mappable execution). Dlavik Virtual Mesun (Dalvik VM) berbasis register dan dapat mengeksekusi kelas (class) yang telah terkompilasi pada compier bahasa java, kemudian di transformasikan kedalam native format dengan menggunakan Tool ―dx‖ yang telah terintegrasi. Kita mungkin telah mengenal JavaVM (Java Virtual Mesin), yang saat ini bisa kita temukan pada setiap komputer desktop. Berbeda denga DalvikVM, JavaVM berbasis stack (Stack-based Virtual Machine), DalvikVM memiliki keunggulan dengan menggunakan Registred Based, ini karena pada prosesor perangkat genggam telah dioptimasi untuk eksekusi berbasis register. Android saaat ini tidak hanya berjalan pada mobile phone, beberapa vendor menanamkan Android pada tablet, Internet Tablet, E-Book Reader, Laptop, dan gadget lainnya. Pada 9 Desember 2008, diumumkan anggota baru yang bergabung dalam program kerja Android ARM Holdings, Atheros Communications, diproduksi oleh Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, dan Vodafone Group Plc. Seiring pembentukan Open Handset Alliance, OHA mengumumkan produk perdana mereka, Android, perangkat mobile yang merupakan modifikasi kernel Linux 2.6. Sejak Android dirilis telah dilakukan berbagai pembaruan berupa perbaikan bug dan penambahan fitur baru. Telepon pertama yang memakai sistem operasi Android adalah HTC Dream, yang dirilis pada 22 Oktober 2008. Beberapa versi dari android yang sudah diluncurkan diantaranya: 1.
Andorid versi 1.1 Pada 9 Maret 2009, Google merilis Android versi 1.1. Android versi ini dilengkapi dengan pembaruan estetis pada aplikasi, jam alarm, voice
http://www.mercubuana.ac.id
search (pencarian suara), pengiriman pesan dengan Gmail, dan pemberitahuan email.
http://www.mercubuana.ac.id
30
2.
Android versi 1.5 (Cupcake) Pada pertengahan Mei 2009, Google kembali merilis telepon seluler dengan menggunakan Android dan SDK (Software Development Kit) dengan versi 1.5 (Cupcake). Terdapat beberapa pembaruan termasuk juga penambahan beberapa fitur dalam seluler versi ini yakni kemampuan merekam dan menonton video dengan modus kamera, mengunggah video ke Youtube dan gambar ke Picasa langsung dari telepon, dukungan Bluetooth A2DP, kemampuan terhubung secara otomatis ke headset Bluetooth, animasi layar, dan keyboard pada layar yang dapat disesuaikan dengan sistem.
3.
Android versi 1.6 (Donut) Donut (versi 1.6) dirilis pada September dengan menampilkan proses pencarian yang lebih baik dibanding sebelumnya, penggunaan baterai indikator dan kontrol applet VPN. Fitur lainnya adalah galeri yang memungkinkan pengguna untuk memilih foto yang akan dihapus; kamera, camcorder dan galeri yang dintegrasikan; CDMA / EVDO, 802.1x, VPN, Gestures, dan Text-to-speech engine; kemampuan dial kontak; teknologi text to change speech (tidak tersedia pada semua ponsel; pengadaan resolusi VWGA.
4.
Android versi 2.0/2,1 (Eclair) Pada 3 Desember 2009 kembali diluncurkan ponsel Android dengan versi 2.0/2.1 (Eclair), perubahan yang dilakukan adalah pengoptimalan hardware, peningkatan Google Maps 3.1.2, perubahan UI dengan browser baru dan dukungan HTML5, daftar kontak yang baru, dukungan flash untuk kamera 3,2 MP, digital Zoom, dan Bluetooth 2.1. Untuk bergerak cepat dalam persaingan perangkat generasi berikut, Google melakukan investasi dengan mengadakan kompetisi aplikasi mobile terbaik (killer apps - aplikasi unggulan). Kompetisi ini berhadiah $25,000 bagi setiap pengembang aplikasi terpilih. Kompetisi diadakan selama dua tahap yang
http://www.mercubuana.ac.id
31
tiap tahapnya dipilih 50 aplikasi terbaik. Dengan semakin berkembangnya dan semakin bertambahnya jumlah handset Android, semakin banyak pihak ketiga yang berminat untuk menyalurkan aplikasi mereka kepada sistem operasi Android. Aplikasi terkenal yang diubah ke dalam sistem operasi Android adalah Shazam, Backgrounds, dan WeatherBug. Sistem operasi Android dalam situs Internet juga dianggap penting untuk menciptakan aplikasi Android asli, contohnya oleh MySpace dan Facebook.
5.
Android versi 2.2 (Froyo: Frozen Youghurt) Pada 20 Mei 2010, Android versi 2.2 (Froyo) diluncurkan. Perubahanperubahan umumnya terhadap versi-versi sebelumnya antara lain dukungan Adobe Flash 10.1, kecepatan kinerja dan aplikasi 2 sampai 5 kali lebih cepat, intergrasi V8 JavaScript engine yang dipakai Google Chrome yang mempercepat kemampuan rendering pada browser, pemasangan aplikasi dalam SD Card, kemampuan WiFi Hotspot portabel, dan kemampuan auto update dalam aplikasi Android Market.
6.
Android versi 2.3 (Gingerbread) Pada 6 Desember 2010, Android versi 2.3 (Gingerbread) diluncurkan. Perubahan-perubahan umum yang didapat dari Android versi ini antara lain peningkatan kemampuan permainan (gaming), peningkatan fungsi copy paste, layar antar muka (User Interface) didesain ulang, dukungan format video VP8 dan WebM, efek audio baru (reverb, equalization, headphone virtualization, dan bass boost), dukungan kemampuan Near
http://www.mercubuana.ac.id
Field Communication (NFC), dan dukungan jumlah kamera yang lebih dari satu.
http://www.mercubuana.ac.id
32 Fitur yang tersedia pada platform Android saat ini antara lain: 1. Framework Aplikasi yang mendukung penggantian komponen dan reusable. 2. Mesin Virtual Dalvik berjalan diatas Linux kernel dan dioptimalkan untuk perangkat mobile.Integrated browser berdasarkan open source engine WebKit D. Grafis yang dioptimalkan dan didukung oleh library grafis 2D yang terkostumisasi, grafis 3D berdasarkan spesifikasi openGL ES 1,0 (Opsional akselarasi hardware). 3. SQLite untuk penyimpanan data. 4. Media support yang mendukung audio, video, dan gambar (MPGE, H.264, MP3, AAC, AMR, JPG, PNG, GIF). 5. GSM Telephony (tergantung hardware). 6. Bluetooth, EDGE, 3G, dan WIFI (tergantung hardware). 7. Multi-touch: kemampuan layaknya handset modern yang dapat menggunakan dua jari atau lebih untuk berinteraksi dengan perangkat. 8. Lingkungan development yang lengkap dan kaya termasuk perangkat emulator, tools untuk debugging, profil, dan kinerja memori, dan plugin untuk Eclips IDE. 9. Market: Seperti kebanyakan handphone yang memiliki tempat penjualan aplikasi, market pada android merupakan katalog aplikasi yang dapat di download dan di install pada handphone melalui internet.
http://www.mercubuana.ac.id