Java Card App dengan Java SmartCard IO

ardhi wijayanto
Wonderlabs
Published in
3 min readApr 27, 2017

Java di Wonderlabs

Di wonderlabs, kami melakukan research dan development baik untuk keperluan internal maupun untuk client dengan berbagai macam teknologi dan platform, salah satunya adalah platform Java. Selain untuk mengembangkan aplikasi android, kami juga mengembangkan beberapa sistem / aplikasi, baik web maupun desktop menggunakan Java. Pada kesmpatan kali ini saya akan mengulas sedikit tentang smart card dengan platform Java.

Tentang Java Card

Sederhananya, Java Card adalah bagian dari platform Java yang ditujukan untuk smart card. Java menyediakan package javax.smartcardio untuk keperluan tersebut. Menggunakan teknologi Java Card developer dapat mengembangkan aplikasi smart card untuk berbagai keperluan menggunakan platform Java. Contoh penggunaan teknologi Java Card adalah pada pengembangan aplikasi smart card untuk presensi kehadiran pada suatu event.

Saya mengamati teknologi ini kurang begitu populer. Menurut saya hal ini dikarenakan karena perkembangan teknologi saat ini yang lebih memilih perangkat mobile sebagai target, misalnya adaptasi NFC yang dirasakan lebih praktis dan memudahkan daripada kartu fisik.

Seperti Apa Smart Card itu?

Smart card umumnya berbentuk seperti kartu standar seperti layaknya kartu ATM, ada bagian berwarna hitam. Untuk menggunakan smart card harus digunakan card reader yang dapat membaca informasi yang tersimpan di dalam kartu. Contoh smart card beserta card reader nampak pada gambar di bawah ini. Card reader harus dihubungkan ke komputer menggunakan port USB kemudian smart card didekatkan ke card reader, melalui aplikasi yang dibuat menggunakan Java Card nantinya dapat dibaca informasi yang tersimpan di dalam kartu.

Java card beserta card reader dari Gemalto

Mendeteksi Card Reader yang Terhubung

Berikut ini adalah contoh penggunaan Java Card, misalnya untuk awal ini adalah mendeteksi crad reader yang terhubung ke komputer. Method `isCardReaderConnected` berikut ini dapat digunakan untuk mendeteksi apakah terdapat card reader yang terhubung ke komputer.

PC/SC” yang tertulis pada baris ke-3 di potongan code di atas adalah singkatan dari “Personal Computer/Smart Card”, sebuah spesifikasi standar untuk integrasi smart card dengan computing environment.

Menggunakan potongan code di atas dapat dilihat device card reader yang terhubung ke komputer. Untuk melihatnya digunakan class TerminalFactory yang dapat mengambil card reader yang terhubung melalui “PC/SC”. Setelah menghubungkan card reader Gemalto Prox Dual, didapatkan `List<CardTerminal>` sebagaimana tampil pada gambar berikut :

CardTerminal mendeteksi card reader yang terhubung ke komputer

Sedangkan ketika tidak terdapat card reader yang terhubung ke komputer, isi dari List<CardTerminal> akan terbaca kosong (size 0) seperti pada gambar berikut :

tidak ada card reader yang terhubung ke komputer

Demikian, aplikasi yang dibuat dapat mendeteksi keberadaan card reader yang terhubung ke komputer. Untuk membuat aplikasi yang dapat membaca data dari Java Card, aplikasi masih harus dikembangkan lagi dengan tambahan proses membaca data dari kartu.

--

--