Perancangan Sistem Transaksi Pembayaran Perparkiran Menggunakan RFID (Radio Frequency Identification).
ii
ABSTRAK
RFID (Radio Frequency Identification) adalah teknologi yang digunakan
untuk membaca data pada RFID tag atau card. Teknologi RFID itu sendiri terfokus
pada identifikasi sebuah object melalui rangkaian kode yang hanya dapat dibaca
reader dengan software tertentu. RFID bekerja dengan cara, reader memancarkan
medan magnet dengan frekuensi tertentu yang konstan, kemudian energi tersebut
digunakan tag atau card sebagai sumber energi untuk mengirimkan serangkaian
angka yang unik dan diterima oleh RFID reader. RFID diperkirakan akan
menggantikan penggunaan barcode yang umum dipakai untuk memberi label harga
barang. RFID dengan cepat mendapat perhatian karena kemampuannya dalam
melacak objek yang bergerak. Seiring dengan perkembangan teknologi, maka RFID
sendiri pun juga berkembang sehingga nantinya penggunaan RFID bisa digunakan
untuk kehidupan sehari-hari.
Oleh karena itu, topik tugas akhir ini merancang sistem transaksi pembayaran
perparkiran menggunakan RFID diambil. Kemudahan dalam transaksi perparkiran
menjadi salah satu kelebihan sistem ini. Terdapat beberapa form didalam aplikasi
yang dapat membantu pemakaian dari pihak operator.
Mencatat semua transaksi pada database dan mengolahnya merupakan fungsi
utama dari aplikasi ini. Percobaan dilakukan dengan menggunakan 5 kartu
transponder yang memiliki data pada database berbeda-beda. Dengan percobaan
(2)
iii
ABSTRACT
RFID (Radio Frequency Identification) is technology used to read data on
RFID tags or cards. RFID technology itself is focused on identifying an object
through a series of codes that can only be read reader with certain software. RFID
works in a way, reader emits a magnetic field with a certain frequency is constant,
then the energy used tag or card as an energy source to deliver a unique set of
numbers and received by the RFID reader. RFID is expected to replace the use of a
barcode which is commonly used to label the price of goods. RFID quickly get
attention for his ability to track moving objects. Along with technological
development, then the RFID itself also expanded so that future use of RFID can be
used for everyday life.
Therefore, this final topic of design of the parking payment transaction system
using RFID is taken. Ease of parking transactions become one of the advantages of
this system. There are several forms in the application that can help the use of the
operator.
Record all transactions on the database and process them are the main
functions of this application. Experiments carried out using five transponders card
that has data on different databases. With the experimental system that has been done
successfully.
(3)
iv
DAFTAR ISI
KATA PENGANTAR ... i
ABSTRAK ... ii
ABSTRACT ... iii
DAFTAR ISI ... iv
DAFTAR GAMBAR ... vii
DAFTAR TABEL ... ix
DAFTAR SINGKATAN ... x
BAB 1 PENDAHULUAN ... 1
1.1
LATAR BELAKANG ... 1
1.2
IDENTIFIKASI MASALAH ... 2
1.3
TUJUAN ... 2
1.4
PEMBATASAN MASALAH ... 3
1.5
SISTEMATIKA PENULISAN... 3
BAB 2 LANDASAN TEORI ... 5
2.1
RFID (RADIO FREQUENCY IDENTIFICATION) ... 5
2.1.1
ID-12 ... 7
2.1.2
FORMAT DATA ... 8
2.1.3
TRANSPONDER BERUPA KARTU ... 9
(4)
v
2.3
PORT PARALEL ... 11
2.4
ULN2803 ... 13
2.5
MOTOR STEPPER ... 14
2.5.1
HALF STEP... 15
2.5.2
FULL STEP ... 16
2.6
BORLAND DELPHI 7 ... 16
2.7
INTERBASE IBCONSOLE ... 17
2.8
MODUL INPOUT32.DLL ... 18
BAB 3 PERANCANGAN DAN REALISASI ALAT ... 20
3.1
DIAGRAM BLOK ... 20
3.2
SPESIFIKASI PERANCANGAN ... 20
3.3
RANGKAIAN RFID STARTER KIT ... 22
3.4
RANGKAIAN PALANG PINTU ... 24
3.5
PERANCANGAN PERANGKAT LUNAK ... 25
3.5.1
BORLAND DELPHI 7 ... 26
3.5.2
DATABASE ... 27
3.5.2.1
PENGGUNA ... 28
3.5.2.1.1
MEMBER ... 28
3.5.2.1.2
NON MEMBER ... 29
3.6
PERANCANGAN APLIKASI TAMPILAN ... 30
3.7
CARA KERJA ALAT ... 33
BAB 4 UJI COBA DAN PEMBAHASAN ... 36
(5)
vi
4.2
PENGGUNAAN ALAT ... 37
4.3
FUNGSI FORM LOG ... 38
4.4
FUNGSI FORM DATA ... 40
4.5
FUNGSI FORM PENDAFTARAN ... 42
4.6
FUNGSI FORM PENGISIAN SALDO ... 44
BAB 5 KESIMPULAN DAN SARAN ... 47
5.1
KESIMPULAN ... 47
5.2
SARAN... 47
DAFTAR PUSTAKA ... 49
LAMPIRAN A
LISTING PROGRAM BORLAND DELPHI 7 ... A-1
LAMPIRAN B
DATA KOMPONEN RFID STARTER KIT... B-1
LAMPIRAN C
DATA KOMPONEN ID-12 ... C-1
LAMPIRAN D
DATA KOMPONEN ULN2803 ... D-1
(6)
vii
DAFTAR GAMBAR
Gambar 2.1 Tampilan ID-12 ... 8
Gambar 2.2 Kartu transponder ... 9
Gambar 2.3 PORT serial dilihat dari komputer... 10
Gambar 2.4 PORT Paralel ... 12
Gambar 2.5 ULN2803 ... 14
Gambar 2.6 Motor stepper ... 15
Gambar 3.1 Diagram blok sistem ... 20
Gambar 3.2 Rangkaian RFID starter kit ... 22
Gambar 3.3 Alokasi pin J7 ... 23
Gambar 3.4 Rankaian penggerak palang pintu menggunakan motor stepper ... 25
Gambar 3.5 File modul inpout32.DLL ... 27
Gambar 3.6 Tampilan utama database saat dijalankan ... 28
Gambar 3.7 Tampilan rancangan Form Log ... 31
Gambar 3.8 Tampilan rancangan Form Data ... 31
Gambar 3.9 Tampilan rancangan Form Pengisian Saldo ... 32
Gambar 3.10 Tampilan rancangan Form Pendaftaran... 32
Gambar 3.11 Diagram alir pembacaan kode tag RFID memasuki perparkiran ... 34
Gambar 3.12 Diagram alir pembacaan kode tag RFID keluar perparkiran ... 35
Gambar 4.1 Perangkat sistem transaksi pembayaran perparkiran RFID ... 36
(7)
viii
Gambar 4.3 Tampilan Form Data ... 40
Gambar 4.4 Tampilan Form Pendaftaran ... 42
Gambar 4.5 Tampilan Form Pengisian Saldo ... 45
(8)
ix
DAFTAR TABEL
Tabel 2.1
Format data Wiegend 26 bit ... 8
Tabel 2.2
Format data ASCII ... 9
Tabel 2.3
Format data Magnetic Emulation ... 9
Tabel 2.4
Pemberian pulsa putaran Half Step ... 15
Tabel 2.5
Pemberian pulsa putaran Full Step ... 16
Tabel 2.6
Tipe data Interbase ... 18
Tabel 3.1
Konfigurasi format data ... 24
Tabel 3.2
Desain Tabel master Member ... 29
Tabel 3.3
Desain Tabel master Non Member ... 30
Tabel 4.1
Pengujian Form Log ... 39
Tabel 4.2
Pengujian Form Data ... 41
Tabel 4.3
Pengujian Form Pendaftaran ... 44
(9)
x
DAFTAR SINGKATAN
CPU
: Central Processing Unit
IC
: Integrated Circuit
I/O
: Input / Output
LPT
: Line PrinTer
LSB
: Least Significant Bit
MSB
: Most Significant Bit
PC
: Personal Computer
RD
: ReaD
RFID
: Radio Frequency Identification
(10)
FORM LOG
function hextoint(input : string):longint; var
frmlog: Tfrmlog; data : byte; counter : byte;
check_sum,nomor,t,b : string; flag_equ : boolean;
sent, recv : byte; a:integer;
j,k,l,isi,hasil,m,n,o:double; implementation
uses dm2;
//==============Menggunakan fungsi untuk paralel port======================= function Out32(wAddr:word;bOut:byte):byte; stdcall; external 'inpout32.dll';
function Inp32(wAddr:word):byte; stdcall; external 'inpout32.dll';
//================Untuk mengkonversi data masuk ASCII menjadi decimal========== function tFrmlog.hextoint(input : string):longint;
var
c,i : longint; input1 : string; begin
c:=0; input1:='';
for i:=length(input) downto 1 do input1:=input1+input[i]+''; input1:=uppercase(input1);
for i:=1 to length(input1) do begin
if (input1[i] in ['A'..'F'])and(i>1)then
c:=((ord(input1[i])-ord('A')+10) shl (4*(i-1)))or c else
if (input1[i] in ['0'..'9'])and(i>1)then
c:=((ord(input1[i])-ord('0')) shl (4*(i-1))) or c else
if (input1[i] in ['A'..'F'])and(i=1)then c:=(ord(input1[i])-ord('A')+10) or c else
if (input1[i] in ['0'..'9'])and(i=1)then c:=(ord(input1[i])-ord('0')) or c; end;
result:=c; end;
procedure Tfrmlog.Button1Click(Sender: TObject); begin
frmlog.close; comport1.close; end;
procedure Tfrmlog.FormShow(Sender: TObject); begin
memo1.Visible:=false; edit1.Visible:=false; comport1.Open; nomor:='';
(11)
check_sum:=''; counter:=0; memo1.clear; edpar2.visible:=false; edpar.visible:=false; edisi.visible:=false; edit2.visible:=false; edhasil.visible:=false; edhasilwk.visible:=false; edtampilwk.visible:=false; end;
//============Membaca data pada Serial ===================== procedure Tfrmlog.ComPort1RxChar(Sender: TObject; Count: Integer); var i: integer;
begin
for i:=0 to count do begin
comport1.Read(data,1); inc(counter);
case counter of 1:
if data = 2 then begin memo1.Clear; memo1.lines.add('Start OK'); end else begin nomor:=''; check_sum:=''; counter:=0; end; 12,13: begin check_sum:=check_sum+chr(data);
memo1.lines.add('Checksum '+inttostr(counter-12)+' = '+inttohex(data,2)); end;
16: begin
if data = 3 then begin
label4.caption:='No ID Member : '+inttostr(hextoint(nomor)); edit1.Text:=inttostr(hextoint(nomor));
memo1.lines.add('End Data');
//=====================update data parity============================ With dm.qproses Do
Begin Close; Sql.Clear;
sql.Add('select parity from datamember where noid=:bb '); prepare; parambyname('bb').AsString:=edit1.Text; Open; edpar.Text :=(Fields[0].Asstring); End; //============parity=============== j:=strtofloat(edpar.Text);
if j=0 then begin
(12)
k:=1;
//=============update masuk============ With dm.qalter Do
Begin Close; Sql.Clear;
Sql.Add('update datamember set tanggal=:ta,' + 'jammasuk=:jm,' + 'waktu=:wk where noid=:mr'); Prepare;
ParamByname('ta').Asdate := strtodate(edit3.Text); paramByname('jm').Astime := strtotime(edit4.Text); paramByname('wk').Asfloat := strtofloat(edit2.Text); ParamByname('mr').AsString := edit1.Text;
ExecSql; end; dm.trparkiran.Commit; end else begin k:=0; //======pembayaran======== With dm.qproses Do
Begin Close; Sql.Clear;
sql.Add('select waktu,isi from datamember where noid=:bb '); prepare; parambyname('bb').AsString:=edit1.Text; Open; edtampilwk.Text :=(Fields[0].Asstring); edisi.Text:=(Fields[1].Asstring); end; l:=strtofloat(edit2.Text); n:=strtofloat(edtampilwk.Text); isi:=strtofloat(edisi.Text); m:=l-n;
if m=0 then begin hasil:=isi-(m+1500); end else begin hasil:=isi-(m*1500); end; edhasilwk.Text:='0'; edhasil.Text:=floattostr(hasil); //======update keluar============= With dm.qalter Do
Begin Close; Sql.Clear;
Sql.Add('update datamember set jamkeluar=:jm,' + 'isi=:is,' + 'waktu=:wk where noid=:mr');
Prepare;
paramByname('is').Asfloat := strtofloat(edhasil.Text); paramByname('wk').Asfloat := strtofloat(edhasilwk.Text); paramByname('jm').Astime := strtotime(edit4.Text); ParamByname('mr').AsString := edit1.Text; ExecSql;
(13)
dm.trparkiran.Commit; end;
edpar2.text:=floattostr(k); With dm.qalter Do Begin
Close; Sql.Clear;
Sql.Add('update datamember set parity=:pa where noid=:mr'); Prepare;
ParamByname('pa').Asfloat := strtofloat(edpar2.Text); ParamByname('mr').AsString := edit1.Text;
ExecSql; end;
dm.trparkiran.Commit;
//========================data member=================== With dm.qproses Do
Begin Close; Sql.Clear;
sql.Add('select NOID,isi,NAMA,JAMMASUK,JAMKELUAR,WAKTU,PARITY from datamember');
Sql.Add('Where NOID Like :kb'); Prepare;
ParamByName('kb').AsString := '%'+edit1.text+'%'; Open; End; edpar.clear; edhasil.clear; edpar2.clear; edisi.clear; edtampilwk.clear; //====================penggerak motor================= Timer4.Enabled:=true; end else
memo1.lines.add('End Data Invalid'); nomor:=''; check_sum:=''; counter:=0; end; 4..11: begin nomor:=nomor+chr(data);
memo1.lines.add('Data ke '+inttostr(counter-4)+' = '+inttohex(data,2)); end; end; sleep(50); application.ProcessMessages; end; end;
procedure Tfrmlog.btmulaiClick(Sender: TObject); begin btstop.Visible:=true; btmulai.Visible:=false; timer1.Enabled:=true; edpar.clear; edhasil.clear;
(14)
edpar2.clear; edisi.clear; a:=0;
edit2.text:=inttostr(a);
{==== data non member======= } With dm.qoper Do
Begin Close; Sql.Clear;
sql.Add('select * from datanon'); Open;
End; end;
procedure Tfrmlog.Timer1Timer(Sender: TObject); begin inc(a); edit2.text:=inttostr(a); timer2.Enabled:=true; timer1.Enabled:=false; end;
procedure Tfrmlog.Timer2Timer(Sender: TObject); begin inc(a); edit2.text:=inttostr(a); timer1.Enabled:=true; timer2.Enabled:=false; end;
procedure Tfrmlog.btstopClick(Sender: TObject); begin btstop.Visible:=false; btmulai.Visible:=true; timer1.Enabled:=false; timer2.Enabled:=false; end;
procedure Tfrmlog.Timer3Timer(Sender: TObject); var time1: Tdatetime;
var date1: Tdatetime; begin
Time1 := Time;
edit4.Text:=FormatDateTime('hh:nn',time1); date1:=date;
edit3.Text:=formatdatetime('mm/dd/yyyy',date1); end;
procedure Tfrmlog.Timer4Timer(Sender: TObject); var x:integer;
begin
label7.caption:='Status Portal : NAIK'; x:=0;
while x<=50 do begin
Out32 ($378,01); Out32 ($378,02); Out32 ($378,04); Out32 ($378,08);
(15)
x:=x+1; end;
Timer5.Enabled:=true; end;
procedure Tfrmlog.Timer5Timer(Sender: TObject); begin
label7.caption:='Status Portal : DIAM'; timer4.enabled:=false;
Timer6.Enabled:=true; end;
procedure Tfrmlog.Timer6Timer(Sender: TObject); var x:integer;
begin
timer5.enabled:=false;
label7.caption:='Status Portal : TURUN'; x:=0;
while x<=50 do begin Out32 ($378,08); Out32 ($378,04); Out32 ($378,02); Out32 ($378,01); x:=x+1; end;
label7.caption:='Status Portal : DIAM'; timer4.enabled:=false;
Timer6.Enabled:=false; end;
end.
FORM DATA
procedure TFormData.FormShow(Sender: TObject); begin
datetimepicker1.Date :=now; datetimepicker2.Date :=now;
//=======tampilkan semua data member======= With dm.qoper Do
Begin Close; Sql.Clear;
sql.Add('select * from datamember'); Open;
End;
//============================= end;
procedure TFormData.btallmClick(Sender: TObject); begin
//=======tampilkan semua data member======= With dm.qoper Do
Begin Close; Sql.Clear;
(16)
sql.Add('select * from datamember'); Open;
End;
//============================= end;
procedure TFormData.btcariClick(Sender: TObject); begin
if rbmember.Checked=true then begin
//jika combobox index=0====================================== if cmbcari.ItemIndex = 0 then
begin
With dm.qproses Do Begin
Close; Sql.Clear;
sql.Add('select * from datamember where noid=:bb '); prepare; parambyname('bb').AsString:=edcari.Text; Open; End; //================================================== end;
//jika combobox index=1====================================== if cmbcari.ItemIndex = 1 then
begin
//menampilkan data pembelian berdasarkan bon jual With dm.qoper Do
Begin Close; Sql.Clear;
sql.Add('select * from datamember where nama=:bb '); prepare; parambyname('bb').AsString:=edcari.Text; Open; End; //================================================== end;
if cmbcari.ItemIndex = 2 then begin
With dm.qoper Do Begin
Close; Sql.Clear;
sql.Add('select * from datamember where isi=:bb '); prepare; parambyname('bb').AsString:=edcari.Text; Open; End; //================================================== end;
(17)
if cmbcari.ItemIndex = 3 then begin
With dm.qoper Do Begin
Close; Sql.Clear;
sql.Add('select * from datamember where Tglgabung >=:tglA And tglgabung <=:tglB'); prepare; parambyname('tglA').AsDate:=datetimepicker1.Date; parambyname('tglB').AsDate:=datetimepicker2.Date; Open; End; //================================================== end;
if cmbcari.ItemIndex = 4 then begin
With dm.qoper Do Begin
Close; Sql.Clear;
sql.Add('select * from datamember where Tglhabis >=:tglA And tglhabis <=:tglB'); prepare; parambyname('tglA').AsDate:=datetimepicker1.Date; parambyname('tglB').AsDate:=datetimepicker2.Date; Open; End; //================================================== end; end ;
if rbnonmember.Checked=true then begin
With dm.qoper Do Begin
Close; Sql.Clear;
sql.Add('select * from datanon'); Open;
End; end;
end;
procedure TFormData.btkeluarClick(Sender: TObject); begin
formdata.Close; end;
(18)
FORM PENGISIAN SALDO
varfrmsi: Tfrmsi; var i, j, k : double; data : byte; counter : byte;
check_sum,nomor : string; flag_equ : boolean; sent, recv : byte; implementation uses dm2; {$R *.dfm}
function tfrmsi.hextoint(input : string):longint; var
c,i : longint; input1 : string; begin
c:=0; input1:='';
for i:=length(input) downto 1 do input1:=input1+input[i]+''; input1:=uppercase(input1);
for i:=1 to length(input1) do begin
if (input1[i] in ['A'..'F'])and(i>1)then
c:=((ord(input1[i])-ord('A')+10) shl (4*(i-1)))or c else
if (input1[i] in ['0'..'9'])and(i>1)then
c:=((ord(input1[i])-ord('0')) shl (4*(i-1))) or c else
if (input1[i] in ['A'..'F'])and(i=1)then c:=(ord(input1[i])-ord('A')+10) or c else
if (input1[i] in ['0'..'9'])and(i=1)then c:=(ord(input1[i])-ord('0')) or c; end;
result:=c; end;
procedure Tfrmsi.btisiClick(Sender: TObject); begin
//menampilkan data pengisian berdasarkan no id With dm.qproses Do
Begin Close; Sql.Clear;
sql.Add('select isi from datamember where noid=:bb '); prepare; parambyname('bb').AsString:=ednoid.Text; Open; edit3.Text :=(Fields[0].Asstring); End; //================================================== i:=strtofloat(edit3.Text); j:=strtofloat(edjumlah.Text); k:=i+j; edit1.Text:=floattostr(k);
(19)
{---mengubah data---} With dm.qData Do
Begin Close; Sql.Clear;
Sql.Add('update datamember set isi=:mr,'+ 'tglhabis=:is where noid=:np'); Prepare;
ParamByName('np').AsString := ednoid.Text; ParamByname('mr').Asfloat := strtofloat(edit1.Text); ParamByname('is').Asdate:=datetimepicker1.date; ExecSql; dm.trparkiran.Commit; ednoid.clear; edjumlah.Clear; edit1.Clear; edit3.Clear; End; showmessage('Berhasil ditambahkan!') end;
procedure Tfrmsi.FormShow(Sender: TObject); begin
edit1.Visible:=false; memo1.Visible:=false; comport1.Open; end;
procedure Tfrmsi.ComPort1RxChar(Sender: TObject; Count: Integer); var i : integer;
begin
for i:=0 to count do begin
comport1.Read(data,1); inc(counter);
case counter of 1:
if data = 2 then begin memo1.Clear; memo1.lines.add('Start OK'); end else begin nomor:=''; check_sum:=''; counter:=0; end; 12,13: begin check_sum:=check_sum+chr(data);
memo1.lines.add('Checksum '+inttostr(counter-12)+' = '+inttohex(data,2)); end;
(20)
begin
if data = 3 then begin
ednoid.Text:=inttostr(hextoint(nomor)); memo1.lines.add('End Data');
With dm.qproses Do Begin
Close; Sql.Clear;
sql.Add('select isi from datamember where noid=:bb '); prepare; parambyname('bb').AsString:=ednoid.Text; Open; edit3.Text :=(Fields[0].Asstring); End; end else
memo1.lines.add('End Data Invalid'); nomor:=''; check_sum:=''; counter:=0; end; 4..11: begin nomor:=nomor+chr(data);
memo1.lines.add('Data ke '+inttostr(counter-4)+' = '+inttohex(data,2)); end; end; sleep(50); application.ProcessMessages; end; end;
procedure Tfrmsi.Button2Click(Sender: TObject); begin
comport1.close; frmsi.Close; end;
FORM PENDAFTARAN
varFormPendaftaran: TFormPendaftaran; data : byte;
counter : byte;
check_sum,nomor : string; flag_equ : boolean; sent, recv : byte; implementation uses dm2; {$R *.dfm}
function tformpendaftaran.hextoint(input : string):longint; var
c,i : longint; input1 : string; begin
(21)
c:=0; input1:='';
for i:=length(input) downto 1 do input1:=input1+input[i]+''; input1:=uppercase(input1);
for i:=1 to length(input1) do begin
if (input1[i] in ['A'..'F'])and(i>1)then
c:=((ord(input1[i])-ord('A')+10) shl (4*(i-1)))or c else
if (input1[i] in ['0'..'9'])and(i>1)then
c:=((ord(input1[i])-ord('0')) shl (4*(i-1))) or c else
if (input1[i] in ['A'..'F'])and(i=1)then c:=(ord(input1[i])-ord('A')+10) or c else
if (input1[i] in ['0'..'9'])and(i=1)then c:=(ord(input1[i])-ord('0')) or c; end;
result:=c; end;
procedure TFormPendaftaran.bttambahClick(Sender: TObject); begin
With dm.qData Do Begin
Close; Sql.Clear;
Sql.Add('Insert Into datamember(noid,isi,nama,alamat,notelepon,tglgabung,tglhabis,waktu,parity ) '+
'Values(:np, :nc, :mr, :tp, :th, :is, :wr, :wk, :pr)'); Prepare;
ParamByName('np').AsString := ednoid.Text; ParamByname('nc').AsFloat := strtofloat(edisi.Text); ParamByname('mr').AsString := ednama.Text; ParamByname('tp').AsString := edalamat.Text; ParamByname('th').AsString := ednotlp.Text; ParamByname('is').Asdate := datetimepicker1.date; ParamByname('wr').AsDate :=datetimepicker2.date; ParamByname('wk').Asstring :=edit1.text; ParamByname('pr').Asstring :=edit1.text; ExecSql; End; dm.trparkiran.Commit; ednoid.clear; edisi.clear; ednama.clear; edalamat.clear; ednotlp.text:='0'; datetimepicker2.Date :=now; datetimepicker1.Date:=now;
showmessage('ID Baru Telah Dibuat!'); end;
{=======================end of entry data baru===============================}
procedure TFormPendaftaran.FormShow(Sender: TObject); begin
(22)
datetimepicker2.Date :=now; memo1.visible:=false; comport1.Open; end;
procedure TFormPendaftaran.btcariClick(Sender: TObject); begin
With dm.qproses Do Begin
Close; Sql.Clear;
sql.Add('select * from datamember where noid=:bb '); prepare;
parambyname('bb').AsString:=ednoid.Text; Open;
End; end;
procedure TFormPendaftaran.btubahClick(Sender: TObject); begin
if ((ednoid.Text='') or (edisi.Text='') or (ednama.Text='')) then begin
showmessage('Data tidak boleh kosong'); end
else begin
{---mengubahdata---} With dm.qData Do
Begin Close; Sql.Clear;
Sql.Add('update datamember set isi=:mr, nama=:tp, alamat=:nc, '+ 'notelepon=:is where noid=:np');
Prepare;
ParamByName('np').AsString := ednoid.Text; ParamByname('nc').AsString := edalamat.Text; ParamByname('mr').Asfloat := strtofloat(edisi.Text); ParamByname('tp').AsString := ednama.Text; ParamByname('is').Asstring := ednotlp.Text; ExecSql; dm.trparkiran.Commit; ednoid.clear; edalamat.clear; edisi.clear; ednama.clear; ednotlp.Clear; End;
showmessage('Data berhasil Diubah') end
end;
procedure TFormPendaftaran.bthapusClick(Sender: TObject); begin
(23)
begin
showmessage('Data tidak boleh kosong'); end
else begin
{---hapus data---} With dm.qProses Do
Begin Close; Sql.Clear;
Sql.Add('Delete From datamember'); Sql.Add('Where noid =:np'); Prepare; ParamByName('np').AsString :=ednoid.Text; ExecSql; End; dm.trparkiran.Commit; ednoid.clear;
showmessage('ID Berhasil Dihapus'); end;
//--- end;
procedure TFormPendaftaran.Button6Click(Sender: TObject); begin
formpendaftaran.Close; comport1.close; end;
procedure TFormPendaftaran.ComPort1RxChar(Sender: TObject; Count: Integer); var i : integer;
begin
for i:=0 to count do begin
comport1.Read(data,1); inc(counter);
case counter of 1:
if data = 2 then begin memo1.Clear; memo1.lines.add('Start OK'); end else begin nomor:=''; check_sum:=''; counter:=0; end; 12,13: begin check_sum:=check_sum+chr(data);
memo1.lines.add('Checksum '+inttostr(counter-12)+' = '+inttohex(data,2)); end;
16: begin
if data = 3 then begin
(24)
ednoid.Text:=inttostr(hextoint(nomor)); memo1.lines.add('End Data');
end else
memo1.lines.add('End Data Invalid'); nomor:='';
check_sum:=''; counter:=0; end; 4..11: begin
nomor:=nomor+chr(data);
memo1.lines.add('Data ke '+inttostr(counter-4)+' = '+inttohex(data,2)); end;
end; sleep(50);
application.ProcessMessages; end;
(25)
(26)
(27)
(28)
(29)
(30)
(31)
(32)
(33)
(34)
(35)
(36)
(37)
(38)
(39)
(40)
(41)
(42)
1
Universitas Kristen Maranatha
BAB I
PENDAHULUAN
1.1
LATAR BELAKANG
Perkembangan teknologi sangat cepat seiring dengan waktu yang terus berjalan,
berbagai penelitian telah dilakukan oleh berbagai institusi dari seluruh dunia untuk
menemukan teknologi baru. Penemuan baru tersebut sebagai modal awal untuk
menciptakan teknologi yang lebih mutakhir dari teknologi sebelumnya.
RFID (Radio Frequency Identification) adalah teknologi yang digunakan untuk
membaca data pada RFID tag atau card. Teknologi itu sendiri terfokus pada
identifikasi sebuah objek melalui rangkaian kode yang hanya dapat dibaca reader
dengan software tertentu. RFID bekerja dengan cara, reader memancarkan medan
magnet dengan frekuensi tertentu yang konstan, kemudian energi tersebut digunakan
tag atau card sebagai sumber energi untuk mengirimkan serangkaian angka yang
unik dan diterima oleh RFID reader. RFID diperkirakan akan menggantikan
penggunaan barcode yang umum dipakai untuk label harga barang.
RFID dengan cepat mendapat perhatian karena kemampuannya dalam melacak
objek yang bergerak. Seiring dengan perkembangan teknologi, maka RFID
sendiripun juga berkembang sehingga nantinya penggunaan RFID bisa digunakan
(43)
2
Universitas Kristen Maranatha
untuk kehidupan sehari-hari. Sebagai contoh, misalnya penggunaan tag RFID pada
tiket jalan tol atau tiket bus kota, yaitu pada gerbang tol atau pintu-pintu bus kota
dipasangi RFID reader yang dapat mendeteksi tiket dan dalam waktu seketika
mendebet account deposit pengguna jalan tol atau bus yang telah mendaftar sebagai
pelanggan. Hal ini tentunya akan mempercepat antrian yang terjadi pada gerbang tol.
Dalam sistem perparkiran yang ada masih banyak proses transaksi tunai dalam
pembayarannya yang tentunya memakan waktu. Dengan menggunakan RFID, maka
sistem transaksi perparkiran dilakukan dengan transaksi elektronik yang lebih cepat
dalam prosesnya. Hal tersebut yang mendasari perancangan sistem transaksi
pembayaran perparkiran menggunakan RFID.
1.2
IDENTIFIKASI MASALAH
1.
Bagaimana membuat sistem transaksi pembayaran perparkiran pengganti
transaksi konvensional dengan transaksi elektronik yang memberikan
kemudahan dalam proses transaksinya?
2.
Bagaimana mengkoneksikan antara RFID reader dengan komputer?
(44)
3
Universitas Kristen Maranatha
1.3
TUJUAN
Membuat sistem transaksi pembayaran perparkiran menggunakan RFID (Radio
Frequency Identification).
1.4
PEMBATASAN MASALAH
1.
Penggunaan software Borland Delphi 7 sebagai software perancang aplikasi
untuk pengolahan data dan software Database Ibconsole sebagai tempat
penyimpanan data;
2.
Pengisian saldo pada setiap tag dilakukan pada awal proses pemilikan kartu
tag oleh pengguna;
3.
Adanya peringatan habisnya saldo ketika masuk dan pemblokiran palang
pintu otomatis ketika keluar;
4.
RFID reader yang digunakan adalah RFID ID-12 / EM-12 dengan 5 buah
RFID card;
5.
Komunikasi yang digunakan untuk berkomunikasi antara alat dengan
komputer menggunakan jalur komunikasi port paralel dan port serial;
6.
Hanya menggunakan satu jalur keluar dan masuk;
(45)
4
Universitas Kristen Maranatha
1.5
SISTEMATIKA PENULISAN
Agar penulisan laporan tugas akhir ini lebih terarah dan teratur serta terstruktur,
maka laporan tugas akhir ini akan dibagi 5 bab, yaitu:
BAB I
PENDAHULUAN
Bab ini berisi latar belakang, identifikasi masalah, tujuan, pembatasan
masalah, dan sistematika penulisan.
BAB II
LANDASAN TEORI
Berisi teori dasar sistem RFID ID-12, Port yang digunakan dan
software yang digunakan.
BAB III
PERANCANGAN DAN REALISASI ALAT
Berisi struktur kerja alat, langkah-langkah perancangan hardware dan
software serta cara kerja alat.
BAB IV
UJICOBA DAN PEMBAHASAN
Berisi kegiatan pengujian alat yang telah dibuat apakah berfungsi
dengan baik sesuai dengan tujuan awal.
BAB V
KESIMPULAN DAN SARAN
(46)
BAB V
KESIMPULAN DAN SARAN
5.1
KESIMPULAN
Berdasarkan perancangan dan pengujian yang telah dilakukan, dapat diambil
beberapa kesimpulan, seperti:
1.
Perancangan sistem transaksi perparkiran menggunakan RFID telah selesai
dibuat dan bekerja sesuai dengan tujuan.
2.
Alat yang telah dirancang telah diuji coba dan berhasil 100%.
5.2
SARAN
Saran yang dapat dipertimbangkan dalam mengembangkan aplikasi ini:
1.
Penambahan fitur-fitur dalam layanan database yang dapat menghapus
data yang sudah tidak lagi dibutuhkan secara berkala.
2.
Penggunaan tag RFID aktif sehingga jarak pembacaan bertambah jauh
dan dapat dimasukan kombinasi data ID dengan format tertentu.
3.
Penggunaan kamera yang dapat merekam segala aktifitas di dalam
perparkiran untuk meningkatkan keamanan dan mencegah tidak
pencurian.
(47)
48
4.
Penambahan sensor sebagai pendeteksi kendaraan pada palang pintu
(48)
49
DAFTAR PUSTAKA
1.
Allegro MicroSystem, ULN2803 Data Sheet.
2.
Brown, Mark, “CompTIA RFID+ Certification”, McGrowHill,New
York,2007.
3.
Dobkin, Daniel,”The RF in RFID”,Newnes,USA,2008.
4.
Glover, Bill,”RFID Essentials”, O’Relly Media,Sebastopol,2006.
5.
Hunt,V.Daniel,”RFID
A
GUIDE
TO
RADIO
FREQUENCY
IDENTIFICATION”,Wiley Interscience,New Jersey,2007.
6.
Innovative Electronics, RFID Starter Kit Data Sheet.
7.
Komputer, Wahana,”Aplikasi Cerdas Menggunakan Delphi”, ANDI,
(1)
2 Universitas Kristen Maranatha untuk kehidupan sehari-hari. Sebagai contoh, misalnya penggunaan tag RFID pada tiket jalan tol atau tiket bus kota, yaitu pada gerbang tol atau pintu-pintu bus kota dipasangi RFID reader yang dapat mendeteksi tiket dan dalam waktu seketika mendebet account deposit pengguna jalan tol atau bus yang telah mendaftar sebagai pelanggan. Hal ini tentunya akan mempercepat antrian yang terjadi pada gerbang tol.
Dalam sistem perparkiran yang ada masih banyak proses transaksi tunai dalam pembayarannya yang tentunya memakan waktu. Dengan menggunakan RFID, maka sistem transaksi perparkiran dilakukan dengan transaksi elektronik yang lebih cepat dalam prosesnya. Hal tersebut yang mendasari perancangan sistem transaksi pembayaran perparkiran menggunakan RFID.
1.2 IDENTIFIKASI MASALAH
1. Bagaimana membuat sistem transaksi pembayaran perparkiran pengganti transaksi konvensional dengan transaksi elektronik yang memberikan kemudahan dalam proses transaksinya?
2. Bagaimana mengkoneksikan antara RFID reader dengan komputer?
(2)
3 Universitas Kristen Maranatha 1.3 TUJUAN
Membuat sistem transaksi pembayaran perparkiran menggunakan RFID (Radio Frequency Identification).
1.4 PEMBATASAN MASALAH
1. Penggunaan software Borland Delphi 7 sebagai software perancang aplikasi untuk pengolahan data dan software Database Ibconsole sebagai tempat penyimpanan data;
2. Pengisian saldo pada setiap tag dilakukan pada awal proses pemilikan kartu tag oleh pengguna;
3. Adanya peringatan habisnya saldo ketika masuk dan pemblokiran palang pintu otomatis ketika keluar;
4. RFID reader yang digunakan adalah RFID ID-12 / EM-12 dengan 5 buah RFID card;
5. Komunikasi yang digunakan untuk berkomunikasi antara alat dengan komputer menggunakan jalur komunikasi port paralel dan port serial;
6. Hanya menggunakan satu jalur keluar dan masuk;
(3)
4 Universitas Kristen Maranatha 1.5 SISTEMATIKA PENULISAN
Agar penulisan laporan tugas akhir ini lebih terarah dan teratur serta terstruktur, maka laporan tugas akhir ini akan dibagi 5 bab, yaitu:
BAB I PENDAHULUAN
Bab ini berisi latar belakang, identifikasi masalah, tujuan, pembatasan masalah, dan sistematika penulisan.
BAB II LANDASAN TEORI
Berisi teori dasar sistem RFID ID-12, Port yang digunakan dan software yang digunakan.
BAB III PERANCANGAN DAN REALISASI ALAT
Berisi struktur kerja alat, langkah-langkah perancangan hardware dan software serta cara kerja alat.
BAB IV UJICOBA DAN PEMBAHASAN
Berisi kegiatan pengujian alat yang telah dibuat apakah berfungsi dengan baik sesuai dengan tujuan awal.
BAB V KESIMPULAN DAN SARAN
(4)
47
Universitas Kristen Maranatha
BAB V
KESIMPULAN DAN SARAN
5.1 KESIMPULAN
Berdasarkan perancangan dan pengujian yang telah dilakukan, dapat diambil beberapa kesimpulan, seperti:
1. Perancangan sistem transaksi perparkiran menggunakan RFID telah selesai dibuat dan bekerja sesuai dengan tujuan.
2. Alat yang telah dirancang telah diuji coba dan berhasil 100%.
5.2 SARAN
Saran yang dapat dipertimbangkan dalam mengembangkan aplikasi ini:
1. Penambahan fitur-fitur dalam layanan database yang dapat menghapus data yang sudah tidak lagi dibutuhkan secara berkala.
2. Penggunaan tag RFID aktif sehingga jarak pembacaan bertambah jauh dan dapat dimasukan kombinasi data ID dengan format tertentu.
3. Penggunaan kamera yang dapat merekam segala aktifitas di dalam perparkiran untuk meningkatkan keamanan dan mencegah tidak pencurian.
(5)
48
Universitas Kristen Maranatha 4. Penambahan sensor sebagai pendeteksi kendaraan pada palang pintu
(6)
49
Universitas Kristen Maranatha
DAFTAR PUSTAKA
1. Allegro MicroSystem, ULN2803 Data Sheet.
2. Brown, Mark, “CompTIA RFID+ Certification”, McGrowHill,New
York,2007.
3. Dobkin, Daniel,”The RF in RFID”,Newnes,USA,2008.
4. Glover, Bill,”RFID Essentials”, O’Relly Media,Sebastopol,2006.
5. Hunt,V.Daniel,”RFID A GUIDE TO RADIO FREQUENCY
IDENTIFICATION”,Wiley Interscience,New Jersey,2007. 6. Innovative Electronics, RFID Starter Kit Data Sheet.
7. Komputer, Wahana,”Aplikasi Cerdas Menggunakan Delphi”, ANDI, Yogyakarta,2009.