APLIKASI PRESENSI KARYAWAN MENGGUNAKAN QRCODE DAN JAVA RMI Skripsi
APLIKASI PRESENSI KARYAWAN MENGGUNAKAN QRCODE DAN JAVA RMI Skripsi
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
Oleh: Agus Triyono 085314073 PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA
USING QRCODE AND JAVA RMI AS EMPLOYERS ATTENDANCE APPLICATION A Thesis
Presented as Partial Fullfillment of the Requirements To Obtain the Sarjana Komputer Degree In Study Program of Informatics Engineering
By : Agus Triyono 085314073 DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY
HALAMAN PENGESAHAN
Berdoalah dan Berusahalah, Maka TUHAN Akan Berkehendak...
SSS
- - Khalifah ‘Umar -
Tuhan Yesus dan Bunda Maria atas Kasih dan Karunian-Nya Keluarga, Guru dan Dosen Teman – teman TI Angkatan 2008
Teman- teman UKM Sepak Bola
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis ini tidak memuat karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, 25 Juli 2012 Penulis,
Agus Triyono
ABSTRAK APLIKASI PRESENSI KARYAWAN MENGGUNAKAN QRCODE DAN JAVA RMI
Presensi karyawan merupakan indikator apakah seorang karyawan menjalankan kewajibannya sebagai karyawan sesuai dengan jam kerjanya. Presensi yang ada saat ini masih menggunakan sistem presensi manual. Namun, dengan adanya presensi secara manual tersebut menimbulkan kecurangan. Seorang karyawan dapat melakukan kecurangan dengan memalsukan tanda tangan karyawan lain yang tidak hadir. Teknologi presensi lain yaitu menggunakan sidik jari. Akan tetapi masih memiliki kelemahan, yaitu ketika jumlah alat terbatas maka akan menimbulkan antrian pada saat presensi. Oleh karena itu, sistem yang akan dibangun berbasis qrcode menggunakan device webcam sebagai alat bantunya. Selain itu sistem ini sudah terkomputerisasi dengan database sehingga laporan presensi dapat diperoleh dengan cepat. Sehingga dengan sistem ini dapat mengatasi masalah antrian dan kecurangan yang dilakukan oleh karyawan.
Penelitian ini bertujuan untuk menguji unjuk kerja aplikasi pengambilan gambar pada system presensi berbasis qrcode. Setiap karyawan yang melakukan presensi akan menunjukan kartu identitas berbasis qrcode pada kamera di komputer karyawan. Selesai presensi, foto karyawan diambil secara periodik dan disimpan di folder yang sudah ditentukan. Secara rutin, server akan mengambil foto tersebut dari komputer karyawan. Metode pengambilan yang digunakan menggunakan cara kerja remote method invocation (RMI).
Pengujian aplikasi ini diterapkan pada topologi client dan server dalam 1 router dan diantara 2 router. Berdasarkan pengujian yang telah dilakukan, waktu
ABSTRACT
Using QRcode and JavaRMI as employers attendance
application
Employers attendance becomes an indicator whether the employers do their job according to the determined working hour. Nowadays, the system of employers attendance still uses manual one. However, this system may trigger fraud. An employer can falsify the absence employers‟ signature. The other system of attendance is using finger print. This system still also has weakness, which is not efficient to be used only with limited device. Therefore, one of the ways out is to use qrcode-based attendance system with webcam device as the helper tool. This system has been computerized with the database so that the attendance report can be gathered quickly. qrcode-based attendance system with webcam device as the helper tool is best used to overcome queueing and fraud problems done by the employers.
This study aims to test picture shot application on qrcode employees attendance system. Every employer who will check the attendance should show the Qrcode- base identity card to the camera in the employer‟s computer. After that, employer‟s picture will be taken periodically and be saved in a specific folder. Then the server will take the pictures. The method which is used is by using Remote Method Invocation (RMI) system
This application enables picture shot to be done whenever it is needed and the range of client taken could also be set. Based on the test done, the ideal time of clients on one router topology for picture shot is 0.1 second. Also for 2 routers topology, the ideal time of clients is 1 seconds to take the picture
HALAMAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata
Dharma: Nama : Agus Triyono Nomor Mahasiswa : 085314073
Demi pengembangan ilmu pengetahuan, saya memberikan kepada perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul:
APLIKASI PRESENSI KARYAWAN MENGGUNAKAN QRCODE DAN JAVA RMI
Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan mempublikasikannya di internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya. Pada tanggal: 25 Juli 2012 Yang menyatakan, Puji dan syukur kepada Yesus Kristus dan Bunda Maria yang telah memberikan karunia dan berkat-Nya sehingga dapat menyelesaikan skripsi dengan judul “Aplikasi Presensi Karyawan Menggunakan Qrcode dan Jave RMI ”.
Penyusunan tugas akhir ini tidak lepas dari semua pihak yang telah memberikan semangat, doa, dan bantuan sehingga tugas akhir ini dapat selesai. Untuk itu, penulis mengucapkan terima kasih sebesar besarnya kepada :
1. Bapak Puspaningtyas Sanjoyo Adi S.T., M.T. selaku dosen pembimbing yang senantiasa memberikan masukkan dan bantuan dalam membimbing penulis untuk menyelesaikan tugas akhir ini.
2. Bapak H. Agung Hernawan, S.T.,M.T. dan Bapak Iwan Binanto, S.Si.,M.Cs. selaku dosen penguji atas kritik dan saran yang telah diberikan.
3. Segenap Laboran, angga, endra dan mas Danang yang telah memberikan kesempatan untuk melakukan pengujian kepada penulis.
4. Bapak Petrus Sardi Hadimiyono, Ibu Cristina Suparmi yang dengan tulus memberikan perhatian, doa dan dukungan yang sangat besar.
5. Kedua kakakku Atik dan Ririn serta adikku Budi yang terlah memberikan doa , semangat dan dukungannya.
6. Elisabeth Gadis Pujiningtyas Rahayu, atas doa, dukungan, dan motivasi selama penulis menyelesaikan tugas akhir.
7. Teman-teman kuliah, awis, aji, arif, helan, edward, hendra, hugo, tomas, dede, linardi, angga, endra, roy serta teman-teman TI 2008 lainnya atas segala kebersamaan dan dukungan yang selalu diberikan kepada penulis.
8. Teman-teman UKM Sepak Bola tian, gilang, putra, aji serta lainnya yang telah selalu menemani dan memberikan dukungan dalam tugas akhir ini.
Penulis menyadari bahwa masih banyak kekurangan yang terdapat pada tugas akhir ini. Saran dan kritik penulis harapkan untuk kebaikan bersama. Semoga bermanfaat.
Yogyakarta, 25 Juli 2012 Penulis
DAFTAR ISI
DAFTAR GAMBAR
Gambar 3.1 Flowchart Admin ................................................................................................ 21Gambar 3.2 Flowchart Manager ............................................................................................ 22Gambar 3.3 Flowchart Karyawan Presensi ........................................................................... 22Gambar 3.4 Arsitektur Sistem ................................................................................................ 24Gambar 3.5 Diagram Use Case User..................................................................................... 25Gambar 3.6 Diagram Usecase Admin .................................................................................... 26Gambar 3.7 Diagram Kelas ................................................................................................... 28Gambar 3.8 Diagram Kelas Client RMI................................................................................. 29Gambar 3.9 Diagram Kelas server RMI ................................................................................ 29Gambar 4.1 konfigurasi client .............................................................................................. 104Gambar 4.2 pesan kesalahan ............................................................................................... 104Gambar 4.3 tryicon client ..................................................................................................... 105Gambar 4.4 konfigurasi server ............................................................................................. 105Gambar 4.5 konfigurasi waktu server .................................................................................. 106Gambar 4.5 konfigurasi server ............................................................................................. 107Gambar 4.6 pesan kesalahan ............................................................................................... 108Gambar 4.7 tryicon server ................................................................................................... 108
DAFTAR TABEL
Tabel 2.1. Tabel Tipe Data ..................................................................................................... 10Tabel 2.2. Tabel Pola Data QR Code ..................................................................................... 12Tabel 2.3. Tabel Format Informasi ........................................................................................ 12Tabel 3.1 Tabel Karyawan ..................................................................................................... 30Tabel 3.2 Tabel Data Kartu .................................................................................................... 30Tabel 3.3 Tabel Login............................................................................................................. 30Tabel 3.4 Tabel Presensi ........................................................................................................ 31Tabel 5.1 Tabel pengujian kamera ......................................................................................... 341 BAB I. PENDAHULUAN
1.1. Latar Belakang Persensi karyawan yang digunakan pertama adalah karyawan melakukan presensi dengan melakukan tanda tangan pada kertas presensi. Hal itu mengandung kelemahan yaitu karyawan tidak dapat langsung mendapatkan rekap presensinya. Presensi yang sering digunakan juga adalah menggunakan finggerprint yaitu dengan menggunakan pendeteksi sidik jari pada saat melakukan presensi. Presensi menggunakan sidik jari mempunyai kelebihan yaitu dapat mengatasi masalah pada presensi manual atau menggunakan tanda tangan, diantaranya rekap dapat dilakukan dengan cepat, meminimalkan kecurangan karyawan yang menitip presensi dan meminimalkan kesalahan penginputan data. Akan tetapi presensi menggunakan sidik jari ini memiliki kelemahan yaitu ketika sistem ini terpusat pada satu sistem saja sehingga untuk menangani jumlah karyawan yang jumlahnya banyak akan menimbulkan antrian saat melakukan presensi. Tetapi jika jumlah alat diperbanyak maka akan menyebabkan besarnya biaya pengadaan disuatu instansi tersebut. Solusinya adalah dengan membuat aplikasi karyawan pada masing-masing PC atau komputer karyawan.
Teknologi yang dapat dimanfaatkan untuk aplikasi presensi karyawan adalah teknologi QR Code. Kode QR atau biasa dikenal dengan istilah QR Code adalah bentuk evolusi kode batang dari satu dimensi menjadi dua dimensi. Penggunaan kode QR sudah sangat lazim di Jepang Hal ini dikarenakan kemampuannya menyimpan data yang lebih besar dari pada kode batang sehingga mampu mengkodekan informasi dalam bahasa Jepang sebab dapat menampung huruf kanji. Kode QR telah mendapatkan standarisasi internasional dan standarisasi dari Jepang berupa ISO/IEC18004 dan JIS-X-0510 dan telah digunakan secara luas melalui ponsel di Jepang. Untuk itu pemanfaatan QR Code sangat cocok untuk
2 Teknologi lain yang dapat dimanfaatkan adalah Java RMI. Java RMI sangat
cocok digunakan karena client yang terlibat dalam aplikasi adalah multiclient dan penyimpanan yang terdistribusi. Sehingga dengan menggunakan Java RMI dapat menangani sistem terdistribusi. Selain itu, keuntungan lain adalah Java RMI tidak hanya berjalan di operating system Windows, tetapi Linux dan Mac.
1.2. Rumusan Masalah Menguji unjuk kerja aplikasi presensi karyawan dengan menggunakan qrcode dan java RMI.
1.3. Tujuan Penelitian Tujuan dari penelitian ini adalah: 1. Membangun sistem aplikasi presensi menggunakan qrcode dan RMI.
2. Mempercepat karyawan dalam melakukan presensi.
3. Mengembangkan sistem terdistribusi menggunakan RMI.
1.4. Batasan Masalah Batasan masalah pada penelitian ini adalah analisis, perancangan, implementasi, dan pengujian sistem. Sistem ini menggunakan cara kerja qrcode.
Sistem ini juga menggunakan webcam untuk melakukan pembacaan qrcode karyawan dan mengambilan foto aktifitas karyawan selama melakukan presensi masuk sampai presensi keluar. Sistem ini digunakan di instansi yang memiliki komputer di masing-masing meja karyawannya. Dan sistem ini dapat menghasilkan output yaitu perhitungan prosentase kehadiran karyawan. RMI dipakai untuk pengakses data dari komputer aplikasi karyawan ke komputer server, begitu juga sebaliknya yaitu untuk mengakses dari komputer server ke komputer karyawan. Pengujian dilakukan untuk mengukur waktu pengambilan gambar oleh server pusat dan pembacaan qrcode pada computer celeron dan dual core pada topologi satu router dan dua router.
3
1.5. Metode Penelitian Pada penelitian ini dilakukan langkah-langkah sebagai berikut
1. Studi literatur Studi literatur mengenai sistem presensi dengan mengumpulkan data melalui refrensi dan dokumentasi ataupun artikel dari berbagai sumber yang ada relevansinya dengan masalah yang dikerjakan oleh penulis.
2. Rekayasa Perangkat Lunak Rekayasa perangkat lunak yang dikembangkan adalah dengan metode
Rational Unified Process (RUP) . Metode ini terdapat 4 tahapan yaitu
Inception, Elaboration, Construction,dan Transition. Metode ini digunakan untuk pengembangan perangkat lunak sehingga menghasilkan sebuah sistem yang bisa digunakan untuk melakukan presensi dan melihat aktifitas karyawan. Selain itu juga proses pengambilan file untuk backup data sehingga dapat digunakan untuk autentifikasi.
1.6. Manfaat Penelitian Manfaat yang diharapkan dari penelitian ini adalah:
1. Hasil pembuatan sistem dapat digunakan dan diterapkan oleh organisasi manapun.
2. Hasil pembuatan sistem dapat digunakan sebagai pendukung refrensi bagi organisasi dan pihak-pihak yang membutuhkan.
3. Untuk tercapainya efektifitas dan efisiensi kerja, sehingga dapat memberikan keuntungan bagi suatu instansi.
1.7. Sistematika Penulisan Untuk lebih memahami penelitian ini, maka penulisan materi akan dibagi kedalam beberapa bab dengan sistematika berikut:
4 Bab ini menjelaskan tentang latar belakang masalah, rumusan
masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penulisan yang digunakan, dan sistematika penulisan Tugas Akhir.
BAB 2 LANDASAN TEORI Bab ini membahas tentang teori yang mendukung penelitian , beberapa contoh penelitian yang menjadi acuhan dari penelitian ini. Dibahas juga tentang perbedaan dan kesamaan antara sistem yang menjadi contoh dengan sistem yang akan dibuat oleh penulis. Dibahas juga teori dasar qrcode, RMI sampai dengan teori dasar perangkat lunak yang digunakan dalam pembangunan sistem.
BAB 3 ANALISA DAN PERANCANGAN Akan membahas tentang kebutuhan sistem serta perancangan aplikasi sistem presensi. Pada bab ini juga akan dibahas tentang perancangan secara umum sistem presensi dan spesifikasi proses.
BAB 4 IMPLEMENTASI DAN PENGUJIAN Pada bab ini akan dijelaskan mengenai lingkungan implementasi berisi spesifikasi hardware, spesifikasi software, struktur menu, dan pengujian sistem.
BAB 5 PENUTUP Pada bab ini akan memaparkan kesimpulan dari sebelumnya dan saran untuk pengembangan apikasi selanjutnya.
5 BAB II. LANDASAN TEORI
2.1. Sistem Presensi Salah satu keberhasilan suatu organisasi bergantung pada kinerja sumber daya manusianya. Untuk memperoleh kinerja optimal dari keberadaan sumber daya manusia dalam suatu organisasi perlu menerapkan stategi yang tepat dalam mengelola SDM agar dapat mencapai tujuan telah ditetapkan. Dalam upaya mengoptimalkan SDM perlu dikontrol diantaranya melalui kehadiran / presensi. Banyak cara untuk menjaga dan mengontrol kehadiran karyawan baik secara konvensional ataupun cara modern. Definisi dari presensi adalah daftar kehadiran karyawan. Sedangkan definisi dari sistem presensi adalah sistem pencatatan kehadiran dan pelaporan dalam rangka pembinaan karyawan.
Data presensi menjadi gerbang untuk mengelola kinerja SDM yang ada yang menentukan produktivitas organisasi/perusahaan. Dengan demikian faktor kehadiran (presensi) karyawan merupakan hal yang penting karena berhubungan dengan produksi, penggajian, prestasi kerja, dan lain-lain. Secara konvensional kontrol kehadiran diantaranya dengan membubuhkan tandatangan, melubangi kartu, menandai bagian tubuh, dan lain-lain. Pada alat pencatatan presensi karyawan yang konvensional memerlukan banyak intervensi karyawan bagian administrasi kekaryawanan (SDM/Human resource management) maupun kejujuran karyawan. Untuk kapasitas yang besar dimungkinkan adanya manupulasi data kehadiran apabila pengawasan yang kontinyu pada proses ini tidak dilakukan semestinya.
Presensi juga merupakan sebuah cara untuk mengetahui sejauh mana tingkat disiplin kerja karyawan, apakah karyawan tersebut bisa menaati peraturan yang diterapkan atau tidak. Oleh karena presensi juga bertujuan untuk meningkatkan kedisiplinan karyawan. Daftar presensi sangat penting bagi atasan untuk mengetahui keadaan karyawannya. Beberapa peranan presensi dalam suatu
6 a. Untuk melihat kehadiran karyawan.
b. Untuk meningkatkan kedisiplinan karyawan.
c. Untuk meningkatkan semangat kerja karyawan.
d. Untuk mengetahui keadaan bawahan dihari kerja
e. Untuk mengetahui apakah bawahan mempunyai semangat kerja dengan melihat kehadiran karyawan dihari kerja f. Sebagai bahan laporan kepada atasan tetang karyawan yang disiplin. Dengan diterapkannya presensi ini dengan sendirinya telah membantu meningkatkan mutu dari instansi itu. Kebanyakan orang menilai adanya penggunaan presensi berarti adanya disiplin pada tempat yang bersangkutan. Selanjutnya orang menilai sistem kerja ditempat tersebut berkualitas baik. Dengan demikian presensi ini juga ikut membantu penilaian yang baik bagi setiap organisasi yang menerapkannya.
2.2. Teknologi Presensi Perkembangan teknologi presensi saat ini sangat cepat seiring dengan perkembangan teknologi elektronik. Perkembangan presensi yang semula dilakukan secara manual dengan melakukan tanda tangan pada kertas absensi sudah dianggap kurang effektif. Sekarang ini sudah banyak digunakan teknologi presensi diantaranya menggunakan teknologi informasi yaitu data absensi yang disimpan tidak berupa data kertas tetapi sudah disimpan dalam sebuah database.
Selain itu juga terdapat teknologi presensi yang langsung terautomisasi, contohnya penggunaan barcode. Dengan teknologi presensi menggunakan barcode maka akan menghindari kesalahan dalam penginputan data user. Sekarang ini teknologi presensi yang banyak digunakan adalah teknologi barcode dan teknologi sidik jari karena secara otomisasi langsung terkoneksi dengan database. Teknologi presensi sangat membantu untuk memantau kedisiplinan dan kejujuran karyawan.
7
2.3. Acuan Sistem yang pernah dikembangkan Salah satu karya tulis yang menjadi acuan dalam penelitian ini adalah Tugas akhir yang berjudul Pengembangan aplikasi sistem absensi karyawan dengan menggunakan metode barcode pada PT. Kemenangan jaya (adam pratama, 2007). Pada penulisan ini ditulisakan bahwa sistem yang dibuat adalah suatu sistem aplikasi absensi yang akan mencatat data dan kehadiran karyawan, waktu kedatangan, dan waktu pulang, yang akan dibuat secara sistematis dan terkomputerisasi dengan menggunakan metode barcode, sehingga akan menghilangkan proses pencatatan kehadiran karyawan yang selama ini telah berjalan secara manual pada PT.Kemenangan Jaya dan juga dengan penggunaan metode barcode akan mengurangi tingkat kesalahan penginputan id karyawan dalam proses absensi tersebut. Pada pembuatan sistem aplikasi absensi karyawan ini digunakan Borland Delphi 5 dan databasenya digunakan SQL Server 2000.
Karya ilmiah yang kedua yang menjadi acuhan bagi penulis untuk melakukan penelitian adalah Tugas Akhir yang berjudul perancangan dan pembuatan sistem aplikasi absensi dan pengajian karyawan pada PT Intan Ustrix (Budihartono,2004). Perancangan progran aplikasi ini meliputi beberapa modul, antara lain aplikasi absensi karyawan dengan menggunakan barcode dan aplikasi penggajian karyawan. Ruang lingkup tugas akhir ini adalah pembuatan software dengan menggunakan Borland Delphi 7 dan menggunakan microsorf SQL Server 2000. Database karyawan perusahaan meliputi data karyawan, tunjangan yang diberikan perusahaan, peneriamaan karyawan baru, dan pembagian shift kerja. Pada aplikasi absensi terdiri dari pembuatan check clock absensi berbasis penanggalan dan jam komputer. Dalam sistem penggajian karyawan terdapat dua sistem yaitu sistem penggajian bulanan dan sistem penggajian harian, penghitungan gaji didasarkan pada jumlah hari kerja karyawan, gaji pokok karyawan, tunjangan perusahaan, dan upah lembur. Dari sistem tersebut maka akan dihasilkan beberapa laporan data gaji karyawan.
8
2.4. Barcode 2 Dimensi
2.4.1. QR Code
QR Code atau Kode QR adalah suatu jenis kode matriks atau kode batang dua
dimensi yang dikembangkan 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 merupakan singkatan dari quick response atau respons cepat, yang sesuai dengan tujuannya adalah untuk menyampaikan informasi dengan cepat dan mendapatkan respons yang cepat pula. Berbeda dengan kode batang, yang hanya menyimpan informasi secara horizontal, kode QR mampu menyimpan informasi secara horizontal dan vertikal, oleh karena itu secara otomatis Kode QR dapat menampung informasi yang lebih banyak daripada kode batang. [1] Kode QR berfungsi bagaikan hyperlink fisik yang dapat menyimpan alamat dan URL,nomer telepon, teks dan sms yang dapat digunakan pada majalah, surat harian, iklan, pada tanda-tanda bus, kartu nama ataupun media lainnya. Kehadiran kode ini memungkinkan audiens berinteraksi dengan media yang ditempelinya melalui ponsel secara efektif dan efisien. Pengguna juga dapat menghasilkan dan mencetak sendiri kode QR untuk orang lain dengan mengunjungi salah satu dari beberapa ensiklopedia kode QR .
Gambar 2.1: Barcode 2D dan Barcode Linier
Kode QR memiliki kapasitas tinggi dalam data pengkodean, yaitu mampu
9
kana,hiragana,simbol,dan kode biner. Secara spesifik, kode QR mampu menyimpan data berupa :
- numerik sampai dengan 7.089 karakter
- alphanumerik sampai dengan 4.296 karakter
- kode biner sampai dengan 2.844 byte - huruf kanji sampai dengan 1.817 karakter.
Selain itu kode QR memiliki tampilan yang lebih kecil daripada kode batang. Hal ini dikarenakan kode QR mampu menampung data secara horizontal dan vertikal, oleh karena itu secara otomatis ukuran dari tampilannya gambar kode QR bisa hanya sepersepuluh dari ukuran sebuah kode batang. Tidak hanya itu kode QR juga tahan terhadap kerusakan, sebab kode QR mampu memperbaiki kesalahan sampai dengan 30%. Oleh karena itu, walaupun sebagian simbol kode QR 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 sepanjang 360 derajat.
Gambar 2.2: Contoh QR Code
2.4.2. Algoritma QR Code
Menentukan Kapasitas
Kapasitas dari qrcode ditentukan oleh versi, tingkat koreksi kesalahan dan tipe data yang akan dikodekan (misalnya 9able9c, alfanumerik, dan lain-lain). Sebagai contoh, pada QR Code versi 1 dengan tingkat koreksi kesalahan Q, 27
10
meningkat bila tingkat kesalahan lebih besar pada data yang sama. Jadi, pertama kita perlu mempertimbangkan tingkat mengoreksi kesalahan, dan selanjutnya kita mempertimbangkan versi jika perlu.
Encode Data
Pada bagian ini, data diencode dengan melakukan perhitungan-perhitungan dan menempatkannya ke dalam kode QR.
Menentukan tipe data
Data akan dibaca tipe datanya. Masing-masing tipe data akan disimpan ke dalam representasi bilangan biner 4 bit dan mempunyai panjang karakter penyimpanan tertentu. Tipe data tersebut terdapat pada Tabel 2.1.
No Tipe Data Representasi data 4 bit Panjang penimpanan
1 Numerik 0001 10 bit
2 Alphanumerik 0010 9 bit
3 Biner (8 bit) 0100 8 bit
4 Kanji 1000 8 bit
Tabel 2.1. Tabel Tipe Data Konversi data ke dalam bentuk binerData yang telah diketahui tipe datanya, akan dikonversikan kedalam biner berdasarkan Tabel 2.1. Misalnya, data yang mempunyai tipe data numerik akan di konversikan kedalam 10 bit biner.
11 Konversi biner ke dalam bentuk desimal
Data yang sudah terkonversi ke dalam bentuk biner, akan dirubah ke dalam bentuk desimal berdasarkan kapasitas dari masing-masing versi QR Code yang telah ditentukan.
Menghitung tingkat koreksi kesalahan
Tingkat koreksi kesalahan ditentukan dengan menggunakan metode Reed
Solomon berdasarkan versi QR Code yang digunakan dengan toleransi kesalahan
maksimal yang digunakan adalah 30%.Alokasi Data
Data hasil encode akan dialokasikan ke dalam bentuk gambar QR Code. Data yang akan dialokasikan adalah data hasil representasi biner dan data hasil perhitungan koreksi kesalahan. Aturan peletakan data dalam QR Code adalah sebagai berikut :
1. Data akan dialokasikan ke dalam matriks dengan ukuran sesuai kapasitas data pada versi QR Code.
2. Data pertama kali akan diletakkan pada koordinat pojok kanan bawah.
3. Data selanjutnya akan diletakkan diatasnya.
4. Jika pada peletakkan awal QR Code telah terdapat data sebelumnya, maka peletakkan data akan dimulai pada modul yang kosong dan mempunyai arah dari kiri ke kanan. Jika sebelah kanan penuh maka arah selanjutnya adalah ke atas. Jika bagian atas penuh, maka arah selanjutnya adalah ke bawah dengan tetap memperhatikan arah peletakkan data yaitu dari kanan ke kiri.
Penentuan pola data
Penentuan pola data QR Code (Finder Pattern) dilakukan berdasarkan kondisi pada tabel 2.2 Jika kondisi pada tabel 2.2 tidak terpenuhi, maka pola data tidak akan disimpan pada QR Code sebagai finding pattern.
12 Pola Data 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 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
Tabel 2.2. Tabel Pola Data QR Code Penentuan format informasi dataFormat informasi terdiri dari tingkat koreksi error dan indikator pembentuk pola sebanyak 15 bit, yang terdiri dari 2 bit untuk koreksi kesalahan yang ada pada tabel 2.3, 3 bit untuk pembentuk pola .yang ada pada tabel 2.2 dan 10 bit untuk format informasi data.
No Level Koreksi Kesalahan Indikator
1 L
01
2 M
00
3 Q
11
4 H
10 Tabel 2.3. Tabel Format Informasi
13 Gambar 2.3: Struktur QR Code Decode Data
Proses decode adalah proses pembacaan data QR. Langkah-langkah pembacaan data QR Code diantaranya adalah :
1. Mengkonversi gambar QR Code ke dalam bentuk Grayscale
2. Proses binerisasi gambar grayscale
3. Mencari lokasi dan orientasi keberadaan data
4. Mencari pola baris data
5. Proses decode Adapun proses decode tersebut merupakan kebalikan dari proses encode.
2.4. Java RMI Remote Method Invocation dibuat berdasarkan ide dasar local objects dan remote objects. Konsep ini bersifat relatif. Local objects adalah objek-objek yang dijalankan pada host tertentu. Remote objects adalah objek-objek yang dijalankan pada host yang lain. Objek-objek pada remote host diekspor (exported) sehingga dapat diminta (invoked) secara remote. Suatu objek diekspor dengan cara meregristasi dengan suatu remote registrasi serve. Server remote registrasy
14
teregristasi oleh server itu. Hal itu dilakukan dengan memeliharaan database nama dan objek yang terasosiasi dengan nama itu [7]. Gambar Registrasi dari suatu remote object untuk remote access [7] Objek yang mengekspor dirinya sendiri untuk mengakses secara remote harus mengimplementasi Remote interface. Interface ini mengidentifikasi objek sebagai dapat diakses secara remote. Setiap motode yang diminta remote harus “membuang” (throw) Remote Exception. Eksepsi ini digunakan untuk mengindikasi error yang terjadi selama proses RMI [7].
Metode pendekatan RMI pada java (Java RMI) adalah objek-objek diorganisir dalam suatu framework client/server. Suatu local object atau client. Sebuah remote object yang metodenya diminta oleh local object dijadikan sebagai server object atau server [7].
Java RMI menggunakan stub dan skeleton. Stub adalah suatu local object yang berlaku sebagai local proxy untuk remote object. Stub menyediakan metode yang sama seperti remote object. Local object meminta (invoke) metode dari stub seakan seperti metode dari remote object. Stub kemudian mengkomunikasikan permintaan (invocation) metode kepada remote object melalui suatu skeleton yang diimplementasikan di remote host. Skeleton adalah suatu proxy pada remote object yang berada pada host yang sama dengan remote object. Skeleton berkomunikasi dengan local stub dan menyampaikan nilai itu kembali ke stub. Stub selanjutnya mengirim nilai tersebut kepada local object yang menginisiasi RMI [7].
Stub dan skeleton berkomunikasi melalui remote reference layer. Layer ini menyediakan stub dengan kemampuan untuk berkomunikasi dengan skeleton melalui suatu protokol transport. RMI biasanya menggunakan TCP untuk transport informasi, walaupun bersifat fleksibel untuk dapat menggunakan protokol lainya [7]. Gambar Java RMI menggunakan stub dan skeleton untuk mensupport komunikasi klien.server [7].
15
2.5. MySQL MySQL adalah sebuah sistem manajemen database open source yang populer dan gratis untuk platform Unix. Sistem manajemen database MySQL menggunakan kumpulan perintah sederhana untuk memasukkan, memanggil, menghapus, dan memperbarui data, dengan ini kita dapat mengembangkan
database yang kompleks. Beberapa kemampuan MySQL adalah sebagai berikut :
MySQL bisa diakses dan dimanipulasi dari sejumlah bahasa pemrograman terkenal, diantaranya adalah C, C++, Java, Perl, Phyton, dan PHP. MySQL ditulis dalam C/C++ dan dioptimasi untuk platform Unix dan Win32. MySQL mendukung tipe data yang umum digunakan, termasuk FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, SET, dan ENUM. MySQL mendukung subset fungsi query dan pengelompokan lanjut, termasuk diantaranya GROUP BY dan ORDER BY. MySQL memungkinkan alokasi password tiap server. Password yang melalui MySQL untuk melakukan autentifikasi terenkripsi. MySQL mendukung berbagai macam metode koneksi, seperti TCP/IP, soket Unix, dan koneksi untuk Windows NT/2000. MySQL bisa diperoleh secara gratis termasuk aplikasi-aplikasi lain yang diperlukan dalam memakai MySQL. MySQL juga merupakan salah satu sistem manajemen database yang stabil di pasaran. Ketika MySQL diluncurkan pertama kali pada pertengahan 1996, beberapa bug dengan cepat dapat diketahui dan diperbaiki. Sekarang MySQL sudah menjadi sangat stabil dan banyak dipercaya oleh korporasi-korporasi di dunia untuk menyimpan data-data bisnis penting. Data-data ini biasanya membutuhkan media penyimpan yang besar dan hal ini bukan menjadi masalah bagi MySQL, karena tabel MySQL sanggup menampung data lebih dari 4 Gigabytes. MySQL 3.23 berisi jenis tabel baru yaitu MySQL yang sanggup menampung 8 juta Terabytes[].
16
2.6. Metode pengembangan perangkat lunak Terdapat beberapa metode pengembangan perangkat lunak yang umum digunakan. Perkembangan teknologi informasi yang cepat pada bidang analisis dan pemrogramannya mengakibatkan metode pengembangan perangkat lunak juga berkembang. Metode yang lebih baru telah mengadopsi metode yang berorientasi obyek. Metodologi yang cukup populer saat ini adalah metode pengembangan perangkat Rational Unified Process.
2.6.1. Rational Unified Process
Rational Unified Process (RUP) merupakan suatu metode rekayasa
perangkat lunak yang dikembangkan dengan mengumpulkan berbagai best
practises yang terdapat dalam industri pengembangan perangkat lunak. Ciri utama
metode ini adalah menggunakan use-case driven dan pendekatan iteratif untuk siklus pengembangan perangkat lunak. [11] Gambaran Umum RUP
Rational Unified Process dikembangkan oleh Rational Software (bagian
dari IBM). Rational Unified Process mendeskripsikan pemberian dan pengelolaan tugas serta tanggung jawab dalam sebuah organisasi pengembang perangkat lunak. Unified Process yang dilaksanakan dengan produk-produk bantu yang dibuat oleh Rational Software (IBM) disebut Rational Unified Process (RUP). [11] mendefinisikan tahap pelaksanaan, kegiatan, peran
Unified Process
pelaksana, hasil pekerjaan, dan prinsip yang harus diikuti. Namun Unified Process tidak dapat diterapkan secara langsung karena memang dimaksudkan sebagai kerangka proses kerja yang harus diadaptasikan. Unified Process menyediakan berbagai 'pustaka' proses kerja yang harus dipilih untuk disesuaikan dengan tim pelaksana dan jenis perangkat lunak yang dikembangkan.
17
Pengelolaan kebutuhan Penggunaan arsitektur yang berbasis komponen Pemodelan perangkat lunak secara visual (diagram UML) Verifikasi kualitas perangkat lunak Perubahan pada perangkat lunak yang terkendali
RUP menggunakan konsep object oriented, dengan aktifitas yang berfokus
pada pengembangan model dengan menggunakan Unified Model Language (UML). [11]
Gambar II.1 Arsitektur Rational Unified Process [12]
Melalui gambar diatas dapat dilihat bahwa RUP dapat di deskripsikan menjadi 2 dimensi, yaitu: Dimensi pertama digambarkan secara horizontal. Dimensi ini mewakili waktu dan aspek-aspek dinamis dari pengembangan perangkat lunak. Aspek ini dijabarkan dalam tahapan pengembangan atau fase. Setiap fase akan memiliki suatu major milestone yang menandakan akhir dari awal dari fase selanjutnya. Setiap fase dapat berdiri dari satu beberapa iterasi. Dimensi ini terdiri atas Inception, Elaboration, Construction, dan Transition.
Dimensi kedua digambarkan secara vertikal. Dimensi ini mewakili aspek-
18
ke dalam beberapa disiplin. Proses pengembangan perangkat lunak yang dijelaskan kedalam beberapa disiplin terdiri dari empat elemen penting, yakni
- – Workers, the ”who”
- – Activities, the ”how”
- – Artifacts, the ”what”
- – Workflows, the ”when” Dimensi ini terdiri atas Business Modeling, Requirement, Analysis and Design, Implementation, Test, Deployment, Configuration dan Change Manegement, Project Management, Environtment. [11]
2.6.2. Fase RUP dalam Rational Unified Process Inception/insepsi
Pada tahap ini pengembang mendefinisikan batasan kegiatan, melakukan analisis kebutuhan user, dan melakukan perancangan awal perangkat lunak (perancangan arsitektural dan use case). Elaboration/elaborasi
Pada tahap ini dilakukan perancangan perangkat lunak mulai dari menspesifikasikan fitur perangkat lunak hingga perilisan prototipe versi
Betha dari perangkat lunak. Tujuan utama adalah untuk mengurangi resiko
kunci item diidentifikasi dengan analisis hingga akhir fase ini. Fase perluasan dimana proyek mulai terbentuk. Dalam tahap ini masalah analisis domain dibuat dan proyek arsitektur mendapatkan bentuk dasarnya
Construction/konstruksi Pengimplementasian rancangan perangkat lunak yang telah dibuat dilakukan pada tahap ini. Tujuan utama adalah untuk membangun sistem perangkat lunak. Pada tahap ini, fokus utama adalah pada pengembangan komponen dan fitur lain dari sistem yang dirancang. Ini adalah tahap ketika sebagian besar terjadi pengkodean. Dalam proyek yang lebih besar,
19