29 BAB 3 PERANCANGAN SISTEM 3.1 Blok Diagram Sistem Blok diagram sistem absensi ini dapat dilihat pada gambar 3.1 di bawah ini. Gambar 3.1. Diagram Blok Sistem Fungsi – fungsi dari blok diatas adalah sebagai berikut : a. Fungsi dari database server adalah menyimpan data absensi. Data tersebut berupa Nama, ID, jadwal kerja, jam masuk, jam keluar, keterlambatan, dan tanggal absen. Data absen tersebut diproses ketika modul Dallas DS80C400 menerima input dari barcode reader dan mengirimkannya ke server. Dan server akan memberikan data hasil proses data absen tersebut di kirim kembali ke modul dallas DS80C400 untuk ditampilan ke LCD. 30 b. Fungsi Dallas DS80C400 adalah sebagai interface network microcontroller yang akan menerima data dari komputer ke sistem minimum atau sebaliknya melalui koneksi Ethernet ( LAN ). c. Fungsi sistem minimum AT89S52 adalah sebagai interface pengelola data serial dari input dari sensor menjadi data yang siap digunakan dan juga menerima input dari sistem TINI untuk menjadi informasi yang dapat ditampilkan. d. Fungsi LCD adalah menampilkan informasi mengenai waktu dan tanggal saat itu, serta menampilkan hasil proses server berupa nama dan status dari absennya. Selain itu LCD digunakan untuk menampilkan informasi kesalahan-kesalahan pada input, seperti misalnya ’Id anda tidak terdaftar’. e. Fungsi Barcode Reader adalah sebagai pembaca input berupa data barcode yang dimiliki oleh setiap anggota pada kartu identifikasinya. Dimana data dari kartu identifikasi tersebut merupakan kode unik dari anggota tersebut. 3.2 Perancangan Perangkat Keras Perancangan perangkat keras dibagi ke dalam modul – modul sebagai berikut : 3.2.1 Rangkaian Sistem minimum AT89S52 Perancangan sistem minimum berbasiskan AT89S52 berfungsi sebagai pusat pemrosesan output dan input dari modul Dallas DS80C400. Dimana modul Dallas ini hanya memiliki port serial untuk berkomunikasi dengan device, sedangkan inputnya adalah data hasil sensor barcode. 31 3.2.1.1 Rangkaian komunikasi konversi protokol Serial dengan protokol RS-232 Dalam suatu sistem, jika terdapat beberapa protokol yang berbeda maka akan dibutuhkan suatu converter agar semua bagian dari sistem dapat saling mengenali informasi yang diberikan. Oleh karena itu dibutuhkan rangkaian konversi, seperti misalnya: Gambar 3.2 Rangkaian RS-232 Sistem komunikasi antara Dallas DS80C400 dengan sistem minimum AT89S52 adalah menggunakan komunikasi secara serial. Protokol yang digunakan adalah protokol RS – 232. Dengan rangkaian diatas maka informasi yang dikirmkan oleh AT89S52 dapat dimengerti oleh Dallas. 32 3.2.1.2 Rangkaian LCD dengan sistem minimum AT89S52 LCD yang dipakai berupa sebuah LCD tipe karakter yang memiliki display 20 karakter x 4 baris. Modul ini terhubung langsung dengan sistem minimum AT89S52. Gambar 3.3 Pin pada modul LCD LCD tersebut akan digunakan untuk menampilkan berbagai informasi yang perlu untuk ditampilkan 3.2.1.3 Rangkaian Barcode dengan sistem minimum Pada Barcode Scanner protokol yang digunakan adalah protokol PS/2 dan protokol ini agak berbeda dengan protokol serial pada umumnya maka pada bagian ini akan digambarkan cara dan sistem penggunaannya. 33 Pin no Fungsi 1 Data 2 Reserved 3 Ground 4 + 5 Volts 5 Clock 6 Reserved Gambar 3.4 Pin pada konektor PS/2 Barcode yang digunakan dalam perancangan sistem, menggunakan keyboard mode, dimana sistem pengiriman data adalah secara serial dan synchronous. Sehingga agar dapat melakukan komunikasi, maka pin ke 5 yaitu pin untuk clock dihubungkan dengan interrupt pada modul AT89S52 dan pin data dihubungkan dengan pin P2.0 (port 2.0). Ketika barcode mendeteksi adanya data maka barcode akan mengirimkan sinyal ke sistem minimum sebagai berikut Gambar 3.5 Pengiriman paket data Perubahan clock dari high ke low ( falling edge ) menandakan adanya data sehingga dengan perubahan ini maka akan memberi sinyal interrupt kepada sistem minimum agar mengambil data dari pin 2.0. Format pengiriman datanya adalah start bit, data ( 8 bit ), parity bit dan stop bit, seperti yang terlihat pada gambar 3.5 . 34 3.2.2 Rangkaian Dallas DS80C400 Modul kedua selain sistem minimum AT89S52 adalah Dallas TINI DS80C400. Bahasa pemograman yang digunakan untuk modul ini adalah Java, dimana pada TINI pemrograman dilakukan agar packet pengiriman data melalui protokol TCP dapat di ubah kedalam format RS-232 dan sebaliknya paket data serial dapat diubah kedalam format yang sesuai dengan protokol TCP agar dapat dikenali oleh sistem lain yang ada dalam jaringan. 3.2.2.1 Rangkaian serial DS80C400 Sesuai dengan datasheet, Mikrokontroller DS80C400 ini terdiri atas 3 port serial, 1 port CAN, dan 1 port 1-wire. Namun pada modul DSTINIS400 hanya ada dua buah serial port yang aktif yaitu serial 0 dan 4, yang telah terintegrasi dalam modul tersebut. Pada sistem ini port serial yang digunakan adalah serial 4. Gambar 3.6 Modul TINI dan port serial 35 3.3 Perancangan Perangkat Lunak Perancangan perangkat lunak disini adalah perancangan program yang dibuat untuk mengirimkan data yang dimulai dari modul TINIDS80X400 menuju server dan sebaliknya. Sebagian besar dari perangkat lunak untuk komunikasi dibuat dalam bahasa pemrograman java. Sementara perangkat lunak yang digunakan untuk keamanan dibuat dalam pemrograman visual basic 6.0. 3.3.1 Perancangan Serial to Ethernet Program ini digunakan untuk mengkonversikan dari data serial yang berupa byte menjadi data yang sesuai dengan protokol TCP sehingga data dapat dikirimkan melalui protokol tersebut. Pada dasarnya program ini bertujuan untuk membuka saluran koneksi antara TINIDS80X400 dengan modul serial dan juga membuka saluran koneksi logical antara TINIDS80X400 dengan komputer server yang digunakan untuk mengolah database. Adapun diagram alir program ini adalah sebagai berikut : 36 Gambar 3.7 Diagram alir Serial to Ethernet utama Diagram tersebut menunjukan aliran kerja dari program Serial to ethernet yang terdapat pada modul TINI DS80X400. Dimana pada bagian awal, program membuat suatu koneksi menuju serial dan menuju ethernet dimana pada inisialisasi telah ditentukan nilai-nilai variabel yang ingin diterapkan seperti antara lain pada koneksi serial ditetapkan nilai baud rate yaitu sebesar 9600 bps, jumlah bit 8, stopbits 1, dan nilai parity none, nilai tersebut diset berdasarkan default setting dari data barcode scanner yang ada. Sementara untuk koneksi ethernet, yang diset disini adalah IP address dari server dan nomor port yang digunakan untuk melakukan koneksi dengan server. 37 Jika terdapat koneksi dengan server maka dibuatlah 3 thread atau program mandiri yang memiliki fungsi sebagai berikut: 1. Jam digital Start Status Run? Tidak End thread Ya Get Date Day-month-year-time Send to Serial line Gambar 3.8 Diagram alir jam digital Bagian program ini (gambar 3.8) berfungsi untuk menampilkan tanggal, bulan, tahun, jam, serta menit pada layar LCD dengan cara mengambil date dari real time clock yang terdapat pada TINI dan mengirimkannya melalui jalur serial agar dapat diproses oleh AT89S52 agar dapat ditampilkan pada LCD. 38 2. Serial Writer Gambar 3.9 Diagram alir Serial Writer Diagram alir diatas (gambar 3.9) merupakan diagram alir bagian program yang dibuat untuk menerima data dari server melalui ethernet yang berupa Stream of String dan mengolahnya untuk menjadi sekelompok byte yang dikirmkan satu persatu menuju AT89S52 untuk diolah dan ditampilkan, data 39 yang dimaksud disini adalah berupa input balik atau tanggapan terhadap input yang berupa nomor identifikasi pada barcode. Karena port komunikasi serial hanya satu sedangkan kedua thread diatas (jam digital dan serial writer) menggunakan port yang sama (serial 4). Maka perlu dibuat distribute lock, dimana ketika program Jam Digital sedang mengakses port serial untuk mengirimkan data berupa tampilan waktu, maka program Serial Writer tidak diperbolehkan untuk melakukan akses melalui port serial tersebut, agar data yang dikirimkan tidak saling bertumpukan. Jika program Serial Writer ingin menggunakan port serial untuk menulis/mengirimkan data yang didapat dari port ethernet, maka program Serial Writer akan memberi tahu program Jam Digital bahwa ia ingin menggunakan port tersebut, sehingga setelah program Jam digital selesai melakukan satu fungsi rutinnya (mengirimkan string berisi keterangan waktu), lock (hak akses terhadap port serial 4) diberikan pada Serial Writer sehingga program dapat mengirimkan data yang didapatnya dari port ethernet menuju modul AT89S52, dan setelah pengiriman data selesai maka lock kembali diserahkan pada Jam Digital, sehingga program Jam Digital dapat kembali mengirimkan data berisi keterangan waktu melalui serial port 4 untuk ditampilkan pada modul LCD melalui modul AT89S52. 3. Serial Reader Diagram alir pada gambar 3.10 menggambarkan cara kerja bagian program yang digunakan untuk menerima input dari serial dan meneruskannya pada ethernet. Prosesnya adalah sebagai berikut, pertama dengan cara membaca satu persatu byte yang dikirimkan oleh modul 40 AT89S52 dan kemudian mengelompokkannya dalam sebuah string, untuk dikirimkan menuju server setelah semua byte selesai dikirim oleh modul AT89S52. Data berbentuk string tersebut dikirimkan melalui local dan remote port yang terbentuk pada saat koneksi client-server antara TINI dengan server dimulai. Adapun nomor local port tersebut dari modul adalah tetap selama koneksi berlangsung, dan akan berbeda pada koneksi berikutnya. Gambar 3.10 Diagram alir Serial Reader 41 3.3.2 Perancangan program MultiThreadServer Program ini digunakan pada komputer server untuk menerima dan mengolah informasi yang dikirimkan oleh TINI. Program ini dibagi menjadi dua bagian utama yaitu bagian komunikasi dengan device dan bagian komunikasi dengan aplikasi My SQL. 3.3.2.1 Komunikasi dengan device (TINI) Bagian program ini (diagram alir seperti terlihat pada gambar 3.11) berawal dengan dibukanya port untuk mendengarkan permintaan koneksi dari client (TINI), dimana jika terdapat request atau permintaan dari client, maka akan dibuat program mandiri untuk komunikasi client-server untuk masing masing client. Pada masing-masing koneksi client-server, program berfungsi untuk menerima data dari TINI yang dikirimkan melalui ethernet dan menyimpannya dalam suatu buffer string yang akan diproses pada program bagian koneksi dengan My SQL. Selain itu bagian program SerialToEthernet ini mengirimkan tanggapan balik hasil pengolahan dengan database di server, kepada client. 42 Gambar 3.11 Diagram alir MultiThreadServer bagian 1 43 3.3.2.2 Koneksi dengan My SQL Fungsi bagian koneksi dengan My SQL (gambar 3.12) ini adalah mengolah string yang diterima oleh bagian pertama, dengan cara membuka koneksi dengan database My SQL pada port aplikasi yang dihubungkan dengan program oleh driver yang disediakan My SQL. Lalu selanjutnya informasi yang diterima akan dibandingkan dengan yang terdapat pada database, sehingga akan diperoleh informasi berupa nama dan status absensi sebelumnya pada hari yang sama. Dan jika informasi tersebut dianggap sah (terdaftar pada database) maka akan dilakukan update pada database tersebut. Dan apabila tidak sesuai, maka tanggapan yang sesuai akan diberikan. Setelah semua proses dengan database selesai maka koneksi dengan database akan diputus dan kembali ke bagian pertama untuk melakukan komunikasi dengan client lagi. Diagram alir bagian program pengolah informasi ini dapat dilihat pada gambar 3.12. 44 Gambar 3.12 Diagram alir MultiThreadServer bagian 2 45 3.3.3 Perancangan perangkat lunak keamanan – firewall Untuk mengatasi masalah keamanan dimana agar tidak ada user selain TINI yang dapat mengakses program sistem pada komputer server, maka dibuatlah sebuah program firewall sederhana menggunakan pemrograman visual basic yang ditujukan khusus untuk sistem absensi ini. Firewall ini menggunakan sistem IPtable dimana module yang digunakan diambil dari open license yang ada. Berikut adalah Diagram alir program ini : Gambar 3.13 Diagram alir firewall 46 Program diatas berfungsi dengan cara membandingkan antara sebuah IP address yang baru masuk ke dalam IP table, dengan yang terdapat dalam list yang dibuat. Alamat IP hanya akan diperiksa jika alamat IP tersebut berusaha mengakses socket/port yang disediakan khusus untuk program sistem. Jika alamat IP tersebut berusaha mengakses port khusus tersebut, maka alamat IP tersebut akan dibandingkan dengan database alamat IP yang dibuat pada list yang disediakan. Jika terdapat dalam list maka berarti alamat IP tersebut diperbolehkan untuk mengakses sehingga akan dibiarkan. Sebaliknya jika tidak terdapat dalam list maka IP tersebut akan dihapuskan dari IP table sehingga komunikasi antara server dengan komputer pada alamat itu akan diblok sehingga akses untuk program sistem tidak akan diberikan. 3.3.4 Perancangan Database Nama Database : absen Nama Tabel : anggota Keterangan : Tabel yang berisi data anggota Tabel 3.1 Tabel anggota Nama Field Type Key Keterangan ID varchar(10) Primary Key Menyimpan No. ID Anggota Nama varchar(30) - Menyimpan Nama Anggota 47 Nama Tabel : jadwal Keterangan : Tabel yang berisi jadwal kehadiran setiap anggota Tabel 3.2 Tabel jadwal Nama field Type Key ID Date Hari Time Primary Key Jadwal_masuk Time - Jadwal_keluar Time - Nama Tabel : absen Keterangan : Tabel yang berisi data absensi setiap anggota Primary Key, Foreign Key Keterangan Menyimpan No. ID anggota Menyimpan jadwal absen anggota berdasarkan hari Menyimpan jadwal absen jam masuk anggota Menyimpan jadwal absen jam keluar anggota Tabel 3.3 Tabel absen Nama field Type Key ID Date Cur_date Time Primary key Jam_masuk Time - Jam_keluar Time - Status Varchar(7) - Keterlambatan Int(11) Primary Key, Foreign Key Keterangan Menyimpan No. ID anggota Menyimpan tanggal pada saat absen dilakukan Menyimpan absen jam masuk anggota Menyimpan absen jam keluar anggota Menyimpan status absen anggota Menyimpan jumlah keterlambatan anggota 48 Gambar 3.14 Relasi antar tabel 3.3.5 Perancangan GUI (graphical user interface) Pada sistem ini terdapat dua GUI, yaitu GUI Database yang menggunakan bahasa pemrograman Java dan GUI Firewall yang menggunakan bahasa pemograman Visual Basic 6.0. GUI Database berfungsi untuk memudahkan user dalam mengakses database, sedangkan GUI Firewall digunakan untuk membatasi akses host ke sistem absensi ini berdasarkan nomor port dan IP address. Adapun rancangan tampilan GUI tersebut adalah sebagai berikut: 49 Gambar 3.15 Tampilan GUI Menu Utama untuk mengakses database MySQL Gambar 3.16 Tampilan GUI Pencarian Data untuk mengakses database MySQL 50 Gambar 3.17 Tampilan GUI untuk firewall yang menunjukkan koneksi yang terjadi Gambar 3.18 Tampilan GUI firewall bagian IP address dan port list 51 Gambar 3.19 Tampilan GUI firewall bagian log untuk menunjukan status dan report dari semua koneksi 3.3.6 Rancang Bangun Sistem Pada bagian ini akan digambarkan bagaimana bentuk dari sistem ini baik berupa blok diagramnya maupun bentuk keseluruhannya nantinya. Gambar 3.20 Blok diagram sistem 52 Gambar 3.21 Ukuran perancangan sistem Adapun perancangan sistem yang dibuat secara keseluruhan adalah tampak pada gambar 3.20 – 3.23 dilihat dari sisi samping, depan, maupun atas dengan ukuran-ukuran bentuk sistem yang dibuat Gambar 3.22 Perancangan Sistem tampak samping kiri Gambar 3.23 Perancangan Sistem tampak samping kanan 53 Gambar 3.24 Perancangan Sistem tampak depan Gambar 3.25 Perancangan Sistem tampak atas