• Tidak ada hasil yang ditemukan

Perancangan Sistem Transaksi Pembayaran Perparkiran Menggunakan RFID (Radio Frequency Identification).

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perancangan Sistem Transaksi Pembayaran Perparkiran Menggunakan RFID (Radio Frequency Identification)."

Copied!
48
0
0

Teks penuh

(1)

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.

(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

(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

(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

(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);

(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;

(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

(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

(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;

(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

(18)

FORM PENGISIAN SALDO

var

frmsi: 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;

(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

var

FormPendaftaran: 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

(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

(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

(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

(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,

Referensi

Dokumen terkait

potensi yang berbeda-beda dalam diri anak didik dengan berfokus pada. minat bakat

Teori ini dapat ditetapkan berdasarkan keinginan dari seseorang, ketika seseorang menonton film ia akan merasa penasaran untuk mengetahui informasi dari media yang

Melalui skema tersebut tampak bahwa grafik rapat probabilitas akan memiliki jarak yang makin rapat pada area yang makin dekat dengan dinding yang bergerak.. Adapun untuk

Uraian Wewenang dan Tanggung Jawab adalah dokumen yang berisi tentang informasi kedudukan fungsi dalam organisasi, lingkup kerja, atasan langsung, kualifikasi dan wewenang

Seorang guru yang menganut paham idealisme harus membimbing atau mendiskusikan bukan sebagai prinsip-prinsip eksternal kepada siswa, melainkan sebagai

Selain yang tersebut di atas, terdapat pula bentuk-bentuk yang secara struktur merupakan paduan struktur masif pada bagian dasarnya dan struktur rangka berbahan kayu di bagian

Dengan pendekat an t ersebut diharapkan ref ormasi hukum ekonomi menghasilkan t uj uan: per t ama , mencipt akan suat u sist em hukum ekonomi ‘ kekeluargaan’ at au

Metode ini adalah metode perhitungan penyusutan harta tetap yang didasari pada perkiraan kemampuan harta tetap yang bersangkutan