Tanya Kasir
Project Information
- Category: Android Native POS App
- Client: UMKM & Retail Business
- Project Date: 2026
- My Role: Android & AI Developer
- Project Status: Production / Live
- Technology Stack:
Java Kotlin Android SDK LLM (OpenRouter) Bluetooth ESC/POS MySQL
Project Overview
Tanya Kasir adalah aplikasi Point of Sale (POS) modern yang dirancang khusus untuk UMKM dan bisnis retail. Sistem ini memadukan proses transaksi yang cepat dengan AI Agent AIRIN, scanner barcode multi-item, manajemen stok, laporan penjualan, hingga pencetakan struk thermal. Dengan dukungan role management dan keamanan perangkat, Tanya Kasir membantu pelaku usaha mengelola bisnis secara lebih efisien.
Key Features
AI Agent AIRIN
Asisten AI cerdas yang membantu pengguna memahami fitur aplikasi, memberikan panduan operasional toko, serta menjawab pertanyaan bisnis lainnya.
Smart POS & Barcode Scanner
Proses transaksi cepat menggunakan barcode scanner kamera dengan dukungan manajemen harga eceran maupun grosir otomatis.
Thermal Receipt Printing
Mendukung pencetakan bukti struk secara instan melalui koneksi printer thermal Bluetooth maupun kabel USB.
Device Security
Fitur Device Lock memastikan lisensi aplikasi hanya dapat diakses pada perangkat yang telah terdaftar resmi secara hardware.
Challenges & Solutions
Kecepatan Respon AI Agent (AIRIN)
Tantangan: Pengguna kasir membutuhkan jawaban cepat. Menunggu model LLM menyelesaikan seluruh paragraf jawaban via koneksi API REST biasa membutuhkan waktu 5-10 detik, yang mana terlalu lama untuk operasional toko.
Solusi: Mengimplementasikan koneksi streaming (Server-Sent Events) ke OpenRouter API menggunakan library `OkHttp EventSource`. Jawaban AI di-render token-demi-token secara real-time pada komponen UI Android (TextView), memberikan persepsi respon yang instan di bawah 1 detik.
Kestabilan Bluetooth Printer Thermal
Tantangan: Sinyal Bluetooth printer portabel sering terputus di tengah antrian kasir yang sibuk, menyebabkan struk tidak tercetak utuh atau data corrupt.
Solusi: Membangun `BluetoothConnectionManager` di Kotlin yang mengimplementasikan mekanisme queueing data byte pencetakan. Modul ini dilengkapi dengan deteksi status heartbeat koneksi dan fitur auto-reconnect asinkron sebelum ByteCode ESC/POS dikirim ke printer target.