Skip to content

Pengalaman Mengerjakan Aplikasi SIM Internasional

Reading Time: 7 minutes
Aplikasi SIM Internasional

Sekitar 2 bulan yang lalu saya diminta oleh HRD kantor saya untuk membantu PT. Netkrom Solusindo mengerjakan projek SIM Internasional. PT. Netkrom Solusindo dan PT. Jasamedika adalah perusahaan yang sama-sama berada di bawah naungan PT. Pesona Scientific Group.

Beberapa hal yang Membuat Saya Bersedia Ikut dalam Projek ini

Pertama, aplikasi frontend desktop rencananya akan dibuat menggunakan bahasa C#. Ini merupakan kesempatan saya untuk menambah jam terbang menggunakan bahasa C#.

Kedua, membuat aplikasi selain SIMRS adalah hal yang baru. Sudah 4 tahun saya membuat aplikasi SIMRS. Saya merasa tertantang untuk membuat aplikasi selain SIMRS.

Ketiga, dari dulu saya sebenarnya suka programming yang berhubungan dengan koneksi ke suatu perangkat. Dengan mengerjakan projek SIM Internasional, saya akan banyak memprogram untuk melakukan koneksi ke perangkat-perangkat.

Keempat, aturan kerja di Netkrom berbeda dengan aturan kerja di Jasamedika. Aturan kerjanya mirip aturan kerja di startup. Misalnya masalah jam kerja, di netkrom, jam kerja itu bebas, mau masuk jam berapapun boleh, kecuali malam hari karena memang sudah digembok. Hahaha. Kemudian ada beberapa kasus kita diperbolehkan kerja di rumah, jadi tidak perlu berangkat ke kantor. Yang terpenting adalah kita bisa menyelesaikan kerjaan kita. Aturan-aturan seperti itu berbanding terbalik dengan aturan kerja di Jasamedika. Kalian bisa baca tulisan saya di sini jika ingin tahu bagaimana aturan kerja di Jasamedika.

Aplikasi SIM Internasional?

Aplikasi SIM Internasional Terdiri dari 4 Bagian

Pertama, aplikasi frontend Pendaftaran Online yang dibuat menggunakan PHP.

Kedua, aplikasi frontend Desktop yang dibuat menggunakan bahasa C#.

Ketiga, backend yang dibuat menggunakan bahasa Java.

Keempat, database yang menggunakan MySql.

Orang-orang yang Terlibat dalam Projek

Pertama, programmer frontend Pendaftaran Online.

Kedua, programmer frontend Desktop.

Ketiga, programmer backend yang merangkap juga sebagai arsitek aplikasi dan perancang database.

Keempat, koordinator projek yang merangkap sebagai sistem analis.

Dalam projek ini saya mengerjakan bagian frontend desktop. Dalam tulisan ini saya hanya akan membahas bagian yang saya kerjakan saja, yaitu frontend desktop.

Fitur Aplikasi Frontend Desktop

Verifikasi & Validasi

Verifikasi & Validasi adalah fitur yang berfungsi untuk melakukan verifikasi dan validasi data dari pendaftaran online.

Identifikasi

Identifikasi adalah fitur untuk melakukan identifikasi pemohon SIM, seperti mengambil foto, mengambil sidik jari dan mengambil tandatangan.

Produksi

Produksi adalah bagian aplikasi untuk melakukan pencetakan SIM.

Tantangan yang Saya Hadapi

Perangkat Terlambat Datang

Perangkat-perangkat seperti kamera, scanner tandatangan, scanner sidik jari dan printer untuk print SIM terlambat didatangkan ke kantor. Sementara deadline tidak bisa diundur. Untuk beberapa perangkat seperti kamera, scanner tandatangan dan scanner sidik jari, saya bisa meminjam perangkat yang digunakan ketika pengerjaan projek SIM Online.

Sebelum SIM Internasional, Netkrom pernah mengerjakan projek SIM Online. SIM Online digunakan untuk pembuatan SIM nasional sedangkan SIM Internasional digunakan untuk pembuatan SIM yang bisa digunakan di luar negeri. Fitur-fitur pada aplikasi ini hampir mirip. Pada aplikasi SIM Online juga terdapat fitur registrasi, identifikasi dan produksi. Hanya saja pada SIM Online, registrasi ada 2, yaitu registrasi online dan registrasi di gerai. Selain beberapa perangkat yang bisa saya pinjam, beberapa source code aplikasi SIM Online bisa saya tiru dan kopi paste.

Menggunakan perangkat yang digunakan ketika pengembangan SIM Online untuk pembuatan SIM Internasional ada resikonya. Resikonya adalah kemungkinan harus ada perubahan source code ketika perangkat baru datang karena perangkat yang digunakan di SIM Internasional berbeda versi.

Resiko tersebut ternyata terjadi, ada bug yang sangat sulit dicari penyebabnya di fitur pengambilan tandatangan. Untuk perangkat di fitur pengambilan foto dan sidik jari cukup dilakukan perubahan setingan saja dan aplikasi bisa berjalan dengan lancar.

Bug itu terjadi ketika pengambilan tandatangan sudah dilakukan kemudian user melakukan klik OK untuk menyimpan tandatangan, aplikasi mengalami crash.

Bug tersebut tidak bisa ditangkap oleh try cath. Sekitar 3 hari saya berusaha menemukan penyebabnya, tetapi tidak berhasil. Dalam 3 hari tersebut saya juga sudah meminta bantuan pada programmer backend di tim(dulu dia juga mengerjakan bagian frontend aplikasi SIM Online). Ketika dia mencoba source code yang dia dapat dari saya, ternyata bug tersebut tidak muncul, aplikasi berjalan baik-baik saja. Sangat aneh dan menyebalkan.

Pada hari ke empat, saya mencoba untuk meminta bantuan ke programmer Jasamedika. Kami mencoba beberapa solusi, dan Alhamdulillah bug tersebut bisa ditangani walaupun penyebab pastinya masih belum diketahui karena tidak bisa ditangkap oleh try cath. Tetapi, kami berdua menduga, di aplikasi bawaan scanner tandatangan ada semacam error thread, karena errornya terjadi di dalam aplikasi bawaan scanner tandatangan, bug tersebut tidak bisa ditangkap oleh try catch di source code SIM Internasional.

Dugaan ini juga diperkuat dengan fakta bahwa Laptop saya pada waktu membuat aplikasi ini sedang tidak berada dalam kondisi yang optimal, bisa dikatakan lambat, spesifikasinya juga lebih rendah dari laptop milik programmer backend. Di laptop saya bug ini terjadi, sementara di laptop programmer backend bug ini tidak terjadi. Hal ini bisa jadi petunjuk, karena thread erat hubungannya dengan kecepatan processor dan memori.

Gara-gara saya minta bantuan teman saya, saya jadi hutang sotong, karena saya janji membelikan dia sotong kalau dia berhasil mencari tahu penyebab bug ini. Walaupun sebenarnya bug pastinya tetap masih tidak diketahui pasti, tetapi minimal bug tersebut bisa ditangani dan aplikasi bisa berjalan dengan lancar.

Printer Tidak Sesuai

Kesulitan lainnya yang saya alami adalah masalah printer. Selain telat datang, ternyata printer PB500 Gen2P yang dibeli dengan harga ratusan juta ini, memiliki ukuran tray yang berbeda dengan lebar buku SIM Internasional(posisi dibuat horizontal, halaman 1 dan halaman 2).

SIM Internasional itu berupa buku, di dalamnya ada data-data yang beberapa mirip di SIM yang sering kita lihat. Pada saat kami menyadari bahwa printernya bermasalah, kami mencoba untuk menanyakan hal tersebut ke bagian pengadaan di Jakarta. Mereka mengatakan bahwa printer itu sudah sesuai dan kata si penjualnya yang di Singapura, printer itu bisa dibuat untuk melakukan pencetakan SIM Internasional.

Sampai sekarang saya masih penasaran bagaimana cara si penjual melakukan print menggunakan buku SIM Internasional.

Sesudah mendapat jawaban kurang memuaskan dari tim pengadaan, kami terus mencari cara bagaimana si printer ini bisa melakukan pencetakan SIM Internasional. Tetapi, kami hanya mendapat ide untuk melakukan sedikit perubahan pada cara memasukkan buku sim ke dalam printernya. Semula, posisi memasukkan buku SIM ke dalam printer adalah horizontal(halaman 1 dan 2), sekarang dirubah menjadi vertikal. Tetapi, ini berdampak pada proses printing yang awalnya cukup memasukan buku sim sekali kemudian printer akan mencetak halaman 1 kemudian halaman 2, maka sekarang user harus 2 kali memasukan buku, 1 kali untuk mencetak halaman 1 dan 1 kali lagi untuk mencetak halaman 2.

Agar buku bisa ditarik oleh printer, ketika memasukkan buku ke dalam tray, ujung buku harus menyentuh sensor yang berada di ujung pojok kanan tray. Karena panjang buku jauh lebih pendek dari panjang yang seharusnya, kita harus mendorong buku sampai jari kita sedikit masuk ke dalam printer. Ini sangat beresiko jari kita terjepit tray.

Dengan perubahan cara memasukkan buku sim tersebut, saya juga harus merubah teknis pencetakan di aplikasi dan tentu saja source code aplikasinya.

Sampai di sini masalah sedikit terselesaikan, walaupun jelas kekhawatiran protes dari user terus muncul di pikiran kami. Tetapi, hanya sebatas ini yang bisa tim lakukan, karena untuk ditukar juga sudah tidak mungkin, waktunya sudah mepet. Akan memakan waktu yang sangat lama jika harus ditukar.

Tantangan Pencetakan Buku SIM

Setelah masalah printer sedikit terselesaikan, saya harus bersiap menghadapi tantangan pencetakan buku SIM. Kode program untuk pencetakan sudah saya buat dan sudah saya sesuaikan dengan perubahan teknis pencetakan seperti yang sudah saya jelaskan sebelumnya.

Masalahnya adalah data-data yang akan dicetak belum tentu pas tercetak pada koordinat yang seharusnya. Saya harus menggunakan penggaris untuk mendapatkan koordinat di buku SIM Internasional untuk masing-masing data agar saya bisa menempatkan data-data tersebut pada posisi yang pas di blanko.

Harus Menghitung Ulang Koordinat

Setelah tantangan pencetakan berhasil saya lewati, ternyata muncul suatu masalah yang membuat saya harus menghitung ulang koordinat di buku SIM.

Tim pengadaan yang ada di Jakarta datang ke Bandung, sekaligus untuk mengadakan rapat persiapan diskusi dengan user di Jakarta. Pada rapat tersebut mereka menyampaikan bahwa aplikasi SIM Internasional yang sekarang dipakai(aplikasinya dibuat perusahaan lain) ternyata dulunya memakai printer yang sama dengan printer yang sudah kita beli. Tetapi, karena usernya merasa ribet akhirnya diganti dengan printer lain. Sebelum diganti, usernya sudah menemukan cara untuk menangani 2 kendala pencetakan yang sudah saya sebutkan di atas. Yaitu kendala harus membuka tutup printer dan kendala resiko jari terjepit.

Mereka mengatasinya dengan membuat semacam wadah buku SIM yang terbuat dari kardus. Panjang dan Lebar wadah tersebut dibuat sama dengan tray printer.

Buku SIM dimasukkan ke dalam wadah tersebut(diselipkan), bagian kiri dan bawah buku pas terjepit oleh bagian kiri dan bawah wadah. Nantinya, wadah tersebut akan ikut masuk ke dalam printer. Karena ukuran wadah sudah sesuai dengan tray, ketika kita masukan dan dorong sedikit, sensor dengan mudah mendeteksinya.

Mendengar penjelasan tersebut saya merasa senang sekaligus sedih. Senang karena itu menyelesaikan 2 masalah penggunaan printer. Tetapi, jelas saya harus kembali mengukur koordinatnya lagi. Terus yang menyebalkannya adalah mereka tidak membawa contoh wadah tersebut, jadi saya tidak bisa mencobanya di sini. Tim pengadaan mengatakan, setibanya mereka di Jakarta mereka akan meminjam wadah tersebut dari user dan mengirim data ukuran wadah. Kemudian mereka berharap saya bisa menyesuaikan koordinat pencetakan berbekal informasi tersebut.

Pada waktu itu koordinator saya sempat meminta saya untuk membuat sendiri wadah tersebut berdasarkan informasi data wadah yang akan dikirim oleh tim pengadaan, tetapi saya tidak mengatakan iya, karena masih banyak yang harus saya kerjakan.

Ketika di rumah, saya mendapat ide yang bisa sedikit mempermudah saya. Saya membuat setingan untuk semua koordinat pencetakan data. Sebelum dibuat fitur seting koordinat, setiap kali saya mencetak data ke blanko SIM dan ternyata tidak pas, saya harus merubah koordinat secara hardcoded di kode sumber. Setelah selesai merubah koordinat kemudian saya harus melakukan build ulang kode sumber kemudian melakukan tes pencetakan lagi. Hal seperti itu terus berulang dilakukan ketika ada perubahan koordinat. Benar-benar merepotkan. Tapi dengan fitur seting koordinat, hal tersebut bisa dihindari.

Ketika di Jakarta

Dengan fitur seting koordinat tersebut, saya berpikir penyesuaian koordinat pencetakan bisa dilakukan dengan cepat. Kita tidak perlu membuat wadah di bandung, nanti saja ketika di jakarta kita pinjam wadah dari user kemudian kita lakukan penyesuaian koordinat.

Ketika di Jakarta, berbekal fitur setingan koordinat yang sudah saya buat. Saya sangat percaya diri dengan fitur tersebut. Saya menyangka tidak akan memakan waktu yang lama agar data-data bisa tercetak dengan pas pada blanko SIM. Tetapi dugaan saya salah, ternyata walaupun sudah menggunakan fitur tersebut saya harus begadang di ruangan pertemuan dari jam 10 malam sampai jam 03:30. Pada saat itu, sholat subuh sekitar jam 04, saya memutuskan untuk sholat subuh dulu. Setelah sholat subuh saya tidak merasa ngantuk, akhirnya tidak tidur sampai acara diskusi dengan user dimulai. Hahaha

Walaupun banyak masalah yang terjadi, saya dan tim bisa mengatasinya. Pada saat acara diskusi dengan user, Alhamdulillah acara berjalan dengan lancar dan aplikasi bisa berfungsi dengan baik.

Setelah diskusi dengan user, tantangan berikutnya adalah implementasi yang akan dilakukan minggu depannya. Ada beberapa hal yang harus diperbaiki dan ditambahkan sebelum implementasi dilakukan.

Pada saat tulisan ini dibuat, saya masih melakukan perbaikan dan penambahan fitur pada aplikasi. Semoga aplikasinya bisa selesai tepat waktu. Aamiin.

Bagikan artikel

Published inPengalaman

6 Comments

  1. Pengalaman dan ilmu baru yang seru. Nemu kasus-kasus baru dan solusi baru. Suhu memanglah suhu, semua kasus bisa di resolve.

    • admin admin

      Maksakeun bisa euy. Teu bisa solved mah urg dipenjara.

      • C C

        Suasana kerja baru dengan tipe programming yg disuka… semoga bisa ngambil banyak ilmu a, lancar terusss.

        • admin admin

          Nuhun teh. Aamiin. Tos sah ieu mah jadi salah satu fans nomor 1 blog Abi teh. Hahaha.

          • C C

            Mana dong rewardna ??

          • admin admin

            Meuni kudu make hadiah

Tinggalkan Balasan

WhatsApp chat