Catatan Harian Mas Andri

Silahkan digunakan dengan bijaksana

back

Membangun Sistem Ekstraksi Data KTP dengan AI: Implementasi Praktis dengan Google Apps Script

18 April 2025 || 22:17:47 WIB || ClassyID

Di era digital, proses ekstraksi data dari dokumen fisik masih menjadi tantangan besar di Indonesia, khususnya untuk dokumen identitas seperti Kartu Tanda Penduduk (KTP).

Proses manual yang memakan waktu dan rentan kesalahan membuat otomatisasi menjadi kebutuhan. Dalam artikel ini, saya akan membahas bagaimana membangun sistem ekstraksi data KTP menggunakan Gemini AI dari Google, diimplementasikan dengan Google Apps Script, dan diintegrasikan dengan WhatsApp untuk akses yang lebih mudah.

 

## Latar Belakang Masalah Beberapa masalah yang sering dihadapi dalam proses ekstraksi data KTP secara manual:

1. **Waktu yang lama**: Mengetik ulang data KTP memerlukan waktu 2-5 menit per dokumen

2. **Kesalahan manusia**: Kesalahan ketik sering terjadi dalam proses manual

3. **Kurangnya standarisasi**: Format penyimpanan data KTP yang tidak konsisten

4. **Skalabilitas rendah**: Tim administratif kewalahan saat harus memproses banyak KTP ## Solusi: KTPScan AI KTPScan AI adalah sistem ekstraksi data KTP otomatis yang mengatasi masalah-masalah tersebut dengan menggunakan:

1. **Gemini AI** dari Google untuk pemrosesan gambar dan ekstraksi teks

2. **Google Apps Script** sebagai backend serverless

3. **Google Sheets** untuk penyimpanan dan organisasi data

4. **Webhook WhatsApp** untuk kemudahan penggunaan

 

## Arsitektur Sistem Sistem KTPScan AI terdiri dari tiga komponen utama: ###

1. Backend Google Apps Script Google Apps Script digunakan sebagai backend karena: - Serverless (tidak membutuhkan infrastruktur) - Integrasi mudah dengan Google Sheets dan Drive - Memungkinkan deployment API tanpa konfigurasi tambahan Kode Google Apps Script memiliki beberapa fungsi utama: - Menerima gambar KTP - Berkomunikasi dengan Gemini AI - Memproses hasil analisis - Menyimpan data ke spreadsheet - Menyediakan endpoint API ###

2. API RESTful API RESTful dibangun di atas Google Apps Script Web App, memungkinkan sistem lain untuk terhubung dan menggunakan layanan ekstraksi data KTP. API menyediakan endpoint untuk: - Pemrosesan gambar KTP - Mendapatkan dokumentasi API - Memeriksa status API Respons API dikembalikan dalam format JSON terstruktur, memudahkan integrasi dengan berbagai platform. ###

3. Webhook WhatsApp Untuk meningkatkan aksesibilitas, sistem ini juga terintegrasi dengan WhatsApp melalui webhook PHP. Pengguna dapat mengirim gambar KTP ke nomor WhatsApp bot dengan keterangan ".ktp", dan bot akan membalas dengan data yang diekstraksi.

 

## Implementasi Detail ### Ekstraksi Data dengan Gemini AI Inti dari sistem ini adalah prompt rekayasa yang diberikan ke Gemini AI untuk mengekstrak data dari gambar KTP:

```javascript const PROMPT_TEMPLATE = `Fokus HANYA pada dokumen yang terlihat seperti Kartu Tanda Penduduk (KTP) Indonesia. Jika dokumen yang dilihat tidak memuat informasi KTP, silakan jawab dengan "Dokumen ini bukan KTP" dan jangan lakukan analisis apa pun. Jika dokumen adalah KTP, ekstrak data berikut:

1. NIK (Nomor Induk Kependudukan)

2. Nama lengkap

3. Tempat/Tanggal Lahir

4. Jenis Kelamin

5. Golongan Darah (jika ada) ...`;

Prompt didesain dengan hati-hati untuk:

API Endpoint

API endpoint dikonfigurasi untuk menerima request POST dengan parameter:

Berikut contoh implementasi handler untuk permintaan POST:

function doPost(e) {
  try {
    // Get parameters from form data or JSON
    let data;
    
    if (e.postData && e.postData.contents) {
      try {
        // Try parsing as JSON first
        data = JSON.parse(e.postData.contents);
      } catch (error) {
        // If not JSON, fall back to form parameters
        data = e.parameter;
      }
    } else {
      // Use form parameters directly
      data = e.parameter;
    }
    
    // Handle different API actions
    let result;
    
    switch(data.action) {
      case 'process-ktp':
        result = processKTPAPI(data);
        break;
      // ...lainnya
    }
    
    // Return result
    return ContentService.createTextOutput(JSON.stringify(result))
      .setMimeType(ContentService.MimeType.JSON);
    
  } catch (error) {
    // Error handling
  }
}

Webhook WhatsApp

Webhook WhatsApp menggunakan PHP untuk menerima pesan, mengekstrak gambar, dan berkomunikasi dengan API:

// Cek jika pesan berisi keyword ".ktp" dan gambar
if (($message == '.ktp' || strpos($message, '.ktp') === 0) && $bufferimage) {
    // Log processing
    file_put_contents('ktp_log.txt', '[' . date('Y-m-d H:i:s') . "] Processing KTP from: $from\n", FILE_APPEND);
    
    // Analisis KTP
    $result = processKTP($bufferimage);
    
    if ($result && isset($result['data']['analysis']['parsed'])) {
        $parsed = $result['data']['analysis']['parsed'];
        
        // Format dan kirim respons
        // ...
    }
}

Respons yang dikirim kembali ke pengguna diformat dengan baik menggunakan class ResponWebhookFormatter.

Kasus Penggunaan

Sistem ini dapat digunakan dalam berbagai skenario:

  1. Pendaftaran Pelanggan: Bank, asuransi, atau telco dapat menggunakan sistem ini untuk mempercepat proses registrasi
  2. Administrasi Pemerintahan: Mempercepat proses input data penduduk
  3. Verifikasi Identitas: Membandingkan data yang diinput dengan data KTP untuk verifikasi
  4. Self-Service: Pengguna dapat memindai KTP mereka sendiri menggunakan WhatsApp

Keamanan dan Pertimbangan Privasi

Karena KTP berisi data pribadi sensitif, beberapa praktek keamanan yang diimplementasikan:

  1. Enkripsi Data: Data sensitif dalam transmisi dienkripsi
  2. Penyimpanan Terbatas: Data hanya disimpan selama diperlukan
  3. Logging dan Audit: Semua akses dan penggunaan sistem dicatat
  4. Pembatasan Akses: API dikonfigurasi dengan kontrol akses yang ketat

Keterbatasan dan Pengembangan Masa Depan

Meskipun sistem ini sudah berfungsi dengan baik, masih ada beberapa keterbatasan:

  1. Akurasi AI: Gemini AI mungkin tidak selalu akurat, terutama untuk gambar berkualitas rendah
  2. Skalabilitas: Google Apps Script memiliki batas kuota harian
  3. Dukungan Format: Saat ini hanya mendukung gambar JPG/PNG

Pengembangan masa depan yang direncanakan:

  1. Integrasi dengan WhatsApp Business API resmi untuk keandalan lebih tinggi
  2. Verifikasi Data: Validasi data KTP menggunakan database pemerintah
  3. Perbaikan Gambar: Preprocessing gambar untuk meningkatkan akurasi
  4. Analisis Lanjutan: Deteksi KTP palsu atau yang dimanipulasi

Kesimpulan

KTPScan AI menunjukkan bagaimana teknologi AI dapat diimplementasikan secara praktis untuk menyelesaikan masalah sehari-hari dalam konteks Indonesia. Dengan menggunakan Google Apps Script dan Gemini AI, sistem ini menyediakan solusi ekstraksi data KTP tanpa perlu infrastruktur kompleks.

Solusi semacam ini dapat menghemat ribuan jam kerja administratif dan mengurangi kesalahan input data secara signifikan. Dengan biaya implementasi yang rendah dan kemudahan penggunaan, sistem seperti KTPScan AI dapat menjadi langkah awal menuju digitalisasi proses administrasi yang lebih efisien di Indonesia.


Disclaimer: Sistem ini adalah proof-of-concept dan penerapannya harus mematuhi semua peraturan perlindungan data yang berlaku. Penggunaan data KTP harus selalu mengutamakan privasi dan keamanan pengguna.