3. BAB III PERANCANGAN APLIKASI

dokumen-dokumen yang mirip
4. BAB IV PENGUJIAN APLIKASI DAN EVALUASI

BAB 3 PERANCANGAN SISTEM

3 BAB III METODOLOGI PENELITIAN

BAB III ANALISIS SISTEM DAN PERANCANGAN

PERCOBAAN 3 KOMUNIKASI SERIAL DENGAN NULL MODEM

BAB 4 IMPLEMENTASI DAN EVALUASI

= t t... (1) HASIL DAN PEMBAHASAN

BAB 4 IMPLEMENTASI DAN EVALUASI. Sumber daya yang dibutuhkan untuk menjalankan Aplikasi Sistem Sumber Daya Perangkat Keras (Hardware)

BAB 3 PERANCANGAN SISTEM

Gambar 4.17 Instalasi Modem Nokia 6100 Install From Disk

BAB I PENDAHULUAN 1.1 Tujuan 1.2 Latar Belakang

BAB III ANALISIS DAN PERANCANGAN SISTEM

BAB IV PENGUJIAN DAN ANALISA. komponen-komponen sistem yang telah dirancang baik pada sistem (input)

BAB 4 IMPLEMENTASI DAN EVALUASI. Untuk membantu dalam proses pemantauan jaringan switch backbone

BAB 3 PERANCANGAN SISTEM. 3.1 Rancangan Perangkat Keras Sistem Penuntun Satpam. diilustrasikan berdasarkan blok diagram sebagai berikut:

BAB IV IMPLEMENTASI DAN PENGUJIAN. dan pengujian merupakan langkah yang dilakukan setelah melakukan

BAB IV PENERAPAN LAYANAN LBS DENGAN MENGGUNAKAN TEKNOLOGI SMS GATEWAY

BAB III PERANCANGAN DAN PEMBUATAN ALAT

BAB III ANALISIS DAN PERANCANGAN

BAB 3 PERANCANGAN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM

BAB 3 PERANCANGAN SISTEM. Perancangan aplikasi meliputi server, pengajar dan mahasiswa. Server akan

BAB III ANALISA DAN DESAIN SISTEM

J2ME GUI dan Interkoneksi Client Server

BAB III PERANCANGAN SISTEM

BAB IV ANALISIS DAN PERANCANGAN SISTEM

IV. HASIL DAN PEMBAHASAN. a. Ruang Lingkup (Scope) Perangkat Lunak P-ATIS. P-ATIS memproduksi suara dari data-data cuaca terkini yang

BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

BAB III ANALISA DAN PERANCANGAN SISTEM. permasalahan yang ada sebagai dasar untuk membuat sebuah solusi yang

2. BAB II PENDAHULUAN

BAB IV HASIL PENGUJIAN DAN PENGAMATAN. transmisi data dari Arduino ke Raspberry Pi 2 dan Arduino ke PC pembanding.

BAB IV HASIL DAN UJI COBA

BAB IV SISTEM MONITORING DAYA LISTRIK DENGAN MENGGUNAKAN WATTMETER DIGITAL BERBASIS WEB APLIKASI

Mesin Absensi Sederhana dengan menggunakan R/W RFID

BAB IV PERANCANGAN SISTEM

SPC Application Note. SPC Blue-Link (J2) Tabel 1 Hubungan SPC Blue-Link Dengan Komputer

BAB IV ANALISIS DAN PERANCANGAN SISTEM. terkomputerisasi. Berikut adalah uraian proses dari kegiatan pemesanan makanan

BAB IV ANALISIS DAN PERANCANGAN SISTEM. mampu memperkirakan dan merincikan seluruh dokumen ataupun prosedur yang

BAB III ANALISA DAN PERANCANGAN. Pada dasarnya perancangan sistem yang dibuat oleh peneliti adalah

BAB III PERANCANGAN. Gambar 3.1. Pegasus PFH-500 (a) dan Pegasus PF-5210 (b)

DQI-03 DELTA ADC. Dilengkapi LCD untuk menampilkan hasil konversi ADC. Dilengkapi Zero offset kalibrasi dan gain kalibrasi

BAB IV HASIL DAN UJI COBA

BAB 3 PERANCANGAN SISTEM

BAB IV ANALISIS DAN PERANCANGAN. kebutuhan-kebutuhan yang diharapkan sehingga dapat diusulkan perbaikannya.

BAB 3 ANALISIS DAN PERANCANGAN

BAB III METODE PENELITIAN

BAB IV HASIL DAN UJI COBA

BAB III PERANCANGAN SISTEM

Teknologi RFID Baca Tulis

BAB III PERANCANGAN 3.1. SPESIFIKASI SISTEM

BAB III ANALISIS DAN PERANCANGAN

BAB IV HASIL DAN UJI COBA

BAB IV ANALISIS DAN PERANCANGAN

BAB IV ANALISIS DAN PERANCANGAN SISTEM

BAB IV HASIL DAN UJI COBA

BAB III ANALISA DAN DESAIN SISTEM

Sistem Keamanan Pintu Gerbang Berbasis AT89C51 Teroptimasi Basisdata Melalui Antarmuka Port Serial

BAB IV ANALISIS DAN PERANCANGAN SISTEM. menganalisis sistem yang sedang berjalan di Bengkel BG Kawasaki Motor yang

Link Nama digunakan untuk menuju halaman Data Absensi Siswa.

USER MANUAL DELTA ELECTRONIC. electronic.com sby.com UART TTL. RS232 Selector RS232 / TTL Level

BAB III ANALISIS DAN PERANCANGAN SISTEM

BAB IV ANALISIS DAN PERANCANGAN SISTEM. yang manual, yaitu dengan melakukan pembukuan untuk seluruh data dan

BAB IV PENGUJIAN DAN ANALISA DATA

BAB III ANALISA DAN DESAIN SISTEM

BAB IV PENGUJIAN DAN ANALISA DATA

Team project 2017 Dony Pratidana S. Hum Bima Agus Setyawan S. IIP

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM. telah dijelaskan pada bab sebelumnya. Analisis yang dilakukan bertujuan untuk

SISTEM PENCETAK KARTU AKADEMIK MENGGUNAKAN AKSES TEKNOLOGI RFID

BAB III PERANCANGAN SISTEM

BAB III ANALISA DAN PERANCANGAN SISTEM

Bab 3 Metodologi Penelitian

BAB IV ANALISIS DAN PERANCANGAN SISTEM. utuh kebagian-bagian komponennya yang dimaksudkan untuk

BAB IV PENGUJIAN DAN ANALISA SISTEM

BAB III ANALISIS DAN PERANCANGAN

Gambar Notifikasi via

BAB III ANALISA DAN DESAIN SISTEM

BAB III PERANCANGAN SISTEM

BAB II TINJAUAN PUSTAKA

BAB IV ANALISIS DAN PERANCANGAN SISTEM. hasil analisis ini digambarkan dan didokumentasiakan dengan metodologi

BAB IV PENGUJIAN DAN ANALISIS SISTEM

BAB III ANALISA DAN PERANCANGAN

BAB V IMPLEMENTASI DAN PENGUJIAN

3. BAB III METODE PENELITIAN

BAB III ANALISA DAN PERANCANGAN

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB III METODOLOGI PENELITIAN. Penelitian ini dilakukan di Jurusan Ilmu Komputer Fakultas Matematika dan Ilmu

Menuntun Anda membuat sketch HelloWorld. Menjelaskan diagram alir pemrograman HelloWorld. Menjelaskan cara memprogram Arduino

BAB IV PERANCANGAN SISTEM

BAB III ANALISIS DAN PERANCANGAN SISTEM. Analisis sistem bertujuan untuk mengidentifikasi permasalahanpermasalahan

BAB IV UJICOBA DAN ANALISA SISTEM

BAB IV HASIL DAN UJI COBA

Unified Modeling Language (UML) Model

BAB III PERANCANGAN SISTEM

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

BAB III PERANCANGAN SISTEM

BAB III PERANCANGAN SISTEM

BAB III ANALISIS DAN PERANCANGAN SISTEM. dengan menggunakan metode System Development Life Cycle (SDLC). Tahap yang

BAB 3 PERANCANGAN SISTEM

BAB IV IMPLEMENTASI_DAN_EVALUASI. diimplementasikan dalam bentuk kode-kode pemrograman perangkat lunak.

Transkripsi:

3. BAB III PERANCANGAN APLIKASI 3.1 Pengamatan Cara Kerja Alat menggunakan Serial Monitor Untuk mengetahui cara Read Write Device (RWD) dan tag RFID berkomunikasi, sebelumnya dengan menggunakan HyperTerminal dan SerialMonitor. Perintah dikirimkan sesuai dengan format yang ada pada dasar teori, kemudian dengan Serial Monitor didapatkan hasil berikut ini : hasil pembacaan nomor seri tag RFID Request: 7/27/2007 10:05:38 AM.48664 (+109.6777 seconds) 23 # Answer: 7/27/2007 10:05:38 AM.48664 (+0.0000 seconds) 45 E Request: 7/27/2007 10:05:38 AM.49664 (+0.0100 seconds) AB 00 AB «.«Answer: 7/27/2007 10:05:38 AM.51664 (+0.0200 seconds) 67 g Request: 7/27/2007 10:05:38 AM.51664 (+0.0000 seconds) 89 Answer: 7/27/2007 10:05:38 AM.52664 (+0.0100 seconds) 00 04 E2 12 16 C3 21..â..Ã! hasil pembacaan blok pada tag RFID Request: 7/27/2007 10:06:15 AM.12064 (+0.0100 seconds) 23 # Answer: 7/27/2007 10:06:15 AM.12064 (+0.0000 seconds) 45 E Request: 7/27/2007 10:06:15 AM.12064 (+0.0000 seconds) AB 00 AB «.«Answer: 7/27/2007 10:06:15 AM.15064 (+0.0100 seconds) 67 g Request: 7/27/2007 10:06:15 AM.15064 (+0.0000 seconds) 89 Answer: 7/27/2007 10:06:15 AM.16064 (+0.0100 seconds) 00 04 E2 12 16 C3 21..â..Ã! Request: 7/27/2007 10:06:15 AM.17064 (+0.0100 seconds) 23 # Answer: 7/27/2007 10:06:15 AM.17064 (+0.0000 seconds) 45 E Request: 7/27/2007 10:06:15 AM.17064 (+0.0000 seconds) A4 07 00 FF FF FF FF FF FF A3..ÿÿÿÿÿÿ Answer: 7/27/2007 10:06:15 AM.22064 (+0.0100 seconds) 67 g Request: 7/27/2007 10:06:15 AM.22064 (+0.0000 seconds) 89 Answer: 7/27/2007 10:06:15 AM.22064 (+0.0000 seconds) 00 00 00... Request: 7/27/2007 10:06:15 AM.23064 (+0.0000 seconds) 23 # 10

Answer: 7/27/2007 10:06:15 AM.23064 (+0.0000 seconds) 45 E Request: 7/27/2007 10:06:15 AM.23064 (+0.0000 seconds) AC 06 02 C3 16 12 E2 00 8D..Ã..â. Answer: 7/27/2007 10:06:15 AM.32064 (+0.0501 seconds) 67 g Request: 7/27/2007 10:06:15 AM.33064 (+0.0100 seconds) 89 Answer: 7/27/2007 10:06:15 AM.33064 (+0.0000 seconds) 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00... 00 00 10... penulisan data ke dalam blok pada tag RFID Request: 7/27/2007 10:07:17 AM.16964 (+0.1001 seconds) 23 # Answer: 7/27/2007 10:07:17 AM.16964 (+0.0000 seconds) 45 E Request: 7/27/2007 10:07:17 AM.17964 (+0.0100 seconds) AB 00 AB «.«Answer: 7/27/2007 10:07:17 AM.21964 (+0.0300 seconds) 67 g Request: 7/27/2007 10:07:17 AM.21964 (+0.0000 seconds) 89 Answer: 7/27/2007 10:07:17 AM.21964 (+0.0000 seconds) 00 04 E2 12 16 C3 21..â..Ã! Request: 7/27/2007 10:07:17 AM.35064 (+0.1302 seconds) 23 # Answer: 7/27/2007 10:07:17 AM.36064 (+0.0100 seconds) 45 E Request: 7/27/2007 10:07:17 AM.36064 (+0.0000 seconds) A4 07 00 FF FF FF FF FF FF A3..ÿÿÿÿÿÿ Answer: 7/27/2007 10:07:17 AM.41064 (+0.0100 seconds) 67 g Request: 7/27/2007 10:07:17 AM.42064 (+0.0100 seconds) 89 Answer: 7/27/2007 10:07:17 AM.42064 (+0.0000 seconds) 00 00 00... Request: 7/27/2007 10:07:18 AM.52064 (+0.1001 seconds) 23 # Answer: 7/27/2007 10:07:18 AM.52064 (+0.0000 seconds) 45 E Request: 7/27/2007 10:07:18 AM.53064 (+0.0100 seconds) AD 16 02 C3 16 12 E2 69 6E 61 20 63 75 74 65 20..Ã..âina cute 20 20 20 20 20 20 20 00 DD.Ý Answer: 7/27/2007 10:07:18 AM.67064 (+0.0401 seconds) 67 g Request: 7/27/2007 10:07:18 AM.67064 (+0.0000 seconds) 89 Answer: 7/27/2007 10:07:18 AM.68064 (+0.0100 seconds) 00 10 69 6E 61 20 63 75 74 65 20 20 20 20 20 20..ina cute 20 20 51 Q Request: 7/27/2007 10:07:18 AM.69064 (+0.0100 seconds) 23 # Answer: 7/27/2007 10:07:18 AM.69064 (+0.0000 seconds) 45 E 11

Dari dasar teori dan pengamatan di atas, dapat dianalisa bahwa : tahap yang harus dilakukan untuk meminta nomor kartu adalah mengirim 23, menunggu jawaban 45, mengirim AB 00 AB, menunggu jawaban 67, mengirim 89, dan respon yang didapatkan 00 04 E2 12 16 C3 21 dimana nomor kartu adalah bagian yang digaris bawah, dengan penulisan dari belakang. Jadi nomor kartu pada percobaan sebenarnya C3 16 12 E2 sebelum perintah untuk mengakses blok dikirim, passkey FF FF FF FF FF FF harus dikirim dahulu dengan format A4 07 00 FF FF FF FF FF FF A3 tahap yang dilakukan untuk membaca blok adalah pengiriman perintah untuk SN, pengiriman passkey, lalu perintah untuk membaca AC 06 02 C3 16 12 E2 00 8D sesuai dengan penjelasan sebelumnya, 02 adalah blok ke- 2 dan yang digaris bawah adalah SN tahap untuk menulis data ke dalam blok adalah pengiriman perintah untuk nomor seri, pengiriman passkey, lalu perintah untuk menulis AD 16 02 C3 16 12 E2 69 6E 61 20 63 75 74 65 20 20 20 20 20 20 20 20 00 DD. AD 16 adalah perintah untuk menulis, kemudian 02 adalah blok ke-2 yang akan dibaca, lalu diikuti NOMOR SERI, isi data yang akan ditulis dalam hexa, 00 dan XOR dari semua bilangan hexa AD^16^02^C3^16^12^E2^69^6E^61^20^63^75^74^65^20^20^20^20^20^ 20^20^20^00 menghasilkan DD. 3.2 Arsitektur Sistem Sistem yang dibangun dapat diilustrasikan dengan Gambar 3-1 berikut ini; Gambar 3-1 Desain Sistem yang Dibangun 12

yang secara sederhana, dapat dijelaskan sebagai berikut: user dengan tag RFID yang datang, cukup meletakkan kartu pengenalnya pada RWD RWD membaca tag RFID dan menyimpan data dalam komputer 3.3 Spesifikasi Sistem Aspek-aspek fungsionalitas dan teknis yang menjadi dasar perancangan tugas akhir ini memiliki spesifikasi-spesifikasi sebagai berikut : 3.3.1 Spesifikasi fungsional : 1. RWD dan komputer dapat terhubung dan berkomunikasi 2. nomor seri pada tag RFID dapat dibaca oleh RWD 3. blok-blok dalam tag RFID dapat dibaca oleh RWD dan diolah agar dapat dikenal dengan mudah oleh pengguna 4. blok-blok dalam tag RFID dapat diisi dengan data yang dikehendaki oleh pengguna 5. nomor seri tag RFID dan jam kedatangan dapat digunakan sebagai masukan untuk mengisi basis data 3.3.2 Spesifikasi teknis: 1. RS232-port serial digunakan sebagai media untuk menghubungkan RWD dengan komputer 2. MySQL digunakan sebagai sarana basis data dan nomor seri kartu digunakan sebagai identitas unik masing-masing pemiliknya. 3.4 Perancangan Program 3.4.1 Use case Diagram Use case diagram digunakan untuk merepresentasikan hal-hal yang dapat dilakukan aktor pengguna sistem. Dalam program ini, aktor pengguna yang dimaksud adalah user dan admin. Hal-hal yang dapat dilakukan antara lain: mengubah password aktor yang bersangkutan, menambah user, membaca dan menulis kartu, mengolah basis data, mencetak basis data, dan menjalankan 13

absensi secara otomatis. Secara sederhana, use case program yang dirancang dapat diilustrasikan Gambar 3-2 berikut ini; Gambar 3-2 Diagram Use case 3.4.2 Garis Besar Proses yang Dijalankan Secara garis besar, aplikasi yang dirancang menjalankan prosedur-prosedur berikut ini: 1. port serial yang ada dalam komputer dideteksi 2. parameter-parameter yang dibutuhkan diambil dan digunakan untuk penyambungan dengan port serial 3. tag RFID yang dikehendaki dipilih RWD dengan cara meminta Access to Select (ATS) (kode AB 00 AB), jika ada kartu, berarti ada respon yang berisi nomor seri kartu (format seperti Tabel 2-3) 4. untuk membaca blok dalam tag RFID dikirim perintah seperti pada Tabel 2-3. setelah itu nomor seri dicek ke basis data untuk mendapatkan nama dan nomor plat penggunanya 5. jika blok ingin diisi, dikirim perintah seperti pada Tabel 2-3. Lalu, data pada basis data juga diperbaharui sehingga data pada kartu dan basis data sama 6. tag RFID yang akan digunakan didaftar dengan memasukkan nomor seri, nama, dan nomor plat truk dalam tabel daftarnama pada basis data data 7. saat menjalankan prosedur untuk mengabsen, prosedur yang dijalankan cukup mengambil nomor seri tag yang sudah terdaftar dalam basis data 8. nomor seri ini digunakan sebagai kunci untuk mengambil data dari tabel daftarnama 14

9. jika nomor seri ada pada tabel daftarnama, akan diambil nilai nama dan nomor plat truk dari nomor tersebut 10. nomor seri, nama, nomor plat truk dimasukkan ke tabel daftardatang, beserta jam kedatangan yang diambil dari jam sistem 3.4.3 Diagram Sekuen Diagram sekuen digambarkan dalam bentuk garis paralel vertikal. Garis ini bergerak dari atas ke bawah. Di dalamnya berisi, proses atau objek yang berbedabeda muncul secara simultan, pertukaran pesan dalam bentuk anak panah horisontal. Diagram sekuen memberikan gambaran program seperti yang sudah dijelaskan diagram use case. Program yang dirancang digambar beberapa diagram sekuen berikut, sesuai dengan fungsi yang sedang dijalankan: Gambar 3-3 Diagram Sekuen untuk Fungsi Membaca atau Menulis Blok Setelah aktor pengguna masuk sistem, data mengenai aktor pengguna dan hak aksesnya disimpan dalam beberapa variabel dalam statusfrm. Dalam HalUtama, untuk melakukan pembacaan atau penulisan blok, pengguna harus terhubung dengan port serial. Setelah tersambung, dari kelas Engine, dapat diambil nomor seri kartu dan dilakukan pembacaan atau penulisan. Setiap kartu dibaca, nomor seri di dalamnya dicek ke basis data untuk mengetahui apakah data yang diberikan 15

sama. Demikian halnya, saat penulisan, data yang telah diisi ke kartu juga diisi ke basis data. Gambar 3-4 Diagram Sekuen untuk Fungsi Log Otomatis Untuk menjalankan pembacaan kartu secara otomatis, setelah terhubung dengan port serial, kartu dibaca nomor serinya, dicocokkan dengan basis data untuk mendapatkan nama dan nomor plat pemilik kartu. Kemudian dengan method JamMasuk(), nama, nomor plat, dan jam kedatangan dicatat ke dalam basis data pada tabel kedatangan (daftardatang). Gambar 3-5 Diagram Sekuen untuk Fungsi Menambah User Admin yang telah login, dapat menambah akun user dengan memanggil method addusmenu(). 16

Gambar 3-6 Diagram Sekuen untuk Fungsi Mengganti Kata Kunci Aktor pengguna yang telah login dapat mengganti kata kunci dengan method editpassmenu() 3.4.4 Diagram Kelas Setelah perancangan dengan membuat diagram use case, dilakukan perancangan diagram kelas yang diberikan pada Lampiran. Diagram kelas ini menggambarkan variabel-variabel dan method-method yang digunakan dalam kelas pemrograman. 3.4.5 Identifikasi Pengguna Aplikasi Sebelum fungsi-fungsi utama aplikasi dijalankan, pengguna aplikasi diberikan halaman login. Untuk dapat memasuki aplikasi, pengguna terlebih dahulu menuliskan nama dan kata kunci. Proses tersebut dapat dijelaskan dengan Gambar 3-7 berikut ini; Gambar 3-7 Diagram Alur Identifikasi Pengguna 3.4.6 Pengaturan Koneksi Port Serial 17

Proses penyambungan dengan port serial dilakukan agar RWD dapat berkomunikasi dengan komputer menggunakan protokol komunikasi seperti yang sudah dijelaskan di Bab II. RWD dihubungkan ke komputer ke port Universal Serial Bus (USB) menggunakan kabel RS232. Dengan menginstall driver kabel RS232 terlebih dahulu, port yang digunakan RWD dapat dideteksi oleh komputer. Untuk menghubungkan RWD dengan komputer, ada beberapa parameter yang perlu diatur terlebih dahulu, yaitu: nama port (berupa angka), baudrate, databits, parity, stopbits, dan flow control. Pada Tugas Akhir ini, parameter yang digunakan diberikan pada Tabel 3-1; Tabel 3-1 Parameter Port Serial Port COM14 baudrate (bps) 57600 Databits 8 Parity NONE stop bits 1 flow control NONE Metode yang digunakan untuk pengaturan port serial ini mencakup proses - proses berikut ini: 1. Port serial yang terdeteksi komputer dicari dan didaftar 2. Port serial yang dipilih akan dibuka. Bila port tersebut sedang digunakan, akan dicetak pesan bahwa port sedang digunakan 3. Agar proses pengiriman dan penerimaan data ke RWD dapat dilakukan, dibutuhkan proses input output (I/O) untuk menangani aliran data (stream). Proses I/O pada Java menggunakan library java.io. Pembacaan data yang masuk ditangani method InputStream, dan untuk penulisan data ditangani method OutputStream 4. Setelah proses pembukaan port berhasil, dilakukan pengaturan parameter seperti pada Tabel 3.1 5. Kemudian ada method addeventlistener untuk mendengarkan respon yang diterima terminal. Proses ini mengirim semua respon yang didapat ke SerialPortEventListener dengan diagram alur, proses di atas dapat digambarkan sbb: 18

Gambar 3-8 Diagram Alir Pengaturan Koneksi Port Serial dan Server Basis data Selain dilakukan penyambungan dengan port serial, penyambungan dengan server basis data MySQL juga dilakukan sebelum proses-proses yang lain. Walaupun sebenarnya untuk mengakses hasil pembacaan basis data tidak perlu tersambung dengan port serial, semua proses yang akan dijalankan berikut ini sebelumnya sudah dilakukan penyambungan dengan port serial dan server basis data MySQL. 3.4.7 Pengaturan Koneksi Basis data Pada basis data, dilakukan pencatatan untuk penyimpanan data baru, memperbaharui data, dan melihat basis data. Data yang ada dibagi ke dalam dua tabel, tabel daftarnama yang berisi daftar nama, nomor kartu, dan nomor plat pengemudi truk, dan daftardatang yang isinya seperti daftarnama ditambah jam kedatangan tiap pengemudi. Struktur kedua tabel ditunjukkan pada Gambar 3-9. 19

Gambar 3-9 Struktur Tabel daftarnama dan Tabel daftardatang Parameter SN (yang bergaris bawah) dibuat unik, karena setiap kartu untuk satu pegawai, sehingga nomor serinya harus berbeda. Selain berisi data mengenai pegawai dan kartunya, basis data juga berisi data nama pengguna, kata kunci, dan status masing-masing, seperti pada Gambar 3-10: Gambar 3-10 Struktur Tabel Password Parameter user (yang bergaris bawah) dibuat unik, sehingga tidak ada 2 user yang sama. Sebelumnya, agar terhubung dengan server basis data, method initcon() dijalankan. Pada Gambar 3-11, untuk memperbaharui data, proses yang dijalankan sama, kecuali perintah SQL yang diubah menjadi update. Gambar 3-11 Diagram Alir Penyimpanan Data Baru 20

Lalu, untuk pencatatan kedatangan, dijalankan proses berikut ini: Gambar 3-12 Diagram Alir Pencatatan Kedatangan Proses di atas dilakukan berulang-ulang hingga proses pembacaan dihentikan. Sementara untuk menampilkan data kedatangan yang sudah tersimpan, dijalankan proses berikut ini: Gambar 3-13 Diagram Alir Penyajian Data dari Tabel daftardatang 21

Setelah data ditampilkan, pengguna dapat mencetak data yang ditampilkan secara langsung. Data yang data dalam tabel password juga dapat diubah, kata kunci dapat diubah, user juga dapat ditambah oleh admin. Sebelum memperoleh fungsi di atas, status pengguna sudah diidentifikasi terlebih dahulu, apakah itu user atau admin. Fungsi yang dapat dilakukan masing-masing sesuai dengan diagram use case pada Gambar 3-2. Untuk fungsi mengubah kata kunci, dilakukan proses berikut; Gambar 3-14 Diagram Alir Pengubahan Kata Kunci sementara untuk menambah user, dapat dilakukan aktor admin dengan proses seperti pada Gambar 3-15. Gambar 3-15 Diagram Alir Penambahan User 3.4.8 Pengolahan Data pada Kartu Ada beberapa hal yang dilakukan program dengan tag RFID, antara lain: membaca nomor serinya, membaca isi blok, dan menulis data ke dalam blok. 22

3.4.8.1 Pembacaan Nomor Seri Pembacaan nomor seri dijalankan method GetCardSerialNumber() dengan proses berikut ini; Gambar 3-16 Diagram Alir Pembacaan Nomor Seri Perintah yang diberikan sesuai dengan Tabel 2-3 pada Bab II. Kemudian dilakukan parsing terhadap buffer karena pada saat program dijalankan respon yang didapat ternyata masih dalam ASCII (lihat bagian yang diberi garis bawah). Isi buffer yang diterima setelah mengirim perintah salah satunya berupa..â..ã! yang dalam hexa adalah 00 04 E2 12 16 C3 21. setelah melihat perintah untuk membaca kartu dan mencocokkannya terhadap format penulisan perintah yang ada pada datasheet, dapat disimpulkan bahwa nomor seri sebenarnya adalah C31216E2. oleh karena itu, buffer yang didapat dibalik dahulu menjadi Ã..â dan diubah ke dalam hexa menjadi C31216E2. 3.4.8.2 Pembacaan Blok Pembacaan dilakukan dengan meminta nomor seri dengan perintah AB 00 AB. Setelah respon di-parsing, variabel tersebut akan digunakan untuk perintah pembacaan blok sesuai dengan Tabel 2-3 pada Bab II. Dari hasil pengamatan Serial Monitor, didapatkan hasil berikut ini: AC 06 02 C3 16 12 E2 00 8D..Ã..â. AC 06 merupakan perintah utama untuk membaca blok, 02 adalah blok ke-2 yang akan dibaca, lalu diikuti nomor seri, 00 dan XOR dari semua bilangan hexa (AC^06^02^C3^16^12^E2^00) menghasilkan 8D. 23

Jika perintah yang diberikan salah, tidak akan dikirimkan jawaban, hanya acknowledgement (ACK) dari permintaan sebelumnya. Proses tersebbtu diilustrasikan Gambar 3-17 Gambar 3-17 Diagram Alir Pembacaaan Blok 3.4.8.3 Penulisan Blok Untuk penulisan data ke dalam blok, hal yang dilakukan yang kurang lebih sama, perbedaannya hanya ada pada perintah, salah satu contohnya : AD 16 02 C3 16 12 E2 69 6E 61 20 63 75 74 65 20..Ã..âina cute 20 20 20 20 20 20 20 00 DD.Ý AD 16 adalah perintah untuk menulis, kemudian 02 adalah blok ke-2 yang akan dibaca, lalu diikuti SN, isi data yang akan ditulis dalam hexa, 00 dan XOR dari semua bilangan hexa AD^16^02^C3^16^12^E2^69^6E^61^20^63^75^74^65^20^ 20^20^20^20^20^20^20^00 menghasilkan DD. 24

Gambar 3-18 Diagram Alir Penulisan ke dalam Blok 3.4.9 Perancangan Kelas-Kelas Program Setelah merancang alur diagram program, maka dilakukan perancangan kelas-kelas pemrograman. Ada lima kelas publik yang dibangun, yaitu kelas Engine.java, yang menangani koneksi port serial dan pengolahan data kelas HalUtama.java, untuk antar muka utama kelas addus.java, antar muka untuk menambah user kelas editpass.java, antar muka untuk mengubah kata kunci kelas statusfrm.java, yang menangani identitas aktor pengguna Perancangan kelima kelas tersebut dijelaskan pada Tabel 3-2: Tabel 3-2 Perancangan Seluruh Method pada Kelas Pemrograman Engine.java public void Prosedur untuk mengambil nilai parameter dari masingmasing combobox dapatnilaiparameter() public Vector getport() Mendapatkan port serial yang ada pada komputer 25

public void setnilaiport(string nilaiport) Prosedur untuk mengambil nilai port dari ComboBox public String getnilaiport() Fungsi untuk mendapatkan nilai port public void setnilaibaud(int nilaibaud) Prosedur untuk mengambil nilai baud dari ComboBox public int getnilaibaud() Fungsi untuk mendapatkan nilai baud public void setdata(string Data) Prosedur untuk mengambil data bit dari ComboBox public String getdata() Fungsi untuk mendapatkan data bit public void setnilaidata(int nilaidata) Prosedur untuk mengubah data bit ke nilai data bit public int getnilaidata() Fungsi untuk mendapatkan nilai data bit public void setstop(string Stop) Prosedur untuk mengambil stop bit dari ComboBox public String getstop() Fungsi untuk mendapatkan stop bit public void setnilaistop(int nilaistop) Prosedur untuk mengubah stop bit ke nilai stop bit public int getnilaistop() Fungsi untuk mendapatkan nilai stop bit public void setparity(string Parity) Prosedur untuk mengambil parity bit dari ComboBox public String getparity() Fungsi untuk mendapatkan parity bit public void setnilaiparity(int nilaiparity) Prosedur untuk mengubah parity bit ke nilai parity bit public int getnilaiparity() Fungsi untuk mendapatkan nilai parity bit public void setflow(string Flow) Prosedur untuk mengambil flow dari ComboBox public String getflow() Fungsi untuk mendapatkan flow public void setnilaiflow(int nilaiflow) Prosedur untuk mengubah flow ke nilai flow public int getnilaiflow() Fungsi untuk mendapatkan nilai flow public void serialevent(serialportevent Prosedur untuk menjalankan event pada port serial serialportevent) public ThreadCekTagRFID() Thread untuk pembacaan tag otomatis public void Scanning() Prosedur untuk pembacaan SN tag public Vector getserialnumber(string sbuf) Fungsi untuk mendapatkan nomor seri dari buffer public void setbuffsn(vector temp) Prosedur untuk menggabung buffer public void getbaca(string sbuf) Prosedur untuk mendapatkan isi blok pada tag public void nyambungport(string nilaiport, int nilaibaud, int nilaidata, int nilaiparity, int Prosedur untuk membuka port yang akan digunakan nilaiflow) public void handshaking() Prosedur untuk handshaking dengan RWD public void ReaderInitialization() Prosedur untuk memilih tag RFID yang akan digunakan public void GetCardSerialNumber() Prosedur untuk memanggil getserialnumber() dan parsing nomor seri yang didapatkan public void Password() Prosedur untuk mengirim Passkey public void BacaNama() Prosedur untuk membaca blok nama public void BacaPlat() Prosedur untuk membaca blok nama public void Tulis(String Tulisan) Prosedur untuk menulis blok nama public void Buzzer() Prosedur untuk buzzer RWD public static String hexstream(string asciistream) Prosedur untuk mengubah format hexa ke ASCII HalUtama.java public HalUtama() Menjalankan kelas HalUtama public void setlookandfeel() Prosedur untuk membuat tampilan seperti Windows public void addport() Prosedur untuk menampilkan port serial yang didapat dalam combobox initcomponents() Prosedur untuk komponen form 26

logoutmenuactionperformed() addusactionperformed() passmenuactionperformed() cetakactionperformed() stopbuttonactionperformed() clearresponactionperformed() closeactionperformed() cariactionperformed() absenbuttonactionperformed() tulisactionperformed() bacanomoractionperformed() bacanamaactionperformed() bacakartuactionperformed() refreshbuttonactionperformed() okbuttonactionperformed() public void dapatnilaiparameter() public void initcon() public void JamMasuk() public void InsertNama(String nama, String nomor) public void UpdateNama(String nama, String nomor) public void LihatNama() public void CariDatang(String carinama) Editpass.java initcomponents() public void setlookandfeel() okgantiactionperformed() public void cek() addus.java initcomponents() okpassmouseclicked() okpassactionperformed() statusfrm.java public void setlookandfeel() public static void setaddu(boolean xd) public static boolean getaddu() public static void Prosedur untuk logout Prosedur untuk masuk menu tambah user Prosedur untuk masuk menu ubah password Prosedur untuk mencetak hasil dari basis data Prosedur untuk berhenti mengabsen otomatis Prosedur untuk menghapus tulisan respon Prosedur untuk menutup aplikasi Prosedur untuk mencari data dari basis data Prosedur untuk memulai absen Prosedur untuk menulis tag Prosedur untuk membaca blok nomor plat dalam tag Prosedur untuk membaca blok nama dalam tag Prosedur untuk membaca tag Prosedur untuk me-refresh port yang tersedia Prosedur untuk terhubung dengan port serial Prosedur untuk mendapatkan parameter port Prosedur untuk berhubungan dengan MySQL Prosedur untuk membaca tanggal dan jam sistem Prosedur untuk menambah data ke tabel daftarnama Prosedur untuk memperbaharui data ke tabel daftarnama Prosedur untuk mencari data dari tabel daftarnama berdasar SN Prosedur untuk mencari data dari tabel daftardatang berdasar nama Prosedur untuk mengatur komponen dalam form addus Prosedur untuk membuat tampilan seperti Windows Prosedur untuk menjalankan penggantian password Prosedur untuk mengganti password pada basis data Prosedur untuk mengatur komponen dalam form addus Prosedur untuk menambah user Prosedur untuk menambah user Prosedur untuk membuat tampilan seperti Windows Prosedur untuk mengambil hak akses pengguna Fungsi untuk mendapatkan hak akses pengguna Prosedur untuk mengambil status pengguna 27

setuser(string usr) public static String getuser() Fungsi untuk mendapatkan status pengguna public static void iduser(string idusr) Prosedur untuk mengambil nama pengguna public static String getiduser() Fungsi untuk mendapatkan nama pengguna 28