Sabtu, 16 Mei 2026

Panduan Instalasi FinanceTracker Pro V4 Ikuti langkah-langkah di bawah ini untuk memasang aplikasi Anda dalam 5 Menit.

Panduan Instalasi FinanceTracker Pro V4 Premium Thumbnail
✨ V4.0 PREMIUM + GEMINI AI

PANDUAN INSTALASI
FINANCETRACKER PRO.

Web-App Keuangan Pribadi Premium dengan Kedaulatan Data 100% di Google Sheets Anda. Ikuti langkah-langkah di bawah ini. Estimasi: 5 Menit.

Tahap 1: Persiapan Database (Google Sheets)
1
Buka Google Drive dan buat Spreadsheet baru. Beri nama (misal: Database MyFinance V4).
Langkah 1
2
Klik menu Extensions (Ekstensi) > Apps Script.
Langkah 2
3
Hapus semua kode default yang ada di dalam editor tersebut.
Langkah 3
4
Copy & Paste seluruh kode dari file Code.gs (Backend GAS V4) yang sudah disediakan ke dalam editor.
Langkah 4
5
Klik ikon Save (Simpan) dengan nama proyek Backend Finance V4.
Langkah 5
6
Pada bagian atas (sebelah tombol Run), pastikan fungsi yang terpilih adalah setupDatabase, lalu klik tombol Run (Jalankan).
Langkah 6
7
Muncul pop-up Review Permissions > Pilih akun Google Anda > Klik Advanced > Klik Go to Backend Finance V4 (unsafe) > Klik Allow.
Langkah 7
8
Periksa Google Sheets Anda; tab Users, Transaksi, dan Settings akan otomatis muncul.
Langkah 8
Tahap 2: Menghubungkan API (Deployment)
Langkah ini penting agar aplikasi bisa "berbicara" dengan database.
1
Di layar Apps Script, klik tombol biru Deploy (Terapkan) di pojok kanan atas > Pilih New Deployment (Deployment baru).
Tahap 2 Langkah 1
2
Klik ikon ⚙️ (Select type) > Pilih Web App (Aplikasi Web).
Tahap 2 Langkah 2
3
Isi deskripsi: Finance V4.
Execute as (Jalankan sebagai): Pilih Me (Saya).
Who has access (Siapa yang memiliki akses): Wajib pilih Anyone (Siapa saja)
Klik tombol Deploy.
Tahap 2 Langkah 3
4
Apabila Google Appsscript meminta izin akses, Izinkan saja. Pastika sampai ketampilan berikut!
Salin (Copy) teks yang ada di bawah "Web App URL".

(Link ini akan kita pakai di tahap selanjutnya).
Tahap 2 Langkah 7
Tahap 3: Pemasangan di Blogger dan Konfigurasi File Utama (index.html)
1
Silakan login Blogger menggunakan akun Gmail Anda di www.blogger.com
Tahap 3 Langkah 1
2
Buka Dashboard Blogger > Buat Halaman (Page) baru.
Tahap 3 Langkah 2
3
Ubah mode editor dari Compose View menjadi HTML View (ikon pensil/kurung siku <>).
Tahap 3 Langkah 3
4
Hapus semua kode yang ada, lalu Paste seluruh isi file index.html yang sudah dikonfigurasi.
Tahap 3 Langkah 4
5
Cari bagian kode JavaScript di baris atas (sekitar baris 240). atau gunakan fungsi Find (CTRL+F) untuk mencari kata "GAS_URL ="

Ganti kata "MASUKKAN_URL..." dengan URL Web App yang Anda salin di Tahap 2 tadi.
const GAS_URL = "MASUKKAN_URL_WEB_APP_GAS_ANDA_DISINI";

Input API Key Gemini AI (Opsional - Pengaturan AI): Jika Anda ingin fitur AI langsung aktif tanpa harus input manual di aplikasi, masukkan API Key Gemini Anda di antara tanda kutip HARDCODED_API_KEY.
const HARDCODED_API_KEY = "#";
Tahap 3 Langkah 5-7
8
Klik tombol Publikasikan di pojok kanan atas Blogger Anda.
Tahap 3 Langkah 8
Tahap 4: Bypass Tema Agar Full Screen di HP
1
Agar aplikasi tampil penuh (tidak tertutup judul postingan Blogger):

Buka menu Theme (Tema) di Blogger, lalu klik ikon panah ke bawah di samping tombol Customize (Sesuaikan).
Tahap 4 Langkah 1
2
Klik pilihan Beralih ke tema klasik generasi pertama, kemudian pilih Beralih tanpa pencadangan.

✅ Selesai!
Tahap 4 Langkah 2
Selamat! Seluruh Proses Instalasi Selesai.
Sekarang buka link Halaman Blogger Anda melalui HP.
Login Default:

Username: admin
Password: admin2026

Catatan: Segera ubah username & password Anda di menu Akun & Pengaturan setelah berhasil login pertama kali.
Tampilan Akhir
Ekstra: Cara Mendapatkan API Key Gemini
Untuk mengaktifkan fitur AI Pintar secara gratis:

1. Buka Google AI Studio.
2. Klik tombol Create API Key.
3. Salin kodenya dan tempel di aplikasi Anda (Menu Akun > Pengaturan AI Gemini).
Gemini API

Kamis, 14 Mei 2026

Poultry pro demo

Poultry Manager V3.8 - Lightning Speed

Memuat Data Dokumen...

Web Invoice View

{{ publicInvoiceData.Tipe === 'Pemasukan' ? 'INVOICE PENJUALAN' : 'BUKTI PENGELUARAN' }}

#{{ publicInvoiceData.No_Invoice }}

{{ settings && settings.Judul_Web ? settings.Judul_Web : 'Perusahaan' }}

{{ settings && settings.Alamat ? settings.Alamat : '-' }}

WA: {{ settings && settings.Kontak_WA ? settings.Kontak_WA : '-' }}

{{ publicInvoiceData.Tipe === 'Pemasukan' ? 'Ditagihkan Kepada:' : 'Dibayarkan Kepada:' }}

{{ publicInvoiceData.Nama }}

{{ publicInvoiceData.Alamat || '-' }}

Telp: {{ publicInvoiceData.WA || '-' }}

Tanggal Transaksi:

{{ publicInvoiceData.Tipe_Bayar === 'Cicil' ? formatDateDDMMYYYY(publicInvoiceData.Tanggal) : formatDateInvoice(publicInvoiceData.Tanggal) }}

Tipe Pembayaran:

{{ publicInvoiceData.Tipe_Bayar === 'Lunas' ? 'CASH' : 'KREDIT' }}

No Deskripsi Item Kuantitas Harga Satuan Subtotal
{{ idx + 1 }} {{ it.Nama }} {{ formatNumber(it.Qty) }} {{ formatRupiah(it.Harga_Satuan || (it.Subtotal/it.Qty)) }} {{ formatRupiah(it.Subtotal) }}

Riwayat Pembayaran

TanggalKeteranganNominal Masuk
{{ formatDate(rw.tgl) }} {{ rw.ket }} + {{ formatRupiah(rw.nominal) }}

Informasi Transfer Pembayaran:

{{ settings && settings.Bank ? settings.Bank : '-' }}

No Rekening: {{ settings && settings.No_Rekening ? settings.No_Rekening : '-' }}

Atas Nama: {{ settings && settings.Nama_Rekening ? settings.Nama_Rekening : '-' }}

Total Tagihan {{ formatRupiah(publicInvoiceData.Total) }}
Telah Dibayar - {{ formatRupiah(publicInvoiceData.Total - publicInvoiceData.Sisa) }}
Sisa Tagihan {{ formatRupiah(publicInvoiceData.Sisa) }}
STATUS: {{ publicInvoiceData.Status }}
Terima kasih atas kerja sama Anda dengan {{ settings && settings.Nama_Perusahaan ? settings.Nama_Perusahaan : (settings && settings.Judul_Web ? settings.Judul_Web : '') }}.

Dokumen Invoice Tidak Ditemukan.

{{ (settings && settings.Judul_Web) || 'Selamat Datang' }}

{{ (settings && settings.Deskripsi_Web) || 'Sistem manajemen peternakan broiler modern berbasis data.' }}

Update Populasi Aktif

NoBatch & BrandTgl MulaiUmurSisa Populasi
{{ idx + 1 }} {{ b.Nama_Batch }} ({{ b.Brand }}) {{ formatDate(b.Tgl_Mulai) }} {{ calculateAge(b.Tgl_Mulai) }} Mgg {{ formatNumber(b.Populasi_Sisa) }}
Belum ada batch aktif.

Cara Pemesanan

Kontak Usaha

{{ (currMod || '').replace('_', ' ') }}

{{ user && user.username ? user.username.charAt(0).toUpperCase() : '' }}

Menyiapkan Data Server...

Kas Perusahaan

{{ formatRupiah(summary.saldo || 0) }}

Total Piutang

{{ formatRupiah(summary.piutang || 0) }}

Total Hutang

{{ formatRupiah(summary.hutang || 0) }}

Populasi Aktif

{{ formatNumber(summary.populasi || 0) }} Ek

Statistik Arus Kas (4 Bln Terakhir)

Aktivitas Terbaru

{{ act.Ket }}

{{ formatDate(act.Tgl) }}

Belum ada aktivitas.

Siklus Produksi Batch

Total Populasi Sisa

{{ formatNumber(summary.populasi || 0) }} Ekor

Batch Aktif

{{ activeBatches.length }} Kandang

Estimasi Nilai Aset

{{ formatRupiah((summary.populasi || 0) * 35000) }} *Asumsi Harga 35rb/Ekor

ID BatchNama & BrandAwalSisa PopulasiStatusOpsi
#{{ b.ID_Batch }}

{{ b.Nama_Batch }}

{{ b.Brand }} • {{ formatDate(b.Tgl_Mulai) }}

{{ formatNumber(b.Populasi_Awal) }} {{ formatNumber(b.Populasi_Sisa) }} {{ b.Status }}
Data batch tidak ditemukan.

Laba / Rugi Bersih

{{ formatRupiah(selectedBatchData.Laba) }}

Total Pemasukan

{{ formatRupiah(selectedBatchData.Pemasukan) }}

Total Biaya Keluar

{{ formatRupiah(selectedBatchData.Pengeluaran) }}

Rasio Populasi Ayam

Sisa: {{ formatNumber(selectedBatchData.Populasi_Sisa) }} Mati: {{ formatNumber(getMatiCount(selectedBatchData.HistoriKematian)) }}
Histori Penjualan (Pemasukan)
{{idx+1}}.

{{ j.pembeli }}

{{ formatDate(j.tgl) }} • {{ formatNumber(j.qty) }} EKOR

+{{ formatRupiah(j.total) }}

Belum ada penjualan.

Catatan Kematian / Afkir
{{idx+1}}.

{{ m.ket }}

{{ formatDate(m.tgl) }}

-{{ formatNumber(m.qty) }} EKOR

Tidak ada catatan kematian.

Rincian Pengeluaran (Biaya)
{{idx+1}}.

{{ item.nama }}

QTY: {{ item.qty }}

{{ formatRupiah(item.total) }}

Belum ada rincian pengeluaran.

Total Biaya Keluar: {{ formatRupiah(selectedBatchData.Pengeluaran) }}
Rekap Pemakaian Pakan/Obat
{{idx+1}}.

{{ item.nama }}

{{ formatNumber(item.qty) }} {{ item.Satuan || 'Unit' }}

Belum ada pemakaian barang.

.
Pilih batch untuk melihat laporan lengkap.
Item BarangMasuk (Beli)Keluar (Log)Stok AkhirAksi
{{ item.Nama }} {{ item.Beli }} {{ item.Satuan }} -{{ item.Pakai }} {{ item.Sisa }} {{ item.Satuan }}
Belum ada data stok barang.

{{ trxType === 'Pemasukan' ? 'Mencatat Hasil Jual' : 'Mencatat Biaya Usaha' }}

{{ trxType === 'Pemasukan' ? 'Setiap penjualan akan menambah saldo kas perusahaan otomatis.' : 'Setiap pembelian akan memotong saldo kas & Master Stok otomatis.' }}

Data {{ trxType === 'Pemasukan' ? 'Pelanggan' : 'Vendor' }}

Rincian Item Belanja/Jual Auto Kalkulasi
{{ formatRupiah(item.Subtotal) }}
Rp
Total Tagihan{{ formatRupiah(totalTrx) }}
Dibayar Awal (DP)- {{ formatRupiah(formTrx.DP) }}
Status Akhir Lunas Beres Sisa: {{ formatRupiah(sisaTrx) }}
No. InvoiceTgl & RelasiTotal TagihanStatusOpsi
#{{ inv.No_Invoice }}

{{ inv.Nama }}

{{ formatDate(inv.Tanggal) }} • {{ inv.Tipe }}

{{ formatRupiah(inv.Total) }} {{ inv.Status }}
Data invoice/tagihan tidak ditemukan.

{{ selectedInvoice.Tipe === 'Pemasukan' ? 'INVOICE PENJUALAN' : 'BUKTI PENGELUARAN' }}

#{{ selectedInvoice.No_Invoice }}

{{ settings && settings.Judul_Web ? settings.Judul_Web : 'Perusahaan' }}

{{ settings && settings.Alamat ? settings.Alamat : '-' }}

WA: {{ settings && settings.Kontak_WA ? settings.Kontak_WA : '-' }}

{{ selectedInvoice.Tipe === 'Pemasukan' ? 'Ditagihkan Kepada:' : 'Dibayarkan Kepada:' }}

{{ selectedInvoice.Nama }}

{{ selectedInvoice.Alamat || '-' }}

Telp: {{ selectedInvoice.WA || '-' }}

Tanggal Transaksi:

{{ selectedInvoice.Tipe_Bayar === 'Cicil' ? formatDateDDMMYYYY(selectedInvoice.Tanggal) : formatDateInvoice(selectedInvoice.Tanggal) }}

Tipe Pembayaran:

{{ selectedInvoice.Tipe_Bayar === 'Lunas' ? 'CASH' : 'KREDIT' }}

No Deskripsi Item Kuantitas Harga Satuan Subtotal
{{ idx + 1 }} {{ it.Nama }} {{ formatNumber(it.Qty) }} {{ formatRupiah(it.Harga_Satuan || (it.Subtotal/it.Qty)) }} {{ formatRupiah(it.Subtotal) }}

Riwayat Pembayaran

TanggalKeteranganNominal Masuk
{{ formatDate(rw.tgl) }} {{ rw.ket }} + {{ formatRupiah(rw.nominal) }}

Informasi Transfer Pembayaran:

{{ settings && settings.Bank ? settings.Bank : '-' }}

No Rekening: {{ settings && settings.No_Rekening ? settings.No_Rekening : '-' }}

Atas Nama: {{ settings && settings.Nama_Rekening ? settings.Nama_Rekening : '-' }}

Total Tagihan {{ formatRupiah(selectedInvoice.Total) }}
Telah Dibayar - {{ formatRupiah(selectedInvoice.Total - selectedInvoice.Sisa) }}
Sisa Tagihan {{ formatRupiah(selectedInvoice.Sisa) }}
STATUS: {{ selectedInvoice.Status }}
Terima kasih atas kerja sama Anda dengan {{ (settings && settings.Nama_Perusahaan) || (settings && settings.Judul_Web) || '' }}.

Catat Log Kandang

Kematian memotong populasi, pakan/obat memotong Master Stok.

Konfigurasi Identitas Tampilan Publik & Sidebar


Kategori Pemasukan

{{ k }}

Kategori Pengeluaran (Belanja)

{{ k }}

Kategori Log Harian

{{ k }}

Database Akses Pengguna

Identitas UserHak AksesTindakan
{{ u.username }}
{{ u.role }}

Konfigurasi Sistem Utama

ID Folder Google Drive (Untuk File Nota/Kuitansi)

Masukkan ID Folder GDrive Anda. Jika dikosongkan, sistem akan otomatis membuat folder bernama "PoultryManager_Uploads" di Drive root Anda.

Saklar Fitur Cicilan / Termin

Buka/tutup opsi pembayaran DP bertahap di menu Registrasi Batch dan menu Kas & Transaksi.

Tampilkan Tombol Portal Staff

Tampilkan atau sembunyikan tombol Login di halaman publik. (Klik logo web 3x untuk login rahasia jika disembunyikan).

Hard Reset / Inisialisasi Database

Fungsi ini WAJIB dijalankan pertama kali saat aplikasi diinstal untuk menyuntik struktur kolom ke Google Sheets.

{{ formBatch.isEdit ? 'Edit Data Batch' : 'Registrasi Batch Baru' }}

{{ formatRupiah(batchTotal) }}
{{ formBatch.NotaName || 'Pilih File Nota...' }}

{{ formUser.isEdit ? 'Ubah Hak Akses User' : 'Buka Akses User Baru' }}

Internal Access

Catat Cicilan

Sisa Hutang: {{ formatRupiah(selectedInvoice.Sisa) }}

Mutasi: {{ selectedStokItem ? selectedStokItem.Nama : '' }}

TanggalKeteranganPerubahan
{{ formatDate(h.tgl) }}{{ h.ket }}{{ h.tipe==='in'?'+':'-' }} {{ h.qty }} {{ selectedStokItem ? selectedStokItem.Satuan : '' }}
Belum ada data riwayat mutasi.
{{ toast.msg }}