Instalasi NusaScript

Dari nol sampai REST API pertama Anda berjalan — panduan lengkap langkah demi langkah.

🤔 Apakah saya perlu menginstall Go?

  • Menjalankan file .nsTidak perlu Go. Cukup download binary nusa.
  • Mengkompilasi .ns ke binaryTidak perlu Go. Langsung pakai perintah nusa kompilasi.
  • Build NusaScript dari source code — Perlu Go 1.21+. (Hanya untuk kontributor)

Untuk pengguna biasa: cukup download 1 file binary, langsung pakai.

Bagaimana NusaScript Bekerja

📝Kode .ns
Tulis logika
nusa
Interpreter
🚀Berjalan
Langsung
📝Kode .ns
Tulis logika
🔨nusa kompilasi
Build binary
📦./aplikasi
Binary mandiri
🌐Deploy
Ke server

Persyaratan Sistem

Sistem OperasiArsitekturStatus
macOS 12+Intel (amd64) & Apple Silicon (arm64)✓ Didukung
Linux (Ubuntu 20.04+, Debian, CentOS)amd64, arm64✓ Didukung
Windows 10/11amd64 (via WSL2)⚠ Pakai WSL2
NusaScript berjalan di semua sistem yang mendukung Go binary. Tidak diperlukan runtime tambahan seperti Python, Node.js, atau JVM.

Instalasi Langkah demi Langkah

🍎 macOS
🐧 Linux
🔧 Dari Source (Go)
  1. 1

    Clone Repository NusaScript

    Buka Terminal dan jalankan:

    Terminal
    git clone https://gitlab.com/aanelzam93/nusascript/nusascript.git
    cd nusascript

    Jika belum punya git: brew install git

  2. 2

    Install Go (untuk Build dari Source)

    NusaScript ditulis dalam Go. Untuk membangun binary-nya, perlu Go 1.21+:

    Terminal
    # Opsi A: Download langsung dari https://go.dev/dl/
    # Pilih: go1.21.x.darwin-arm64.pkg (Apple Silicon)
    # atau:  go1.21.x.darwin-amd64.pkg (Intel)
    
    # Opsi B: via Homebrew
    brew install go
    
    # Cek versi
    go version
    # Output: go version go1.21.x darwin/arm64
  3. 3

    Build Binary NusaScript

    Terminal
    # Di dalam folder nusascript/
    go build -o nusa ./cmd/nusa/
    
    # Pastikan build berhasil
    ./nusa versi
    # Output: NusaScript v1.0.0
  4. 4

    Install ke PATH agar Bisa Dipanggil dari Mana Saja

    Terminal
    # Opsi A: Install ke /usr/local/bin (perlu password)
    sudo cp nusa /usr/local/bin/nusa
    
    # Opsi B: Install ke ~/bin (tanpa sudo)
    mkdir -p ~/bin
    cp nusa ~/bin/nusa
    
    # Tambahkan ke ~/.zshrc (jika pakai zsh)
    echo 'export PATH="$HOME/bin:$PATH"' >> ~/.zshrc
    source ~/.zshrc
    
    # Opsi C: Buat alias saja
    echo 'alias nusa="/path/ke/nusascript/nusa"' >> ~/.zshrc
    source ~/.zshrc
  5. 5

    Verifikasi Instalasi

    Terminal
    nusa versi
    
    # Output yang diharapkan:
    # NusaScript v1.0.0
    # Bahasa pemrograman Indonesia — by Anwar Hidayat

    Jika muncul output di atas, instalasi berhasil! ✅

  1. 1

    Install Dependensi

    Terminal
    # Ubuntu/Debian
    sudo apt update && sudo apt install -y git
    
    # CentOS/RHEL
    sudo yum install -y git
  2. 2

    Install Go 1.21+

    Terminal
    # Download Go (sesuaikan versi dan arsitektur)
    wget https://go.dev/dl/go1.21.13.linux-amd64.tar.gz
    
    # Ekstrak ke /usr/local
    sudo tar -C /usr/local -xzf go1.21.13.linux-amd64.tar.gz
    
    # Tambahkan ke PATH
    echo 'export PATH="$PATH:/usr/local/go/bin"' >> ~/.bashrc
    source ~/.bashrc
    
    # Verifikasi
    go version
  3. 3

    Clone & Build

    Terminal
    git clone https://gitlab.com/aanelzam93/nusascript/nusascript.git
    cd nusascript
    go build -o nusa ./cmd/nusa/
  4. 4

    Install ke System PATH

    Terminal
    sudo cp nusa /usr/local/bin/nusa
    sudo chmod +x /usr/local/bin/nusa
    
    # Verifikasi
    nusa versi
Opsi ini untuk kontributor yang ingin memodifikasi NusaScript sendiri.
  1. 1

    Prasyarat

    • Go 1.21 atau lebih baru
    • Git
    • Koneksi internet (untuk download modul)
  2. 2

    Clone & Build

    Terminal
    git clone https://gitlab.com/aanelzam93/nusascript/nusascript.git
    cd nusascript
    
    # Download semua dependensi
    go mod tidy
    
    # Build binary
    go build -o nusa ./cmd/nusa/
    
    # Jalankan test (opsional)
    go test ./...
    
    # Install
    cp nusa /usr/local/bin/nusa
  3. 3

    Struktur Kode Sumber

    Struktur Direktori
    nusascript/
    ├── cmd/nusa/          ← Entry point CLI
    ├── internal/
    │   ├── lexer/         ← Tokenizer
    │   ├── parser/        ← Parser AST
    │   ├── ast/           ← Node AST
    │   ├── interpreter/   ← Evaluator & Builtins
    │   └── codegen/       ← Compiler (transpiler Go)
    ├── contoh/            ← Contoh program .ns
    └── doc/               ← Dokumentasi HTML ini

Verifikasi Instalasi Lengkap

Setelah instalasi, jalankan perintah-perintah ini untuk memastikan semua berfungsi:

Terminal
# 1. Cek versi
nusa versi

# 2. Jalankan REPL interaktif (ketik 'keluar' untuk keluar)
nusa

# 3. Cek semua perintah yang tersedia
nusa --bantuan

Semua Perintah NusaScript

PerintahFungsiKapan Dipakai
nusa Buka REPL interaktif Eksperimen cepat, belajar sintaks
nusa jalankan file.ns Jalankan file .ns via interpreter Development sehari-hari
nusa kompilasi file.ns Kompilasi ke binary mandiri Deploy ke server production
nusa kompilasi file.ns -o namaapp Kompilasi dengan nama output custom Deploy production
nusa buat:proyek nama Buat proyek NusaFramework baru Memulai proyek API baru
nusa migrasi Jalankan migrasi database Setup/update database
nusa token file.ns Tampilkan token (debug) Debugging parser
nusa versi Tampilkan versi Cek instalasi

Program Pertama: Halo Dunia

Buat file halo.ns dengan isi berikut:

halo.ns
// Program pertama NusaScript
tampilkan("Halo, Dunia! 🇮🇩")
tampilkan("Selamat datang di NusaScript!")

Jalankan:

Terminal
nusa jalankan halo.ns

# Output:
# Halo, Dunia! 🇮🇩
# Selamat datang di NusaScript!

HTTP Server dalam 10 Baris

Buat server.ns:

server.ns
// Buat HTTP Server sederhana
buat app = server_baru(8080)

// Daftarkan rute GET /
rute(app, "GET", "/", fungsi(req) {
    kembalikan ke_json(peta("pesan", "Halo dari NusaScript!", "sukses", benar))
})

// Jalankan server
jalankan(app)
Terminal
nusa jalankan server.ns
# 🚀 Server NusaScript berjalan di http://localhost:8080

# Test di terminal lain:
curl http://localhost:8080/
# {"pesan":"Halo dari NusaScript!","sukses":true}

Buat Proyek API dengan NusaFramework

NusaFramework adalah kerangka kerja MVC bergaya Laravel untuk NusaScript:

  1. 1

    Buat Proyek Baru

    Terminal
    nusa buat:proyek toko-saya
    cd toko-saya

    Perintah ini membuat struktur proyek lengkap:

    Struktur Proyek
    toko-saya/
    ├── server.ns            ← Entry point (jalankan ini)
    ├── .env                 ← Konfigurasi (PORT, DB, JWT)
    ├── app/
    │   ├── kontroler/       ← Logika request/response
    │   ├── model/           ← Definisi tabel database
    │   └── middleware/      ← Auth, CORS, dll
    ├── rute/
    │   └── api.ns           ← Definisi semua rute
    ├── database/            ← File SQLite tersimpan di sini
    └── kunci/               ← Kunci JWT rahasia
  2. 2

    Konfigurasi .env

    .env
    APP_NAMA=toko-saya
    APP_VERSI=1.0.0
    APP_ENV=development
    APP_PORT=8080
    
    DB_DRIVER=sqlite
    DB_PATH=database/toko-saya.db
    
    JWT_RAHASIA=ganti-ini-dengan-kunci-rahasia-panjang
  3. 3

    Jalankan Server

    Terminal
    nusa jalankan server.ns
    
    # Output:
    # [INFO] Konfigurasi dimuat - toko-saya v1.0.0
    # ✓ Model 'Pengguna' → tabel 'pengguna' terdaftar
    # [SUCCESS] 🚀 toko-saya berjalan di http://localhost:8080
    #
    #   GET      /
    #   POST     /api/auth/daftar
    #   POST     /api/auth/masuk
    #   ...
  4. 4

    Test API

    Terminal (tab baru)
    # Cek status
    curl http://localhost:8080/
    
    # Daftar akun
    curl -X POST http://localhost:8080/api/auth/daftar \
      -H "Content-Type: application/json" \
      -d '{"nama":"Budi Santoso","email":"budi@test.com","sandi":"rahasia123"}'
    
    # Login
    curl -X POST http://localhost:8080/api/auth/masuk \
      -H "Content-Type: application/json" \
      -d '{"email":"budi@test.com","sandi":"rahasia123"}'

Development vs Production

DevelopmentProduction
Perintah nusa jalankan server.ns ./toko-saya
Cara Compile Tidak perlu compile nusa kompilasi server.ns -o toko-saya
Butuh nusa di server? Ya Tidak — binary mandiri
Edit kode Ctrl+C → edit → jalankan lagi Compile ulang lalu deploy
Kecepatan Normal Sama — runtime identik

Rekomendasi Editor Teks

EditorSetupCatatan
VS Code Buka folder proyek, asosiasikan .ns ke sintaks JavaScript Rekomendasi utama
Sublime Text Asosiasikan .ns ke JavaScript Ringan, cocok untuk laptop lama
Vim / Neovim au BufRead,BufNewFile *.ns set ft=javascript Untuk pengguna terminal
Nano Tidak perlu setup Edit cepat di server
Ekstensi bahasa NusaScript untuk VS Code sedang dalam pengembangan. Sementara ini, sintaks JavaScript memberikan highlighting yang cukup baik.

Masalah Umum & Solusi

MasalahSolusi
nusa: command not found Pastikan PATH sudah benar: echo $PATH — harus ada direktori yang berisi binary nusa. Coba source ~/.zshrc
address already in use :8080 Port sudah dipakai proses lain: lsof -ti:8080 | xargs kill -9
Server berjalan tapi tidak bisa diakses Cek firewall: curl localhost:8080 — jika berhasil dari localhost, masalah ada di jaringan/firewall
panic: pattern "/" conflicts Binary nusa sudah usang. Rebuild: go build -o nusa ./cmd/nusa/ lalu install ulang
Database tabel tidak ada Jalankan migrasi: nusa migrasi di dalam direktori proyek
identifier 'xyz' tidak ditemukan Pastikan fungsi yang dipanggil ada. Cek dokumentasi untuk nama yang benar (mis: buat_token bukan jwt_buat)

Langkah Berikutnya

Setelah instalasi berhasil:

📝
Program Pertama

Pelajari sintaks dasar NusaScript

📚
Tutorial Lengkap

Variabel, fungsi, kondisi, dll

🌐
Buat REST API

HTTP Server, routing, JSON

🏗️
NusaFramework

Proyek MVC bergaya Laravel