Timer dan Counter pada AT89S51
Timer dan Counter pada AT89S51
Istilah
timer dan counter keduanya memiliki kesamaan yaitu, adanya sumber detak yang akan mengaktifkannya. Keduanya juga
merupakan pencacah atau penghitung. Berikut hal yang membedakan antara keduanya yaitu:
Timer memiliki sumber detak yang tetap, yaitu oscillator.
Counter memiliki sumber detak yang tidak tetap, yaitu berasal dari mikrokontroler eksternal.
Berikut beberapa register untuk timer / counter yaitu :
1. THx, TLx (register timer / counter high dan low)
Subscript x dapat berarti 0 atau 1. X diisi 0 jika dimaksudkan timer0 dan x bernilai 1 jika dimaksudkan timer1.
2. TMOD (register timer mode)
Register ini digunakan untuk mengatur mode timer. Register ini juga digunakan untuk mengatur penggunaan timer saja atau
counter saja.
3. TCON (register timer control)
Register ini digunakan untuk menyimpan hasil limpahan suatu cacahan / penghitungan. Dalam register ini, terdapat juga register
bit untuk mengaktifkan atau menonaktifkan suatu timer.
Register THx dan TLx digunakan untuk menampung hasil hitungan timer / counter kapasitas maksimum TH dan TL seluruhnya
adalah 16 bit. Namun, ada dua mode timer yang tidak menggunakannya secara maksimum melainkan hanya 13 bit dan 8 bit saja.
Register TMOD
Bit register TMOD
Mode timer menentukan kapasitas maksimal penggunaan register TH dan TL. Berikut pembahasan mode 0, mode 1, mode 2, dan
mode 3.
1 Mode 0
Mode ini dikenal dengan nama mode timer / counter 13 bit.
Register TCON
Bit TFx bernilai 1 jika ada limpahan timer dan perlu di-nol-kan kembali secara manual.
Bit TRx digunakan untuk mengaktifkan timer / counter
Pengertian Counter Secara bahasa counter berarti pencacah, artinya rangkaian ataupun aplikasi counter bias digunakan untuk
mencacah / menghitung baik hitungan secara keatas (counter up) ataupun menghitung mundur (counter down). Untuk aplikasi
dilapangan biasanya digunakan pada conveyor untuk level industry ataupun aplikasi lainnya, secara hardware pun counter bisa
digunakan untuk sensor apapun tetapi lebih ke sensor yang keluarannya berupa lebel tegangan digital semisal, push button, saklar
proximity tetapi bukan berarti tidak bisa digunakan pada tegangan analog seperti suhu, tekanan dan lainnya, hanya saja sedikit
kurang maksimal.
Seperti namanya, interupsi adalah suatu kejadian yang akan menghentikan sementara jalan program saat itu.
Dengan interupsi, suatu alur program dapat dihentikan sementara untuk menjalankan suatu subrutin, dan kemudian
melanjutkan aliran program secara normal seperti tidak pernah ada interupsi. Subrutin ini yang disebut dengan
interrupt handler, dan hanya dijalankan jika terjadi suatu kejadian khusus (event). Kejadian ini bisa berupa timer yang
mengalami overflow, penerimaan karakter melalui port serial, mengirimkan karakter melalui port serial, atau salah
satu dari dua kejadian eksternal. Mikrokontroler 89C51 bisa dikonfigurasi untuk menangani interupsi yang
disebabkan oleh salah satu dari kejadian.
Dengan interupsi ini, dapat dengan mudah dimonitor kejadian-kejadian yang diinginkan. Tanpa interupsi maka proses
monitor ini dilakukan manual dengan pengecekan berulang. Proses pengecekan manual ini akan membuat program
menjadi panjang dan lebih rumit.
1.4. Interupsi
8051 mempunyai 5 buah sumber interupsi. Dua buah interupsi eksternal, dua buah interupsi timer dan sebuah interupsi port
serial.
Meskipun memerlukan pengertian yang lebih mendalam, pengetahuan mengenai interupsi sangat membantu mengatasi masalah
pemrograman mikroprosesor/mikrokontroler dalam hal menangani banyak peralatan input/output. Pengetahuan mengenai
interupsi tidak cukup hanya dibahas secara teori saja, diperlukan contoh program yang konkrit untuk memahami.
Saat kaki RESET pada IC mikroprosesor/mikrokontroler menerima sinyal reset (pada MCS51 sinyal tersebut berupa sinyal ‘1’
sesaat, pada prosesor lain umumnya merupakan sinyal ‘0’ sesaat), Program Counter diisi dengan sebuah nilai. Nilai tersebut
dinamakan sebagai vektor reset (reset vector), merupakan nomor awal memori-program yang menampung program yang harus
dijalankan.
Pembahasan di atas memberi gambaran bahwa proses reset merupakan peristiwa perangkat keras (sinyal reset diumpankan ke
kaki Reset) yang dipakai untuk mengatur kerja dari perangkat lunak, yakni menentukan aliran program prosesor (mengisi
Program Counter dengan vektor reset).
Program yang dijalankan dengan cara reset, merupakan program utama bagi prosesor.
Peristiwa perangkat keras yang dipakai untuk mengatur kerja dari perangkat lunak, tidak hanya terjadi pada proses reset, tapi
terjadi pula dalam proses interupsi.
Dalam proses interupsi, terjadinya sesuatu pada perangkat keras tertentu dicatat dalam flip-flop khusus, flip-flop tersebut sering
disebut sebagai ‘petanda’ (flag), catatan dalam petanda tersebut diatur sedemikian rupa sehingga bisa merupakan sinyal
permintaan interupsi pada prosesor. Jika permintaan interupsi ini dilayani prosesor, Program Counter akan diisi dengan sebuah
nilai. Nilai tersebut dinamakan sebagai vektor interupsi (interrupt vector), yang merupakan nomor awal memori-program yang
menampung program yang dipakai untuk melayani permintaan interupsi tersebut.
Program yang dijalankan dengan cara interupsi, dinamakan sebagai program layanan interupsi (ISR - Interrupt Service Routine).
Saat prosesor menjalankan ISR, pekerjaan yang sedang dikerjakan pada program utama sementara ditinggalkan, selesai
menjalankan ISR prosesor kembali menjalankan program utama, seperti yang digambarkan dalam Gambar 1.
Gambar 1.8 Bagan kerja prosesor melayani interupsi
Sebuah prosesor bisa mempunyai beberapa perangkat keras yang merupakan sumber sinyal permintaan interupsi, masing-masing
sumber interupsi dilayani dengan ISR berlainan, dengan demikian prosesor mempunyai beberapa vektor interupsi untuk memilih
ISR mana yang dipakai melayani permintaan interupsi dari berbagai sumber. Kadang kala sebuah vektor interupsi dipakai oleh
lebih dari satu sumber interupsi yang sejenis, dalam hal semacam ini ISR bersangkutan harus menentukan sendiri sumber
interupsi mana yang harus dilayani saat itu.
Jika pada saat yang sama terjadi lebih dari satu permintaan interupsi, prosesor akan melayani permintaan interupsi tersebut
menurut perioritas yang sudah ditentukan, selesai melayani permintaan interupsi perioritas yang lebih tinggi, prosesor melayani
permintaan interupsi berikutnya, baru setelah itu kembali mengerjakan program utama.
Saat prosesor sedang mengerjakan ISR, bisa jadi terjadi permintaan interupsi lain, jika permintaan interupsi yang datang
belakangan ini mempunyai perioritas lebih tinggi, ISR yang sedang dikerjakan ditinggal dulu, prosesor melayani permintaan
yang perioritas lebih tinggi, selesai melayani interupsi perioritas tinggi prosesor meneruskan ISR semula, baru setelah itu kembali
mengerjakan program utama. Hal ini dikatakan sebagai interupsi bertingkat (nested interrupt), tapi tidak semua prosesor
mempunyai kemampuan melayani interupsi secara ini.
1.4.1. Sumber interupsi MCS51 Seperti terlihat dalam Gambar 2, AT89C51 mempunyai 6 sumber interupsi, yakni Interupsi
External (External Interrupt) yang berasal dari kaki INT0 dan INT1, Interupsi Timer (Timer Interrupt) yang berasal dari Timer 0
maupun Timer 1, Interupsi Port Seri (Serial Port Interrupt) yang berasal dari bagian penerima dan bagian pengirim Port Seri.
Di samping itu AT89C52 mempunyai 2 sumber interupsi lain, yakni Interupsi Timer 2 bersumber dari Timer 2 yang memang
tidak ada pada AT89C51.
Bit IE0 (atau bit IE1) dalam TCON merupakan petanda (flag) yang menandakan adanya permintaan Interupsi Eksternal. Ada 2
keadaan yang bisa meng-aktip-kan petanda ini, yang pertama karena level tegangan ‘0’ pada kaki INT0 (atau INT1), yang kedua
karena terjadi transisi sinyal ‘1’ menjadi ‘0’ pada kaki INT0 (atau INT1). Pilihan bentuk sinyal ini ditentukan lewat bit IT0 (atau
bit IT1) yang terdapat dalam register TCON.
1. Kalau bit IT0 (atau IT1) =’0’ maka bit IE0 (atau IE1) dalam TCON menjadi ‘1’ saat kaki INT0=’0’.
2. Kalau bit IT0 (atau IT1) =’1’ maka bit IE0 (atau IE1) dalam TCON menjadi ‘1’ saat terjadi transisi sinyal ‘1’ menjadi ‘0’ pada
kaki INT0.
Menjelang prosesor menjalankan ISR dari Interupsi Eksternal, bit IE0 (atau bit IE1) dikembalikan menjadi ‘0’, menandakan
permintaan Interupsi Eksternal sudah dilayani. Namun jika permintaan Interupsi Ekternal terjadi karena level tegangan ‘0’ pada
kaki IT0 (atau IT1), dan level tegangan pada kaki tersebut saat itu masih =’0’ maka bit IE0 (atau bit IE1) akan segera menjadi ‘1’
lagi!
Bit TF0 (atau bit TF1) dalam TCON merupakan petanda (flag) yang menandakan adanya permintaan Interupsi Timer, bit TF0
(atau bit TF1) menjadi ‘1’ pada saat terjadi limpahan pada pencacah biner Timer 0 (atau Timer 1).
Menjelang prosesor menjalankan ISR dari Interupsi Timer, bit TF0 (atau bit TF1) dikembalikan menjadi ‘0’, menandakan
permintaan Interupsi Timer sudah dilayani.
Interupsi port seri terjadi karena dua hal, yang pertama terjadi setelah port seri selesai mengirim data 1 byte, permintaan interupsi
semacam ini ditandai dengan petanda (flag) TI=’1’. Yang kedua terjadi saat port seri telah menerima data 1 byte secara lengkap,
permintaan interupsi semacam ini ditandai dengan petanda (flag) RI=’1’.
Petanda di atas tidak dikembalikan menjadi ‘0’ menjelang prosesor menjalankan ISR dari Interupsi port seri, karena petanda
tersebut masih diperlukan ISR untuk menentukan sumber interupsi berasal dari TI atau RI. Agar port seri bisa dipakai kembali
setelah mengirim atau menerima data, petanda-petanda tadi harus di-nol-kan lewat program.
Petanda permintaan interupsi (IE0, TF0, IE1, TF1, RI dan TI) semuanya bisa di-nol-kan atau di-satu-kan lewat instruksi,
pengaruhnya sama persis kalau perubahan itu dilakukan oleh perangkat keras. Artinya permintaan interupsi bisa diajukan lewat
pemrograman, misalnya permintaan interupsi eksternal IT0 bisa diajukan dengan instruksi SETB IE0.
1.4.2 Mengaktifkan Interupsi
Semua sumber permintaan interupsi yang di bahas di atas, masing-masing bisa di-aktip-kan atau di-nonaktip-kan secara tersendiri
lewat bit-bit yang ada dalam register IE (Interrupt Enable Register).
Bit EX0 dan EX1 untuk mengatur interupsi eksternal INT0 dan INT1, bit ET0 dan ET1 untuk mengatur interupsi timer 0 dan
timer 1, bit ES untuk mengatur interupsi port seri, seperti yang digambarkan dalam Gambar 2. Di samping itu ada pula bit EA
yang bisa dipakai untuk mengatur semua sumber interupsi sekali gus.
Setelah reset, semua bit dalam register IE bernilai ‘0’, artinya sistem interupsi dalam keadaan non-aktip. Untuk mengaktipkan
salah satu sistem interupsi, bit pengatur interupsi bersangkutan diaktipkan dan juga EA yang mengatur semua sumber interupsi.
Misalnya instruksi yang dipakai untuk mengaktipkan interupsi ekternal INT0 adalah SETB EX0 disusul dengan SETB EA.
MSB LSB
EA X X ES ET1 EX1 ET0 EX0
Note:
BIT SYMBOL FUNCTION
IP.7 - -
IP.6 - -
IP.5 - -
Defines the Serial Port interrupt priority level. PS=1 programs it to the higher priority
IP.4 PS
level.
IP.3 PT1 Defines the Timer 1 interrupt priority level. PT1=1 programs it to the higher priority level.
Defines the External Interrupt 1 priority level. PX1=1 programs it to the higher priority
IP.2 PX1
level.
Enables or disables the Timer 0 interrupt priority level. PT0=1 programs it to the higher
IP.1 PT0
priority level.
Defines the External Interrupt 0 priority level. PX0=1 programs it to the higher priority
IP.0 PX0
level.
Timer dan Counter merupakan sarana input yang kurang dapat perhatian pemakai mikrokontroler, dengan sarana input ini
mikrokontroler dengan mudah bisa dipakai untuk mengukur lebar pulsa, membangkitkan pulsa dengan lebar yang pasti, dipakai
dalam pengendalian tegangan secara PWM (Pulse Width Modulation) dan sangat diperlukan untuk aplikasi remote control
dengan infra merah.
Pada dasarnya sarana input yang satu ini merupakan seperangkat pencacah biner (binary counter) yang terhubung langsung ke
saluran-data mikrokontroler, sehingga mikrokontroler bisa membaca kedudukan pancacah, bila diperlukan mikrokontroler dapat
pula merubah kedudukan pencacah tersebut.
Seperti layaknya pencacah biner, bilamana sinyal denyut (clock) yang diumpankan sudah melebihi kapasitas pencacah, maka
pada bagian akhir untaian pencacah akan timbul sinyal limpahan, sinyal ini merupakan suatu hal yang penting sekali dalam
pemakaian pencacah. Terjadinya limpahan pencacah ini dicatat dalam sebuah flip-flop tersendiri.
Di samping itu, sinyal denyut yang diumpankan ke pencacah harus pula bisa dikendalikan dengan mudah. Hal-hal yang
dibicarakan di atas diringkas dalam Gambar 1.
MCS-51 mempunyai dua buah register timer/ counter 16 bit, yaitu Timer 0 dan Timer 1. Keduanya dapat dikonfigurasikan untuk
beroperasi sebagai timer atau counter, seperti yang terlihat pada gambar di bawah.
Gambar 1.9. Konsep dasar Timer/Counter sebagai sarana input
Sinyal denyut yang diumpankan ke pencacah bisa dibedakan menjadi 2 macam, yang pertama yalah sinyal denyut dengan
frekuensi tetap yang sudah diketahui besarnya dan yang kedua adalah sinyal denyut dengan frekuensi tidak tetap.
Jika sebuah pencacah bekerja dengan frekuensi tetap yang sudah diketahui besarnya, dikatakan pencacah tersebut bekerja sebagai
timer, karena kedudukan pencacah tersebut setara dengan waktu yang bisa ditentukan dengan pasti.
Jika sebuah pencacah bekerja dengan frekuensi yang tidak tetap, dikatakan pencacah tersebut bekerja sebagai counter, kedudukan
pencacah tersebut hanyalah menyatakan banyaknya pulsa yang sudah diterima pencacah.
Untaian pencacah biner yang dipakai, bisa merupakan pencacah biner menaik (count up binary counter) atau pencacah biner
menurun (count down binary counter).
Gambar 4 merupakan bagan susunan rangkaian yang bisa terjadi pada Timer 1 secara lengkap, digambarkan pula hubungan-
hubungan semua register pembentuk dan pengatur Timer 1. Gambar ini berlaku pula untuk Timer 0.
Dalam pemakaian sesungguhnya, rangkaian yang dipakai hanya sebagian dari rangkaian lengkap tersebut, sesuai dengan
keperluan sistem yang dibangun. Rangkaian yang dikehendaki dibentuk dengan mengatur register TMODE, sedangkan kerja dari
Timer dikendalikan lewat register TCON.
Gambar 1.16. Diagram blok timer/ counter
Setelah MCS51 di-reset register TMOD bernilai $00, hal ini berarti :
1. bit C/T* =’0’, menurut Gambar 4 keadaan ini membuat saklar S1 ke posisi atas, sumber sinyal denyut berasal dari osilator
kristal yang frekuensinya sudah dibagi 12, pencacah biner yang dibentuk dengan TL1 dan TH1 berfungsi sebagai timer. Jika
sistem yang dirancang memang menghendaki Timer 1 bekerja sebagai timer maka bit C/T* tidak perlu diatur lagi.
Tapi jika sistem yang dirancang menghendaki agar Timer 1 bekerja sebagai counter untuk menghitung pulsa yang masuk lewat
kakai T1 (P3.5), maka posisi saklar S1 harus dikebawahkan dengan membuat bit C/T* menjadi ‘1’.
2. bit GATE=’0’, hal ini membuat output gerbang OR selalu ‘1’ tidak dipengaruhi keadaan ‘0’ atau ‘1’ pada kaki INT1 (P3.3).
Dalam keadaan semacam ini, saklar S2 hanya dikendalikan lewat bit TR1 dalam register TCON. Jika TR1=’1’ saklar S2 tertutup
sehingga sinyal denyut dari S1 disalurkan ke sistem pencacah biner, aliran sinyal denyut akan dihentikan jika TR=’0’.
Sebaliknya jika bit GATE=’1’, output gerbang OR akan mengikuti keadaan kaki INT1, saat INT1=’0’ apa pun keadaan bit TR1
output gerbang AND selalu =’0’ dan saklar S1 selalu terbuka, agar saklar S1 bisa tertutup kaki INT1 dan bit TR1 harus =’1’
secara [Link] sistem yang dirancang menghendaki kerja dari timer/counter dikendalikan dari sinyal yang berasal dari
luar chip, maka bit GATE harus dibuat menjadi ‘1’
3. bit M1 dan M0=’0’, berarti TL1 dan TH1 disusun menjadi pencacah biner 13 bit (Mode 0), jika dikehendaki Timer 1 bekerja
pada mode 1 seperti terlihat dalam Gambar 4, maka bit M1 harus dibuat menjadi ‘0’ dan bit M0 menjadi ‘1’.
Pengetahuan di atas dipakai sebagai dasar untuk mengatur dan mengendalikan Timer seperti terlihat dalam contoh-contoh berikut
:
Setelah reset TMOD bernilai $00, berarti Timer 1 bekerja sebagai pencacah biner 13 bit, sumber sinyal denyut dari osilator
kristal atau Timer 1 bekerja sebagai ‘timer’, bit GATE =’0’ berarti kaki INT1 tidak berpengaruh pada rangkaian sehingga Timer
1 hanya dikendalikan dari bit TR1.
Dalam pemakaian biasanya dipakai pencacah biner 16 bit, untuk keperluan itu instruksi yang diperlukan untuk mengatur TMOD
adalah :
MOV TMOD,#%00010000
Catatan dalam instruksi di atas tanda ‘#’ menyatakan bagian di belakangnya adalah bilangan konstan yang akan diisikan ke
TMOD, ‘%’ merupakan awalan yang menandakan bahwa bilangan di belakangnya adalah bilangan biner. Penulisan dengan
bilangan biner semacam ini, memudahkan untuk mengenali dengan cepat bit-bit apa saja yang diisikan ke TMOD.
Bilangan biner %00010000 diisikan ke TMOD, berakibat bit 7 TMOD (bit GATE) bernilai ‘0’, bit 6 (bit C/T*) bernilai ‘0’, bit 5
dan 4 (bit M1 dan M0) bernilai ‘01’, ke-empat bit ini dipakai untuk mengatur Timer 1, sehingga Timer 1 bekerja sebagai timer
dengan pencacah biner 16 bit yang dikendalikan hanya dengan TR1.
Jika dikehendaki pencacah biner dipakai sebagai counter untuk mencacah jumlah pulsa yang masuk lewat kaki T1 (P3.5),
instruksinya menjadi :
MOV TMOD,#%01010000
Perbedaannya dengan instruksi di atas adalah dalam instruksi ini bit 6 (bit C/T*) bernilai ‘1’. Selanjutnya jika diinginkan sinyal
dari perangkat keras di luar chip MCS51 bisa ikut mengendalikan Timer 1, instruksi pengatur Timer 1 akan menjadi :
MOV TMOD,#%11010000
Sebagimana ditunjukkan pada gambar 1.11 mikrokontroller dapat beraksi sebagai timer atau counter, sesuai dengan kebutuhan.
Perhatikan pada saklar sebelah kiri dan kanan pada diagram blok tersebut. Mikrokontroller akan berfungsi sebagai timer ketika
saklar diposisikan ke atas dan sebaliknya akan berfungsi sebagai counter bila saklar diposisikan ke bawah, dengan mengontrol bit
C/T pada register TMOD. Posisi saklar sebelah kanan, bergantung pada bit GATE (register TMOD), TR1 ( register TCON0 dan
INT1.
Apabila kita amati barang-barang belanjaan kita dari supermarket/ swalayan, kita akan
menemukan adanya kode-kode tertentu dalam bentuk batangan (bar) atau lebih populernya "barcode" pada setiap item yang kita
ambil di supermarket/ swalayan itu. Barcode ini biasaya diikuti dengan angka-angka tertentu di bawahnya.
Barcode diciptakan untuk mempermudah dan mempercepat pengecekan barang dan melakukan tracking terhadap inventory.
Jenis-jenis barcode yang digunakan sangat banyak dari first generation sampai third generation, dari 1 dimensional matrix sampai
2 dimensional matrix. Bentuknya pun bermacam-macam, ada kotak, dot, hexagon dan bentuk geometris lainnya.
Barcode yang umum digunakan adalah barcode dengan 12 digit seperti pada gambar di atas. Enam digit pertama adalah
identifikasi pabrik (manufacturer identification), sementara 5 digit berikutnya adalah item number dan digit terakhir merupakan
check digit. Check digit ini berfungsi untuk memberitahukan kepada sistem apakah scanner melakukan pengecekan dengan benar
atau tidak.
Secara umum, yang bertugas membaca barcode ini adalah sistem scanner yang terhubung ke komputer. Namun secara manual
kita bisa membacanya dengan cara sebagai berikut:
Pertama-tama lihatlah konfigurasi dari barcode tersebut. Ini terdiri dari garis batangan hitam dan spasi berwarna putih. Tiap-tiap
garis dan spasi mempunyai ketebalan yang berbeda-beda. Anggaplah satu garis paling tipis warna hitam (seperti garis pertama
pada barcode di atas) adalah garis dengan lebar 1 unit dan spasi paling tipis warna putih (seperti pada spasi pertama setelah garis
pertama pada barcode di atas) adalah spasi dengan lebar 1 unit. Kemudian secara keseluruhan kita dapat menentukan bahwa garis
hitam dan spasi putih tersebut mempunyai ketebalan masing-masing 1, 2, 3 dan 4 unit.
Awal dari setiap barcode biasanya adalah "1-1-1" atau kalau dibaca dari kiri terdiri dari garis hitam 1 unit, diikuti dengan spasi
putih 1 unit, diikuti lagi dengan garis hitam 1 unit.
• 3 Guard Bars : ada tiga guard bars yang ditempatkan di awal, tengah dan akhir pada barcode. Guard bars bagian awal dan
akhir di-encode-kan sebagai “bar-space-bar” atau “101”. Guard bar bagian tengah di-encode-kan sebagai “space-bar-space-bar-
space” atau “01010”.
• Manufacturer Code : kode perusahaan ini ada lima dijit bilangan yang secara khusus menentukan manufaktur suatu produk.
Kode perusahaan/manufaktur ini dilindungi dan ditetapkan oleh Uniform Code Council(UCC).
• Product Code : kode produk ini ada lima dijit bilangan yang ditetapkan oleh perusahaan/manufaktur untuk setiap produk yang
dihasilkannya. Untuk setiap produk yang berbeda dan setiap ukuran yang berbeda, akan memiliki kode produk yang unik.
• Check digit : disebut sebagai dijit “self-check”. Check digit ini terletak di bagian luar sebelah kanan barcode. Check digit ini
merupakan suatu “ old-programmer’s trick” untuk mengvalidasikan dijit-dijit lainnya (number system character, manufacturer
code, product code) yang dibaca secara teliti.
Cara komputer mengkalkulasikan check digit adalah sebagai berikut :
1. Jumlahkan semua dijit-dijit yang ganjil. Dalam "Anatomy of a Barcode" kita akan menjumlahkan 0 (merupakan dijit NSC) + 2 +
4 + 6 + 8 + 0 = 20.
2. Kalikan hasil penjumlahan pada langkah 1 dengan bilangan 3. Pada contoh ini, yaitu, 20 x 3 = 60.
3. Jumlahkan semua bilangan-bilangan genap. Dalam “Anatomy of a Barcode" kita akan menjumlahkan 1 + 3 + 5 + 7 + 9 = 25. Di
sini kita tidak memasukkan bilangan 5 atau check digit sebab bilangan tersebut yang akan kita kalkulasikan.
4. Sekarang jumlahkan hasil dari langkah 2 dan langkah 3, yaitu, 60 + 25 = 85.
5. Check digit tersebut adalah bilangan yang perlu dijumlahkan dengan bilangan pada langkah 4. Hasilnya pada langkah 4
tersebut sama dengan mengalikan dengan bilangan 10. Pada contoh ini, check digit nya adalah 5 sehingga 85 + 5 = 90. Cara lain
untuk mengkalkulasikan check digit yang lebih simpel adalah membagi bilangan dari langkah 4 dengan 10. Contohnya 85/10 =
8,5 sehingga sisa nya dari hasil pembagian tersebut adalah 5. Bilangan 5 tersebut adalah check digit.
Gambar 10 dan 11 menunjukkan bahwa Barcode Master Data dapat disimpan pada media diskette dan dapat digunakan untuk
ISDN. Integrated Services Digital Network (ISDN) adalah sebuah jaringan yang pada umumnya perkembangan dari telephony
Integrated Digital Network (IDN), yang menyediakan jaringan penghubung digital end to end, yang terdiri dari layanan suara
dan non-suara.
Gambar 10. Barcode yang disimpan pada media disket (Applied Barcode, 2000)
Gambar 12 memperlihatkan alat-alat pendukung barcode, yang terdiri dari barcode printers yang berfungsi untuk mencetak
label barcode, barcode scanners yang berfungsi untuk membaca label barcode, dan barcode verifiers berfungsi untuk
memeriksa simbol-simbol dengan kecepatan baca yang tinggi.
Gambar 12. Alat-alat Pendukung Barcode (Applied Barcode, 2000)
KONSEP SISTEM PENGGUNAAN BARCODE UNTUK PENDETEKSIAN UANG
Untuk mempercepat proses pendeteksian dan pencatatan uang, maka dibuatlah suatu kode pada setiap uang kertas dalam
bentuk barcode (kode baris). Nomor kode pada setiap uang kertas tersebut berbeda dengan nomor seri pada setiap uang
kertas, untuk nomor kode pada setiap uang kertas disusun dengan metoda penyandian tertentu. Barcode tersebut mencakup
nilai nominal uang, nomor seri, Bank Indonesia, dan untuk menjamin keaslian dan keabsahan uang kertas, digunakan suatu
metoda water marking, hal ini dapat menghindari adanya uang palsu.
BANK INDONESIA
ABC12345
50000
ABC12345
Start--------NSC-----/---Left---/-----Center-----/---Right---/----Check---------Stop
101 0 5 01010 5 Check 101
= 0110001 = 1001110
dari tabel 1 dari tabel 1
(a)
(b)
Gambar 16. Layout data string barcode UPC (a), left and right field data character (b)
Barcode yang akan digunakan pada uang harus menjamin keamanan dan keaslian pada uang. Oleh karena itu, barcode yang
digunakan pada uang kertas merupakan barcode yang telah diacak (enkripsi), sehingga harus dibuat sebuah tabel sebagai key
code. Tabel key code tersebut khusus dimiliki oleh Bank Indonesia sebagai otoritas moneter. Salah satu contoh pada konsep
sistem penggunaan barcode ini adalah dengan mengacak karakter pada barcode, yaitu dengan menggeser karakter sebanyak
tiga langkah. Misalkan, pada gambar kedua barcode di bawah ini, menunjukkan barcode asli (plain) dan barcode yang telah
diacak (chiper) dan lihatlah tabel 3 set karakter barcode UPC yang telah diacak dengan cara menggeser karakter sebanyak tiga
langkah.
Tabel 3. set karakter UPC yang telah diacak, karakter digeser 3 langkah
Cara menghitung check digit pada barcode yang telah diacak adalah sebagai berikut :
1. Jumlahkan semua dijit-dijit yang ganjil. Dalam "Anatomy of a Barcode" kita akan menjumlahkan 0 (merupakan dijit NSC) + 5 +
7 + 9+ 1+ 3 = 25.
2. Kalikan hasil penjumlahan pada langkah 1 dengan bilangan 3. Pada contoh ini, yaitu, 25 x 3 = 75.
3. Jumlahkan semua bilangan-bilangan genap. Dalam “Anatomy of a Barcode" kita akan menjumlahkan 4 + 6 + 8 + 0 + 2 = 20. Di
sini kita tidak memasukkan bilangan 5 atau check digit sebab bilangan tersebut yang akan kita kalkulasikan.
4. Sekarang jumlahkan hasil dari langkah 2 dan langkah 3, yaitu, 75 + 20 = 95.
5. Untuk mengkalkulasikan check digit yang lebih simpel adalah membagi bilangan dari langkah 4 dengan 10. Contohnya 95/10
= 9,5 sehingga sisa nya dari hasil pembagian tersebut adalah 5. Bilangan 5 tersebut adalah check digit.
Jadi, barcode yang akan ditunjukkan pada uang adalah barcode yang telah diacak (enkripsi), sehingga pada alat pembaca
barcode harus dilengkapi dengan pengubah kode (dekripsi). Sebagai catatan, untuk jumlah karakter pada barcode dapat
menggunakan lebih dari 10 karakter. Hal ini dibuat agar lebih terjamin keamanannya, karena uang yang dicetak dan diedarkan
berjumlah sangat besar.
Saran
• Konsep sistem penggunaan barcode untuk pengamanan dan pendeteksian uang memerlukan penelitian lebih lanjut, misalkan
pada pembuatan barcode, jumlah digit pada barcode, penempatan barcode pada uang kertas, dan kecepatan mesin pembaca
barcode.
• Penggunaan barcode pada uang dan mesin pendeteksi yang dilengkapi mesin pembacaan barcode memerlukan pengamanan
lebih lanjut sehingga perlu adanya enkripsi. Salah satu hal yang penting dalam komunikasi menggunakan computer untuk
menjamin kerahasian data adalah enkripsi. Enkripsi adalah sebuah proses yang melakukan perubahan sebuah kode dari yang
bisa dimengerti menjadi sebuah kode yang tidak bisa dimengerti.
• Uang yang menggunakan barcode harus memiliki kualitas yang tinggi, meliputi bahan kertasnya, tinta, dan cetakan uang
tersebut, agar uang tidak mudah rusak.
Ultrasonic
Sensor ultrasonik menggunakan prinsip-prinsip ultrasonografi medis dalam rangka untuk membuat gambar visual dari sidik jari.
Tidak seperti pencitraan optik, sensor ultrasonik menggunakan gelombang suara frekuensi sangat tinggi untuk menembus lapisan
epidermis kulit. Gelombang suara yang dihasilkan dengan menggunakan transduser piezoelektrik dan energi tercermin juga
diukur dengan menggunakan bahan piezoelektrik. Karena lapisan kulit dermal pameran karakteristik pola sidik jari yang sama,
pengukuran gelombang yang dipantulkan dapat digunakan untuk membentuk gambar sidik jari. Hal ini menghilangkan
kebutuhan untuk bersih, kulit epidermis rusak dan permukaan penginderaan bersih.
Absensi Sidik Jari akan menidentifikasi biometric dengan metoda diantaranya dengan Pengenalan Sidik Jari, Retina, Iris,
Wajah, maupun Suara.
Setiap metoda memiliki kelebihan dan kekurangan. Pengenalan Sidik Jari digunakan secara luas saat ini dikarenakan sistem ini
cukup akurat mengidentifikasi seseorang, proses cepat dan sederhana, serta dapat diproduksi dengan harga relatif murah
dibandingkan dengan metoda lainnya. Sistem identifikasi sidik jari yang baik umumnya dapat mengidentifikasi hingga 98% sidik
jari manusia.
Dalam memilih sistem identifikasi sidik jari , salah satu komponen terpenting yang harus diperhatikan adalah Scanning Sensor
yang digunakan untuk membaca profil sidik jari. Terdapat 2 jenis sensor yaitu Optical Sensor dan Silicon Sensor. Optical sensor
secara umum memiliki kemampuan identifikasi lebih baik dan lebih tahan lama dibandingkan dengan silicon sensor. Akan tetapi
Optical Sensor akan memiliki ukuran relatif lebih besar dibandingkan dengan Silicon Sensor
Disamping sensor, terdapat beberapa fitur yang perlu diperhatikan dalam memilih Mesin Absensi Sidik Jari seperti Capacity,
Performance, Supported Protocol, Integration, Reporting Software dan Database System. Yang masing – masing akan dijelaskan
berikut ini.
1. Hardware Capacity (Kapasitas) meliputi jumlah maximum user, jumlah maximum fingerprint template dan jumlah log
buffer yang dapat disimpan. Maximum user adalah jumlah maksimum pengguna sistem ini, setiap user dapat
mendaftarkan satu atau lebih sidik jarinya. Jumlah maximum sidik jari yang dapat disimpan ditentukan oleh maximum
fingerprint template. Sedangkan jumlah log buffer akan menentukan jumlah maksimum transaksi yang dapat disimpan
dalam mesin ini sebelum di-download ke dalam database.
2. Hardware Performance meliputi response time dalam melakukan identifikasi. Fingerprint Sistem yang baik dapat
melakukan identifikasi kurang dari 1 detik.
3. Supported Protocol untuk mesin finger print akan menentukan kemampuan pengiriman data dari dan ke mesin. Pada
umumnya mesin absensi sidik jari men-support satu atau lebih protocol berikut: RS232, RS485, TCP/IP, Wiegand.
4. Integration adalah kemampuan mesin absensi sidik jari untuk dapat diintegrasikan dengan sistem lain seperti dengan
access control system. Secara umum terdapat 2 jenis mesin absensi sidik jari berdasarkan kemampuan integrasinya:
o Mesin absensi Sidik Jari Stand Alone yang fungsinya hanya untuk absensi (time attendance recording) saja.
o Mesin Absensi Sidik Jari + Access Control System yang memiliki fungsi absensi dan juga fungsi kontrol ke
ruang / area tertentu.
5. Reporting Software juga merupakan unsur yang sangat penting untuk diperhatikan. Beberapa Mesin Fingerprint telah
dilengkapi dengan software reporting yang cukup lengkap seperti laporan rekap harian dan bulanan. Software reporting
ini dapat berupa aplikasi desktop yang dapat dijalankan pada local computer. Beberapa Mesin Absensi Sidik Jari ada
pula yang dilengkapi Aplikasi Reporting Berbasis Web yang memungkinkan pengguna mengakses software lewat
network local maupun internet.
6. Database System adalah backend system yang menyimpan seluruh data pengguna dan juga log transaksi. Database
system yang baik dapat memberikan performa yang prima seiring dengan bertambahnya data pengguna. Mesin
Absensi Sidik Jari yang ada di pasaran umumnya menggunakan database: MS Access atau MS SQL Server.
Scanning sidik jari dilakukan dengan alat elektronik (dalam hal ini mesin absensi sidik jari ). Hasil scanning lalu disimpan dalam
format digital pada saat registrasi atau enrollment atau pendaftaran sidik jari . Setelah itu, rekaman sidik jari tersebut diproses
dan dibuatkan daftar pola fitur sidik jari yang unik. Pola fitur sidik jari yang unik tersebut kemudian disimpan dalam memory
atau database. Pola sidik jari yang unik ini disebut dengan istilah minutiae. Pada saat identifikasi, pola minutiae tersebut
kemudian dicocokkan dengan hasil scan sidik jari .
Alat absensi sidik jari maupun sensor sidik jari yang digunakan untuk keperluan lain seperti akses kontrol mempunyai beberapa
tehnik pembacaan sidik jari . Tehnik pembacaan sidik jari oleh mesin absensi sidik jari tersebut antara lain :
1. Optis.
Dengan tehnik ini, pola sidik jari direkam atau discan dengan menggunakan cahaya. Alat perekam (fingerprint scanner ) yang
digunakan adalah berupa kamera digital. Tempat untuk meletakkan ujung jari disebut permukaan sentuh (scan area ). Di bawah
scan area, terdapat lampu atau pemancar cahaya yang menerangi permukaan ujung jari. Hasil pantulan cahaya dari ujung jari
ditangkap oleh alat penerima yang selanjutnya menyimpan gambar sidik jari tersebut ke dalam memori.
Kelemahan metode ini adalah hasil scanning sangat tergantung dari kualitas sidik jari. Jika kualitas sidik jari miskin (poor) atau
luka, maka kualitas hasil pembacaan akan tidak bagus. Kelemahan lain adalah tehnik ini bisa diakali dengan jari palsu. Tapi
tehnik ini mempunyai keuntungan mudah dilakukan dan tidak membutuhkan biaya yang mahal.
2. Ultrasonik
Tehnik ini hamper sama dengan tehnik yang digunakan dalam dunia kedokteran. Dalam tehnik ini, digunakan suara berfrekuensi
sangat tinggi untuk menembus lapisan epidermal kulit. Suara frekuensi tinggi tersebut dibuat dengan menggunakan transducer
piezoelectric. Setelah itu, pantulan energi tersebut ditangkap menggunakan alat yang sejenis. Pola pantulan ini dipergunakan
untuk menyusun citra sidik jari yang dibaca. Dengan cara ini, tangan yang kotor tidak menjadi masalah. Demikian juga dengan
permukaan scanner yang kotor tidak akan menghambat proses pembacaan .
3. Kapasitans
Tehnik ini menggunakan cara pengukuran kapasitant untuk membentuk citra sidik jari. Scan area berfungsi sebagai lempeng
kapasitor, dan kulit ujung jari berfungsi sebagai lempeng kapasitor lainnya. Karena adanya ridge (gundukan) dan valley (lembah)
pada sidik jari, maka kapasitas dari kapasitor masing-masing orang akan berbeda. Kelemahan ini adalah adanya listrik statis pada
tangan. Untuk menghilangkan listrik statis ini, tangan harus digrounding.
4. Thermal
Tehnik ini menggunakan perbedaan suhu antara ridge (gundukan) dengan valley (lembah) sidik jari untuk mengetahui pola sidik
jari . Cara yang dilakukan adalah dengan menggosokkan ujung jari (swap) ke scan area. Bila ujung jari hanya diletakkan saja,
dalam waktu singkat, suhunya akan sama karena adanya proses keseimbangan.
Sebuah sidik jari sensor adalah sebuah perangkat elektronik yang digunakan untuk menangkap gambar digital dari pola sidik jari.
Gambar tersebut disebut scan hidup. Ini scan hidup adalah digital diproses untuk membuat sebuah template biometrik (koleksi
fitur diekstrak ) yang disimpan dan digunakan untuk pencocokan. Ini merupakan ikhtisar dari beberapa sidik jari lebih umum
digunakan sensor teknologi .
[ sunting ] Optik
Pencitraan sidik jari optik melibatkan menangkap gambar digital dari cetak menggunakan cahaya tampak . Jenis sensor, pada
dasarnya, khusus kamera digital . Lapisan atas sensor, di mana jari ditempatkan, dikenal sebagai permukaan sentuh. Di bawah
lapisan ini adalah lapisan pemancar cahaya fosfor yang menerangi permukaan jari. Cahaya yang dipantulkan dari jari melewati
lapisan fosfor untuk array solid state pixel (sebuah perangkat charge-coupled ) yang menangkap gambar visual dari sidik jari.
Sebuah permukaan sentuhan tergores atau kotor dapat menyebabkan citra buruk sidik jari. Kelemahan dari jenis sensor adalah
kenyataan bahwa kemampuan pencitraan dipengaruhi oleh kualitas kulit di jari. Misalnya, jari kotor atau ditandai sulit untuk
gambar dengan benar. Juga, adalah mungkin bagi seorang individu untuk mengikis lapisan luar kulit pada ujung jari ke titik di
mana sidik jari tidak lagi terlihat. Hal ini juga dapat dengan mudah tertipu oleh gambar sidik jari jika tidak digabungkan dengan
detektor "hidup jari". Namun, tidak seperti sensor kapasitif, ini teknologi sensor tidak rentan terhadap kerusakan discharge
elektrostatik. [4]
[ sunting ] Ultrasonic
Sensor ultrasonik menggunakan prinsip-prinsip ultrasonografi medis dalam rangka untuk membuat gambar visual dari sidik jari.
Tidak seperti pencitraan optik, sensor ultrasonik menggunakan gelombang suara frekuensi sangat tinggi untuk menembus lapisan
epidermis kulit. Gelombang suara yang dihasilkan dengan menggunakan transduser piezoelektrik dan energi tercermin juga
diukur dengan menggunakan bahan piezoelektrik. Karena lapisan kulit dermal pameran karakteristik pola sidik jari yang sama,
pengukuran gelombang yang dipantulkan dapat digunakan untuk membentuk gambar sidik jari. Hal ini menghilangkan
kebutuhan untuk bersih, kulit epidermis rusak dan permukaan penginderaan bersih. [5]
[ sunting ] Kapasitansi
Kapasitansi sensor menggunakan prinsip-prinsip yang terkait dengan kapasitansi dalam rangka untuk membentuk gambar sidik
jari. Dalam metode ini pencitraan, pixel array sensor setiap tindakan sebagai salah satu piring dari pelat sejajar kapasitor , lapisan
dermal (yang elektrik konduktif ) bertindak sebagai pelat lainnya, dan non-konduktif lapisan epidermis bertindak sebagai
dielektrik .
Sebuah sensor kapasitansi pasif menggunakan prinsip yang digariskan di atas untuk membentuk sebuah gambar dari pola sidik
jari pada lapisan dermal kulit. Setiap pixel sensor digunakan untuk mengukur kapasitansi pada titik dari array. Kapasitansi
bervariasi antara pegunungan dan lembah sidik jari karena fakta bahwa volume antara lapisan dermal dan elemen penginderaan di
lembah berisi celah udara. Konstanta dielektrik epidermis dan daerah dari elemen penginderaan diketahui nilai-nilai. Nilai
kapasitansi diukur kemudian digunakan untuk membedakan antara pegunungan sidik jari dan lembah. [6]
Kapasitansi sensor aktif menggunakan siklus pengisian untuk menerapkan tegangan ke kulit sebelum pengukuran berlangsung.
Penerapan tegangan kapasitor biaya efektif. Medan listrik antara jari dan sensor mengikuti pola dari pegunungan di lapisan kulit
dermis. Pada siklus debit, tegangan lapisan dermal dan elemen penginderaan dibandingkan terhadap tegangan referensi untuk
menghitung kapasitansi. Nilai jaraknya kemudian dihitung matematis, dan digunakan untuk membentuk sebuah gambar sidik jari.
[7]
sensor kapasitansi Aktif mengukur pola punggungan dari lapisan dermal seperti metode ultrasonik. Sekali lagi, ini
menghilangkan kebutuhan untuk bersih, kulit epidermis rusak dan permukaan penginderaan bersih.