Pembantu Formula LibreOffice Calc (LibreOffice Calc Formula Helper)


Sebuah alat berbasis Python untuk membuat, menguji, dan mengelola formula LibreOffice Calc dengan cepat – dilengkapi dengan sistem favorit, sinkronisasi tim, kemampuan multibahasa, dukungan RTL, pencadangan & pemulihan (Backup & Restore), serta manajer plugin.

🚀 Fitur


  • 📑 4 tab dengan lebih dari 60 fungsi

  • 🌐 38 bahasa (termasuk bahasa Hindi dengan instalasi font otomatis)

  • 🔤 Dukungan RTL (Arab, Ibrani, dan banyak lagi) – deteksi otomatis arah penulisan

  • ⭐ Sistem favorit (lokal & sinkronisasi tim melalui drive jaringan)

  • 🛠 Panel admin untuk favorit tim (dilindungi kata sandi)

  • 📋 Formula yang dapat langsung disalin dengan penyorotan sintaksis (Syntax Highlighting)

  • ✏️ Kolom output yang dapat diedit dengan fitur Undo/Redo

  • 📖 Bantuan terintegrasi & referensi fungsi (sesuai bahasa yang dipilih)

  • 💾 Penyimpanan otomatis (JSON, ditulis secara atomik)

  • 🌙 Mode Gelap (Dark Mode)

  • 🔌 Manajer plugin untuk membuat plugin formula sendiri

  • ⌨️ Hotkey global Ctrl+F12 untuk meminimalkan/memulihkan jendela

  • 🗄️ Pencadangan & Pemulihan (Backup & Restore) – mengamankan semua pengaturan dan favorit dengan nama dan kata sandi

  • 🔍 Validator JSON – pemeriksaan dan koreksi file languages.json dan formula\\\_explanations.json

  • 🖥️ Penggunaan


    1. Memasukkan Input

  • Rentang sel (misalnya A1:A10)

  • Sel 1 / Sel 2 (misalnya A1, B1)

  • Parameter opsional (misalnya teks atau indeks)

  • Mode referensi absolut yang dapat dipilih: A1, $A1, A$1, $A$1

  • 2. Memilih Fungsi Pilih salah satu tab dan klik sebuah fungsi – formula akan segera dibuat.

    3. Menyesuaikan Formula Formula yang dihasilkan dapat langsung diedit di dalam kolom output.

    4. Menyalin Salin ke papan klip (Clipboard) dengan satu klik (termasuk warna sintaksis).

    5. Menggunakan Favorit

  • ⭐ Simpan → mengamankan formula saat ini (Ctrl+S)

  • 📂 Muat → menggunakan kembali formula

  • ❌ Hapus → tombol Delete atau tombol hapus pada layar

  • 🕐 Riwayat → menampilkan formula yang terakhir digunakan

  • 📊 Ikhtisar Tab


    Tab 1 – Fungsi Dasar + - \\\* / ^ SUM, AVERAGE, MIN, MAX, MEDIAN, COUNT, COUNTA, SUMPRODUCT

    Tab 2 – Fungsi Lanjutan IF, AND, OR, NOT SUMIF, COUNTIF, AVERAGEIF, SUMIFS, STDEV, VAR, COUNTBLANK, LARGE

    Tab 3 – Tanggal & Teks TODAY, NOW, YEAR, MONTH, DAY, DATE, DATEDIF, WEEKDAY CONCATENATE, LEN, LEFT, RIGHT, MID, UPPER, LOWER, TRIM

    Tab 4 – Pencarian & Pembulatan VLOOKUP, HLOOKUP, INDEX, MATCH, INDEX+MATCH ROUND, ROUNDUP, ROUNDDOWN, INT, TRUNC, ABS, MOD, SQRT, RAND

    📖 Penjelasan Formula dari Dokumentasi LibreOffice


    File formula\\\_explanations.json diisi langsung dari Dokumentasi Resmi Formula LibreOffice Calc ([https://help.libreoffice.org](https://help.libreoffice.org/)).

    Sumber Data & Pembaruan


  • Deskripsi, spesifikasi sintaksis, dan contoh diambil dari situs web bantuan resmi LibreOffice

  • Bahasa yang didukung disesuaikan dengan terjemahan yang tersedia di situs web resmi tersebut

  • File ini berisi data per fungsi: Nama, Sintaksis, Deskripsi, Contoh, dan Kategori

  • Penambahan atau koreksi dapat dilakukan secara manual di dalam file tersebut (lihat Validator JSON)

  • Struktur formula\\\_explanations.json


    `
    \{
    "SUM": \{
    "de": \{
    "syntax": "SUMME(Zahl1; Zahl2; ...)",
    "description": "Addiert alle Zahlen in einem Zellbereich.",
    "example": "=SUMME(A1:A10)"
    \},
    "en": \{
    "syntax": "SUM(Number1; Number2; ...)",
    "description": "Adds all numbers in a cell range.",
    "example": "=SUM(A1:A10)"
    \}
    \}
    \}
    `

    Kolom yang Tersedia per Entri


    | Kolom | Wajib | Deskripsi |
    | - | - | - |
    | syntax | ✅ | Sintaksis formula beserta parameternya |
    | description | ✅ | Deskripsi singkat mengenai fungsi |
    | example | ✅ | Contoh penerapan sebagai formula siap pakai |
    | note | ❌ | Catatan opsional (misalnya hal khusus atau batasan fungsi) |

    💡 Catatan: Jika suatu entri tidak tersedia dalam bahasa tertentu, aplikasi akan secara otomatis beralih kembali ke versi bahasa Inggris (Fallback).

    🔍 Validator JSON untuk File Bahasa


    Validator JSON yang terintegrasi pemeriksaan dan mengoreksi file languages.json serta formula\\\_explanations.json untuk memastikan konsistensi, kelengkapan, dan penamaan negara yang benar.

    Dapat diakses melalui Pengaturan (Settings) → 🔍 Validator JSON.

    Apa Saju yang Diperiksa?


    #### languages.json

  • ✅ Semua 38 bahasa tersedia (berdasarkan kode bahasa ISO 639-1)

  • ✅ Penamaan negara dan bahasa yang benar (misalnya "de""Deutsch", bukan "German" atau "Allemand")

  • ✅ Tidak ada kode bahasa yang ganda

  • ✅ Kolom wajib tersedia: name, native\\\_name, flag, rtl

  • ✅ Penandaan RTL diatur dengan benar (Arab, Ibrani, Persia, Urdu → "rtl": true)

  • ✅ Emoji bendera sesuai dengan kode negara

  • #### formula\\\_explanations.json

  • ✅ Semua fungsi dari ke-4 tab telah terdaftar

  • ✅ Kolom wajib tersedia: syntax, description, example

  • ✅ Tidak ada kolom yang kosong ("" atau null)

  • ✅ Kode bahasa dalam entri cocok dengan yang ada di languages.json

  • ✅ Tidak ada nama fungsi yang ganda

  • Fungsi Koreksi


    Validator dapat memperbaiki kesalahan yang ditemukan secara otomatis:

    | Jenis Kesalahan | Koreksi Otomatis |
    | - | - |
    | Penamaan negara salah | Diganti dengan penamaan yang benar sesuai standar ISO |
    | Entri bahasa hilang | Mengisi bahasa yang hilang dengan cadangan (Fallback) versi bahasa Inggris |
    | Kolom wajib kosong | Menandai entri sebagai "\\\[MISSING\\\]" untuk pemeriksaan manual |
    | Entri ganda | Menghapus duplikasi dan mempertahankan entri yang lebih lengkap |
    | Bendera RTL salah atur | Mengoreksi secara otomatis berdasarkan kode bahasa RTL yang diketahui |

    Cara Pengoperasian


    1. Buka Pengaturan (Settings) → 🔍 Validator JSON

    2. Pilih file: languages.json atau formula\\\_explanations.json (atau keduanya sekaligus)

    3. 🔎 Periksa (Check) – menampilkan semua masalah yang ditemukan dalam daftar yang jelas

    4. 🛠 Perbaiki Otomatis – menyelesaikan semua kesalahan yang dapat diperbaiki secara otomatis

    5. 💾 Simpan – menulis kembali file yang telah dikoreksi secara atomik

    6. Opsional: 📋 Ekspor Laporan – menyimpan file teks berisi semua hasil temuan

    ⚠️ Catatan: Sebelum setiap koreksi otomatis dilakukan, salinan cadangan dari file asli akan selalu dibuat (languages.json.bak / formula\\\_explanations.json.bak).

    Penamaan Negara Diketahui – Tabel Koreksi (Pilihan)


    | Kode Bahasa | Salah (Contoh) | Benar |
    | - | - | - |
    | de | German, Allemand, Deutsch\_DE | Deutsch |
    | en | Englisch, Anglais | English |
    | fr | French, Französisch | Français |
    | ar | Arabic, Arabisch | العربية |
    | zh | Chinese, Chinesisch | 中文 |
    | hi | Hindi\_IN, Hindisch | hindi |
    | he | Hebrew, Hebräisch | עبرית |
    | fa | Farsi, Persian | فارسی |
    | ur | Urdu\_PK, Urdisch | اردو |
    | tr | Turkish, Türkisch\_TR | Türkçe |
    | pl | Polish, Polnisch | Polski |
    | pt | Portuguese, Portugiesisch | Português |
    | ru | Russian, Russisch | Русский |
    | uk | Ukranian, Ukrainisch | Українська |
    | ko | Korean, Koreanisch | 한국어 |
    | ja | Japanese, Japanisch | 日本語 |

    💡 Validator memeriksa seluruh 38 bahasa yang didukung untuk memastikan penamaan asli yang benar (native\\\_name) sesuai dengan standar ISO.

    ⭐ Sistem Favorit


  • Menyimpan dan menggunakan kembali formula milik sendiri

  • Pemisahan yang jelas antara favorit pribadi dan favorit tim

  • Favorit tim bersifat proteksi-tulis / read-only (hanya admin yang dapat mengedit)

  • Mencegah adanya entri ganda

  • Kebebasan pengurutan posisi pada favorit pribadi

  • Sinkronisasi melalui drive jaringan (konfigurasi opsional)

  • Sinkronisasi Tim


    Melalui Pengaturan (Settings) → 🌐 Jalur Jaringan (Network Path), sebuah drive jaringan dapat dimasukkan (misalnya \\\\Server\\Freigabe\\formeln).

  • Saat Memulai: Favorit jaringan akan disimpan secara lokal (Cadangan Offline)

  • Saat Menyimpan: Formula pribadi akan ditulis ke jaringan, sementara formula tim tetap tidak berubah

  • 🗄️ Pencadangan & Pemulihan (Backup & Restore)


    Sistem pencadangan yang terintegrasi memungkinkan pengamanan dan pemulihan data secara penuh – termasuk data favorit, pengaturan, dan konfigurasi tim.

    Membuat Cadangan (Backup)


    Dapat diakses melalui Pengaturan (Settings) → 🗄️ Buat Cadangan:

    1. Masukkan Nama – deskripsi bebas untuk penamaan file cadangan (misalnya Backup\\\_Mei\\\_2025 atau Sebelum\\\_Pembaruan)

    2. Tentukan Kata Sandi – file cadangan akan disimpan dengan enkripsi AES; pemulihan data tidak akan dapat dilakukan tanpa kata sandi ini

    3. Pilih Lokasi Penyimpanan – lokal atau pada drive jaringan

    4. Klik pada 💾 Buat Cadangan – menghasilkan file dengan ekstensi .calc2backup

    Konten di dalam Cadangan:

  • Semua favorit pribadi (favoriten.json)

  • Semua pengaturan aplikasi (settings.json)

  • Favorit tim opsional (jika jalur jaringan dikonfigurasi)

  • Plugin yang terpasang (Metadata dan formula)

  • Memulihkan Cadangan (Restore)


    Dapat diakses melalui Pengaturan (Settings) → 📂 Pulihkan Cadangan:

    1. Pilih File Cadangan (.calc2backup)

    2. Masukkan Kata Sandi – harus cocok dengan kata sandi yang digunakan saat pembuatan cadangan

    3. Pilih Cakupan Pemulihan:

    - Hanya Favorit

    - Hanya Pengaturan

    - Pulihkan Semua Data

    4. Klik pada 🔄 Pulihkan – data akan diimpor, tidak memerlukan mulai ulang (Restart) aplikasi

    ⚠️ Catatan: Proses pemulihan data akan menimpa data yang ada saat ini. Pembuatan cadangan otomatis untuk data saat ini akan ditawarkan sebelum proses pemulihan berjalan.

    Lupa Kata Sandi


    Cadangan yang dibuat tanpa kata sandi yang benar not akan bisa dipulihkan (tidak ada pintu belakang / backdoor). Simpan kata sandi Anda dengan aman, misalnya menggunakan manajer kata sandi (Password Manager).

    🛠 Panel Admin


    Dapat diakses melalui tombol 🛠. Pada klik pertama, sebuah kata sandi baru harus ditentukan (PBKDF2-SHA256, hanya nilai hash yang disimpan).

  • Menambahkan, mengedit, dan menghapus formula tim

  • Mengubah kata sandi

  • Menulis perubahan secara langsung ke drive jaringan

  • 🌐 Multibahasa & Dukungan RTL


    38 Bahasa


    Tersedia 38 bahasa yang dapat dialihkan secara langsung di dalam aplikasi.

    Bahasa baru dapat ditambahkan melalui tombol 🌍 menggunakan Wizard Bahasa (Language Wizard).

    Catatan untuk Bahasa Hindi (हिंदी): Saat pertama kali beralih ke bahasa Hindi, font *Noto Sans Devanagari* akan dipasang sekali secara sistemis. Windows akan meminta hak akses administrator untuk proses ini.

    🔤 Dukungan RTL (Right-to-Left)


    Bahasa dengan arah penulisan dari kanan ke kiri akan dideteksi secara otomatis dan seluruh tampilan antarmuka (UI) akan disesuaikan secara terbalik (spionase/mirroring):

  • Bahasa Arab (عربي) – deteksi RTL otomatis

  • Bahasa Ibrani (עברית) – deteksi RTL otomatis

  • Bahasa Persia / Farsi (فارسی) – deteksi RTL otomatis

  • Bahasa Urdu (اردو) – deteksi RTL otomatis

  • Bahasa RTL lainnya akan dideteksi secara otomatis saat ditambahkan melalui Wizard Bahasa

  • Apa saja yang berubah pada mode RTL:

  • Seluruh tata letak UI akan dibalik (Tombol, Tab, Kolom input)

  • Kolom input teks menggunakan perataan arah kanan-ke-kiri

  • Daftar favorit dan riwayat menjadi rata kanan

  • Kolom output untuk formula tetap dalam mode LTR (karena teks formula LibreOffice harus selalu LTR)

  • Font otomatis beralih ke jenis font yang kompatibel dengan RTL (misalnya *Noto Sans Arabic*, *Noto Sans Hebrew*)

  • 💡 Catatan: Formula LibreOffice yang dihasilkan selalu menggunakan sintaksis LTR – hanya antarmuka pengguna (UI) saja yang berubah arah.

    🔌 Manajer Plugin


    Manajer plugin (plugin\\\_manager.py) adalah alat mandiri untuk membuat dan mengelola plugin formula Anda sendiri untuk Calc2. Alat ini berada di folder yang sama dengan Calc2.py dan dijalankan melalui tombol 🔌 di dalam aplikasi Calc2.py:

    Fitur


  • Membuat Plugin Baru – Wizard langkah-demi-langkah (Nama, Formula, Terjemahan, Ringkasan)

  • Menambahkan Formula – Melengkapi formula ke dalam plugin yang sudah ada

  • Mengedit Terjemahan – Menerjemahkan penamaan formula ke dalam seluruh 38 bahasa

  • Membuka Folder Plugin – Membuka direktori secara langsung di File Explorer

  • Menghapus Plugin – Disertai dengan pertanyaan konfirmasi keamanan

  • Struktur Plugin


    Setiap plugin berada sebagai subfolder di dalam direktori plugins/ dan terdiri dari dua file:

    `
    plugins/

    mein\_plugin/

    plugin.json ← Metadata (Nama, Versi, Penulis, Deskripsi)

    formulas.json ← Formula beserta terjemahannya
    `

    Contoh plugin.json:

    JSON

    `
    \{

    "id": "mein\_plugin",

    "enabled": true,

    "version": "1.0",

    "author": "Nama Anda",

    "icon": "💰",

    "name": \{ "en": "Finance Formulas", "de": "Finanz-Formeln" \},

    "description": \{ "en": "Useful formulas for financial calculations." \}

    \}
    `

    Contoh formulas.json:

    JSON

    `
    \[

    \{

    "formula": "=SUM(A1:A10)",

    "name": \{ "en": "Sum of range", "de": "Summe des Bereichs" \},

    "description": \{ "en": "Adds all values in A1:A10." \},

    "category": \{ "en": "Basic", "de": "Grundlagen" \}

    \}

    \]
    `

    Pemberitahuan Penting (⚠️ Important Notice)


    Di dalam Manajer Plugin terdapat tombol ⚠️ Important Notice. Mengkliknya akan membuka jendela berisi semua aturan untuk pembuatan plugin yang benar dalam bahasa Englisch. Informasi yang sama juga tersedia di dalam file IMPORTANT\\\_NOTICE.md.

    💡 Tips


  • $A$1 → Referenz absolut (Menu dropdown di samping kolom sel)

  • Strg+S → Menyimpan formula saat ini ke dalam Favorit

  • Strg+C → Menyalin formula (saat berada di luar kolom input)

  • Strg+Z / Strg+Y → Undo / Redo

  • Strg+F12 → Meminimalkan / memulihkan jendela (tetap berfungsi meskipun Calc2 sedang diminimalkan ke latar belakang)

  • Tombol Delete pada daftar favorit → Menghapus entri terpilih

  • Formula dapat disesuaikan langsung di kolom output setelah dihasilkan

  • Untuk bahasa RTL: Output formula akan selalu tetap LTR – hanya UI saja yang dicerminkan

  • 📁 Struktur Proyek


    `
    Calc2.py ← Program Utama

    plugin\\\_manager.py ← Manajer Plugin

    IMPORTANT\\\_NOTICE.md ← Petunjuk pembuatan plugin

    data/

    README\\\_de.md / README\\\_en.md / ... ← Bantuan per bahasa

    REFERENZ\\\_de.md / REFERENZ\\\_en.md / ... ← Referensi fungsi per bahasa

    language/

    languages.json ← Terjemahan UI (36 bahasa)

    formula\\\_explanations.json ← Penjelasan formula (dari situs web LibreOffice)

    services/

    language\\\_tool.py ← Wizard: menambahkan bahasa baru

    settings\\\_service.py

    auth\\\_service.py

    favorites\\\_service.py

    network\\\_sync.py

    install\\\_service.py

    backup\\\_service.py ← Pencadangan & Pemulihan

    json\\\_validator.py ← Pemeriksaan & koreksi languages.json / formula\\\_explanations.json

    plugins/ ← Folder Plugin (dibuat otomatis)

    mein\\\_plugin/

    plugin.json

    formulas.json

    fonts/

    NotoSansDevanagari-Regular.ttf ← Font bahasa Hindi

    NotoSansArabic-Regular.ttf ← Font bahasa Arab (RTL)

    NotoSansHebrew-Regular.ttf ← Font bahasa Ibrani (RTL)

    python/ ← Python bawaan (Embedded)

    python.exe

    ...

    settings.json ← Dibuat secara otomatis

    favoriten.json ← Favorit lokal (dibuat otomatis)
    `

    🧠 Sorotan Teknis (Technical Highlights)


  • Atomic File Writes → Mencegah file rusak atau korup saat proses penyimpanan data

  • Arsitektur Layanan (Service Architecture) → Pemisahan ketat antara Logika Bisnis dan Antarmuka Pengguna (UI)

  • Migrasi Otomatis → Format favorit versi lama akan dideteksi dan dikonversi secara otomatis

  • Penanganan Kesalahan yang Kuat → File yang rusak tidak akan menyebabkan aplikasi mogok (Crash)

  • Penyorotan Sintaksis (Syntax Highlighting) → Formula ditampilkan secara berwarna untuk kejelasan

  • Mode Gelap (Dark Mode) → Didukung sepenuhnya di seluruh antarmuka

  • Sistem Plugin → Calc2 dapat diperluas kemampuannya menggunakan plugin formula buatan sendiri

  • Hotkey Global → Shortcut Strg+F12 berfungsi di seluruh sistem menggunakan pustaka keyboard (Thread Latar Belakang)

  • Mesin RTL (RTL Engine) → Deteksi otomatis bahasa RTL, pembalikan UI penuh termasuk penyesuaian font yang cocok

  • Pencadangan & Pemulihan → File cadangan terenkripsi AES dengan nama dan kata sandi, opsi pemulihan selektif tersedia

  • Validator JSON → Pemeriksaan dan koreksi otomatis untuk languages.json dan formula\\\_explanations.json termasuk penamaan negara dan kolom wajib

  • Sumber Data LibreOfficeformula\\\_explanations.json diisi langsung dari dokumentasi resmi LibreOffice Calc ([https://help.libreoffice.org](https://help.libreoffice.org/))

  • Lisensi


    Bebas digunakan untuk keperluan pribadi maupun komersial.