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 🇮🇩

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nusadata-9.0.0.tar.gz (164.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nusadata-9.0.0-py3-none-any.whl (88.1 kB view details)

Uploaded Python 3

File details

Details for the file nusadata-9.0.0.tar.gz.

File metadata

  • Download URL: nusadata-9.0.0.tar.gz
  • Upload date:
  • Size: 164.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for nusadata-9.0.0.tar.gz
Algorithm Hash digest
SHA256 76a9be6763c62eebd9896233e5c86b6cabfe67009eabf6aa2847cadf106a984a
MD5 94a16fd278074269e1efc76e2c1d0cce
BLAKE2b-256 d112a7fd8ad98585b81f97b38434a1ade79fb04a41f63fcd42476ef459727dfd

See more details on using hashes here.

Provenance

The following attestation bundles were made for nusadata-9.0.0.tar.gz:

Publisher: publish.yml on salzcill-cmd/Nusadata

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nusadata-9.0.0-py3-none-any.whl.

File metadata

  • Download URL: nusadata-9.0.0-py3-none-any.whl
  • Upload date:
  • Size: 88.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for nusadata-9.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4e3a1d5dd26a1f2544b556ed7e35069440ce0fee7c443e58032e2a5529b82f43
MD5 62a60d7a3ab18008f7ab082cfdd1218a
BLAKE2b-256 f7469ef1aa629335f9f37f35d7dbb2aea6b80f4f67b90002ea3bfdb7ca99dc92

See more details on using hashes here.

Provenance

The following attestation bundles were made for nusadata-9.0.0-py3-none-any.whl:

Publisher: publish.yml on salzcill-cmd/Nusadata

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

9.0.0 This release

2 files

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