---
title: "Baca Invoice dan Nota Otomatis dengan OCR dan AI"
description: "Cara mengambil data invoice dan nota dengan OCR, merapikannya dengan AI, memvalidasi total, lalu mengirimnya ke spreadsheet atau software akuntansi."
url: "https://nivelva.com/insight/ocr-ai-invoice-otomatis"
category: "AI \u0026 Otomasi"
tags: ["ocr","invoice","ekstraksi data","ai","otomasi akuntansi"]
author: "Theresia Candiawan"
published: "2026-11-07T10:02:00+07:00"
updated: "2026-11-07T10:02:00+07:00"
language: "id"
publisher: "Nivelva (https://nivelva.com)"
---

# Baca Invoice dan Nota Otomatis dengan OCR dan AI

> **Jawaban singkat:** Invoice dan nota bisa dibaca otomatis dalam tiga tahap: OCR mengubah gambar atau PDF menjadi teks, model AI menyusun teks itu ke kolom tetap (vendor, tanggal, nomor, item, total), lalu aturan validasi mengecek hitungan sebelum data masuk ke spreadsheet atau software akuntansi.

Akhir bulan, tumpukan nota belanja operasional, foto struk dari tim lapangan, dan PDF invoice pemasok menunggu untuk diketik ulang ke spreadsheet. Pekerjaannya membosankan, rawan salah ketik, dan baru selesai setelah berjam-jam. Padahal sebagian besar isinya punya pola yang sama: nama penjual, tanggal, nomor dokumen, daftar barang, dan total.

Kombinasi OCR dan AI bisa memotong sebagian besar pekerjaan itu. OCR membaca hurufnya, AI memahami mana yang tanggal dan mana yang total, lalu aturan sederhana memastikan angkanya masuk akal. Manusia tetap memeriksa, tetapi tidak lagi mengetik dari nol.

## Tiga tahap yang perlu dipisahkan

Banyak percobaan gagal karena semua dibebankan ke satu alat. Lebih mudah dipahami bila prosesnya dipecah.

Tahap pertama adalah **OCR (optical character recognition)**, yang mengubah gambar atau PDF hasil pindaian menjadi teks. Mesin OCR open-source seperti Tesseract mengenali lebih dari 100 bahasa, termasuk bahasa Indonesia (data bahasa `ind`), dan dipakai oleh berbagai alat pengolah PDF. Alat PDF self-hosted seperti Stirling PDF menyediakan fitur OCR untuk membuat PDF pindaian bisa dicari dan disalin teksnya. Bila invoice sudah berupa PDF digital (bukan hasil scan), teks biasanya bisa diambil langsung tanpa OCR.

Tahap kedua adalah **penyusunan data dengan AI**. Teks hasil OCR masih berantakan: kolom tercampur, baris terpotong, label berbeda antarpemasok ("Total", "Jumlah", "Grand Total"). Model bahasa diminta membaca teks itu dan mengisi struktur tetap, misalnya JSON dengan kolom vendor, tanggal, nomor invoice, daftar item, subtotal, pajak, dan total. Model yang mendukung input gambar bahkan bisa membaca foto nota langsung, meski hasilnya tetap perlu diperiksa seperti hasil OCR.

Tahap ketiga adalah **validasi dengan aturan**, bukan dengan AI. Ini bagian yang sering dilupakan dan paling penting.

## Menulis instruksi ekstraksi yang konsisten

Instruksi untuk model sebaiknya sangat spesifik. Tentukan nama kolom yang persis, format tanggal (misalnya tahun-bulan-tanggal), format angka tanpa titik ribuan, dan apa yang dilakukan bila kolom tidak ditemukan. Aturan terakhir ini krusial: minta model mengisi kosong atau null, bukan menebak. Model yang dipaksa mengisi semua kolom cenderung mengarang, masalah yang dijelaskan di [halusinasi AI](https://nivelva.com/insight/halusinasi-ai-cara-mengatasi).

Contoh struktur keluaran:

```json
{
  "vendor": "CV Sumber Makmur",
  "tanggal": "2026-10-28",
  "nomor": "INV/2026/10/115",
  "item": [
    {"nama": "Kertas A4", "qty": 5, "harga": 52000, "jumlah": 260000}
  ],
  "subtotal": 260000,
  "pajak": null,
  "total": 260000
}
```

Pakai fitur keluaran terstruktur bila API model yang kamu pakai menyediakannya, dan set temperature rendah. Keduanya membuat hasil lebih seragam dari satu dokumen ke dokumen lain.

## Validasi: biarkan rumus yang berhitung

Setelah data terstruktur, jalankan pengecekan otomatis yang sederhana. Tabel berikut merangkum pengecekan yang paling berguna dan kapan dokumen harus ditandai untuk ditinjau manual.

| Pengecekan | Cara | Tandai untuk ditinjau bila |
|:--|:--|:--|
| Jumlah per item | qty dikali harga dibandingkan jumlah | Selisih lebih dari pembulatan wajar |
| Subtotal | Jumlah semua item dibandingkan subtotal | Tidak sama |
| Total | Subtotal ditambah pajak dikurangi diskon | Tidak sama dengan total di dokumen |
| Tanggal | Format valid dan masuk periode berjalan | Tanggal di masa depan atau terlalu lama |
| Duplikat | Kombinasi vendor dan nomor dokumen | Sudah pernah tercatat |
| Kolom wajib | Vendor, tanggal, total terisi | Ada yang kosong |
| Nominal besar | Total di atas ambang tertentu | Selalu ditinjau |

Dokumen yang lolos semua pengecekan masuk ke antrean persetujuan cepat. Yang gagal masuk antrean tinjauan dengan gambar aslinya ditampilkan di samping data, agar pemeriksa bisa membandingkan tanpa membuka file lain.

Pengecekan duplikat patut diberi perhatian khusus. Invoice yang sama sering terkirim dua kali, sekali lewat email dan sekali lewat WhatsApp, dan tanpa pengecekan bisa terbayar dua kali.

## Mengirim hasil ke spreadsheet atau software akuntansi

Untuk tim kecil, tujuan paling sederhana adalah spreadsheet: satu baris per dokumen, kolom tautan ke file asli, dan kolom status (lolos, perlu tinjauan, disetujui). Setelah disetujui, data bisa disalin atau diimpor ke software akuntansi.

Untuk volume yang lebih besar, alur otomasi bisa mengambil lampiran dari email atau folder bersama, menjalankan OCR, memanggil model AI, menjalankan validasi, lalu membuat draf tagihan pemasok di software akuntansi lewat API. Alat seperti n8n cocok untuk merangkai langkah-langkah ini, perkenalannya ada di [apa itu n8n](https://nivelva.com/insight/apa-itu-n8n). Draf, bukan transaksi final: persetujuan tetap di tangan tim keuangan. Gambaran lebih luas tentang peran AI di bagian keuangan dibahas di [AI untuk tim keuangan](https://nivelva.com/insight/ai-untuk-tim-keuangan).

Satu pertimbangan lagi adalah kerahasiaan. Invoice memuat nama pemasok, nilai transaksi, dan kadang data pribadi. Bila tidak ingin dokumen dikirim ke layanan AI publik, OCR bisa dijalankan di server sendiri dan penyusunan data memakai model open-weight lokal. Kualitasnya bergantung pada model yang dipilih dan kemampuan server, pilihan modelnya dibahas di [model AI open-weight](https://nivelva.com/insight/model-ai-open-source).

## Hal yang membuat hasilnya lebih baik

Kualitas input menentukan banyak hal. Foto yang miring, buram, atau terkena bayangan menurunkan akurasi OCR. Minta tim lapangan memotret nota di permukaan rata dengan cahaya cukup, atau memakai fitur pindai dokumen di aplikasi ponsel yang otomatis meluruskan gambar.

Simpan juga contoh dokumen dari pemasok rutin. Bila format satu pemasok selalu salah terbaca di kolom tertentu, tambahkan catatan khusus di instruksi, misalnya "untuk pemasok ini, nomor invoice ada di pojok kanan bawah".

Mulailah dari satu jenis dokumen, misalnya invoice dari lima pemasok terbesar, sebelum merambah ke struk belanja yang formatnya jauh lebih beragam. Ukur berapa persen dokumen yang lolos validasi tanpa koreksi dan kolom mana yang paling sering salah. Angka dari prosesmu sendiri ini menjadi dasar keputusan: apakah perlu model yang lebih kuat, OCR yang lebih baik, atau cukup memperbaiki kualitas foto.

Pembagiannya tetap sama di skala berapa pun: OCR membaca, AI menyusun, rumus memeriksa, dan manusia menangani dokumen yang ditandai. Tim keuangan tidak lagi mengetik ulang, cukup memeriksa pengecualian.

## Sumber

- <https://github.com/tesseract-ocr/tesseract>
- <https://github.com/Stirling-Tools/Stirling-PDF>

---

Diterbitkan oleh Nivelva Insight (https://nivelva.com/insight/). Artikel ini: https://nivelva.com/insight/ocr-ai-invoice-otomatis
Kontak Nivelva: WhatsApp https://wa.me/6285111245007, email hello@nivelva.com
