Skip to main content

🇮🇩 NUSADATA

Bahasa Pemrograman Data Nusantara

"Bicara soal Data, Pakai Bahasa Kita Sendiri"


Version Python Tests License


Apa itu NUSADATA?

NUSADATA adalah bahasa pemrograman data berbasis Python yang ditulis sepenuhnya dalam Bahasa Indonesia dengan gaya komunikasi Generasi Z — kasual, langsung, mudah dipahami, tetapi tetap profesional dan powerful.

Perbandingan

Aspek Python R SQL NUSADATA
Syntax Inggris Inggris Inggris Indonesia Gen Z
Learning Curve Sedang Curam Sedang Sangat Mudah
Data Science ✅ ✅ ❌ ✅ Built-in
Visualisasi Perlu Library Built-in ❌ Built-in
ML/AI Perlu Library Perlu Library ❌ Built-in
Database Perlu Setup Perlu Setup ✅ Built-in
Package Manager pip install.packages ❌ nusadata install
Error Messages Inggris Teknis Inggris Teknis Inggris 🇮🇩 Indonesia Ramah

Quick Start

Install

pip install nusadata

Hello World

Buat file halo.nds:

tampilin "Halo, Dunia! 🇮🇩"

Jalankan:

nusadata jalankan halo.nds

Analisis Data

// Baca data penjualan
masukin data dari "penjualan.csv"

// Lihat info
tampilin data.lima_baris_pertama()

// Statistik
tampilin "Rata-rata: " + teks(data.kolom("harga").rata_rata())
tampilin "Total: " + teks(data.kolom("total").jumlah())

// Filter
punya teknologi = data[data["kategori"] == "Teknologi"]
tampilin "Teknologi: " + teks(teknologi.jumlah_baris()) + " produk"

// Visualisasi
gambarrin data pakai "batang" dari kolom "kategori" dan "total"

CLI Commands

# Jalankan program
nusadata jalankan program.nds
nusadata jalankan program.nds --debug    # Lihat kode Python
nusadata jalankan program.nds --show-ast # Lihat AST tree

# Mode interaktif (REPL)
nusadata mulai

# Buat project baru
nusadata buat my_project

# Compile ke Python
nusadata kompile program.nds

# Package manager
nusadata install nusadata.stats
nusadata packages

# Info
nusadata versi
nusadata dokumentasi
nusadata test

REPL Commands

nusadata> bantuan     # Tampilkan bantuan
nusadata> variabel    # Lihat semua variabel
nusadata> riwayat     # Lihat riwayat perintah
nusadata> bersihkan   # Bersihkan layar
nusadata> keluar      # Keluar

Fitur Utama

📊 Data Operations

masukin data dari "penjualan.csv"

// Filter
punya filtered = data[data["harga"] > 100000]

// Sort
punya sorted = data.urutin("total", "menurun")

// GroupBy
punya grouped = data.kelompokin("kategori").agg({"total": "sum"})

// Clean
punya bersih = data.bersihin().buang_duplikat()

📈 Statistik

tampilin data.kolom("harga").rata_rata()
tampilin data.kolom("harga").tengah()
tampilin data.kolom("harga").terkecil()
tampilin data.kolom("harga").terbesar()
tampilin data.kolom("total").jumlah()
tampilin data.ringkasan()

📊 Visualisasi

gambarrin data pakai "batang" dari kolom "kategori" dan "total"
gambarrin data pakai "garis" dari kolom "tanggal" dan "penjualan"
gambarrin data pakai "lingkaran" dari kolom "total" dan "kategori"
gambarrin data pakai "titik" dari kolom "umur" dan "pendapatan"

🤖 Machine Learning

model.latih(data_latih, y_latih)
punya prediksi = model.tebak(data_uji)
tampilin model.akurasi()

📦 Package Manager

nusadata install nusadata.stats    # Install package
nusadata packages                  # Lihat semua packages

🇮🇩 Error Handling Ramah

┌─────────────────────────────────────────────────────┐
│  ❌  Kolom atau key "hrga" ga ditemukan.            │
│                                                     │
│  💡 Cek ejaan nama kolomnya.                        │
│     Ketik data.kolom_semua() untuk lihat semua.     │
│                                                     │
│  📝 Tipe error: KeyError                            │
└─────────────────────────────────────────────────────┘

Keyword Lengkap

Konsep Keyword Contoh
Variabel punya punya nama = "Budi"
Fungsi aksi aksi sapa(nama):
Kondisi kalo kalo umur > 17:
Loop ulang ulang i dari 1 sampai 5:
Tampil tampilin tampilin "Halo"
Data masukin masukin data dari "file.csv"
Filter saring data.saring("harga", ">", 10000)
Sort urutin data.urutin("tanggal", "menurun")
Group kelompokin data.kelompokin("kategori").jumlah()
Chart gambarrin gambarrin data pakai "batang"
ML latih model.latih(X, y)
DB tanya tanya "SELECT * FROM tabel"
Comprehension [x * 2 untuk x dalam data] List comprehension
Dict Comp {k: v untuk x dalam data} Dict comprehension
Set Ops gabung_set(a, b) Set union/intersection/difference
Null Coalescing x ?? default Null coalescing operator
Optional Chain obj?.attr Optional chaining
Ternary kalo x > 0 ? "ya" : "tidak" Ternary expression

Lihat Cheat Sheet Lengkap untuk daftar lengkap.


Struktur Direktori

nusadata/
├── src/
│   └── nusadata/
│       ├── __init__.py          # Package init
│       ├── lexer.py             # Tokenizer (60+ keywords)
│       ├── parser.py            # Parser (AST generator)
│       ├── codegen.py           # Python code generator
│       ├── runtime/             # Runtime engines
│       │   ├── handler.py       # Error handler (friendly messages)
│       │   ├── dataframe.py     # DataFrame operations
│       │   ├── stats.py         # Statistics engine
│       │   ├── chart.py         # Visualization engine
│       │   ├── ml.py            # Machine Learning engine
│       │   ├── clean.py         # Data cleaning engine
│       │   └── db.py            # Database connector
│       ├── packages/            # Package manager
│       │   ├── __init__.py      # PackageRegistry class
│       │   └── registry.json    # Package registry
│       └── cli/                 # Command line tools
│           └── main.py          # Main CLI entry
├── tests/                       # 475+ tests
│   ├── test_lexer.py           # 76 tests
│   ├── test_parser.py          # 81 tests
│   ├── test_codegen.py         # 115 tests
│   ├── test_integration.py     # 23 tests
│   ├── test_runtime.py         # 76 tests
│   ├── test_cli.py             # 40 tests
│   ├── test_cli_enhancements.py # 23 tests
│   └── test_e2e.py             # 41 tests
├── examples/
│   └── data/                   # Sample datasets
│       ├── penjualan.csv       # 20 records
│       ├── siswa.csv           # 15 records
│       └── produk.csv          # 10 records
├── docs/                       # Documentation
│   ├── architecture.md         # Arsitektur teknis
│   ├── cheat-sheet.md          # Cheat sheet lengkap
│   ├── cli-reference.md        # CLI reference
│   └── examples.md             # Contoh program
├── pyproject.toml              # Project configuration
└── README.md                   # This file

Arsitektur

Source Code (.nds)
       ↓
   [Lexer] → Tokens (60+ keywords)
       ↓
   [Parser] → AST (Abstract Syntax Tree)
       ↓
   [Code Generator] → Python Code (auto-import tracking)
       ↓
   [Runtime Engine] → Output
       ├── DataFrame Engine (Pandas/Polars)
       ├── Statistics Engine (SciPy/Statsmodels)
       ├── Visualization Engine (Matplotlib/Plotly)
       ├── ML Engine (Scikit-learn/XGBoost)
       ├── Cleaning Engine (Pandas)
       └── Database Connector (SQLAlchemy)

Test Coverage

Module Tests Status
Lexer 99 ✅
Parser 69 ✅
Codegen 115 ✅
Integration 23 ✅
Runtime 76 ✅
CLI 40 ✅
CLI Enhancements 23 ✅
E2E (CSV) 41 ✅
Upgrades V1-V8.5 392 ✅
Upgrades V9.0 25 ✅
Total 869 ✅ All pass

Target Performance

Metrik Target
Startup time < 2 detik
Parse speed > 10,000 baris/detik
Memory usage < 500 MB untuk dataset 1M baris
Compilation < 1 detik untuk file 1000 baris
ML Training Overhead < 10% vs Python

Kontribusi

Kami sangat terbuka untuk kontribusi! Silakan:

  1. Fork repository ini
  2. Buat branch baru (git checkout -b fitur/nama-fitur)
  3. Commit perubahanmu (git commit -m 'Tambah fitur baru')
  4. Push ke branch (git push origin fitur/nama-fitur)
  5. Buka Pull Request

Lisensi

MIT License — Silakan gunakan untuk keperluan apapun.


Kontak


NUSADATA — Data Kita, Bahasa Kita, Masa Depan Kita 🇮🇩

Metadata

Release files for nusadata 9.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nusadata 9.0.0
File Size Uploaded Provenance Actions
nusadata-9.0.0.tar.gz 164.0 kB With provenance Details for nusadata-9.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for nusadata 9.0.0
File Interpreter ABI Platform Actions
nusadata-9.0.0-py3-none-any.whl Python 3 none any Details for nusadata-9.0.0-py3-none-any.whl

Total release size: 252.0 kB

Release files / nusadata-9.0.0.tar.gz

Download URL nusadata-9.0.0.tar.gz
Size 164.0 kB
Tags Source
SHA-256 checksum
How to use checksums
76a9be6763c62eebd9896233e5c86b6cabfe67009eabf6aa2847cadf106a984a
BLAKE2b-256 checksum
How to use checksums
d112a7fd8ad98585b81f97b38434a1ade79fb04a41f63fcd42476ef459727dfd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / nusadata-9.0.0-py3-none-any.whl

Download URL nusadata-9.0.0-py3-none-any.whl
Size 88.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4e3a1d5dd26a1f2544b556ed7e35069440ce0fee7c443e58032e2a5529b82f43
BLAKE2b-256 checksum
How to use checksums
f7469ef1aa629335f9f37f35d7dbb2aea6b80f4f67b90002ea3bfdb7ca99dc92
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Security for nusadata 9.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for nusadata-9.0.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

9.0.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page