Instalasi NusaScript
Dari nol sampai REST API pertama Anda berjalan — panduan lengkap langkah demi langkah.
🤔 Apakah saya perlu menginstall Go?
- Menjalankan file .ns — Tidak perlu Go. Cukup download binary
nusa. - Mengkompilasi .ns ke binary — Tidak 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
Tulis logika
→
⚡nusa
Interpreter
Interpreter
→
🚀Berjalan
Langsung
Langsung
📝Kode .ns
Tulis logika
Tulis logika
→
🔨nusa kompilasi
Build binary
Build binary
→
📦./aplikasi
Binary mandiri
Binary mandiri
→
🌐Deploy
Ke server
Ke server
Persyaratan Sistem
| Sistem Operasi | Arsitektur | Status |
|---|---|---|
| macOS 12+ | Intel (amd64) & Apple Silicon (arm64) | ✓ Didukung |
| Linux (Ubuntu 20.04+, Debian, CentOS) | amd64, arm64 | ✓ Didukung |
| Windows 10/11 | amd64 (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
Clone Repository NusaScript
Buka Terminal dan jalankan:
Terminalgit clone https://gitlab.com/aanelzam93/nusascript/nusascript.git cd nusascriptJika belum punya git:
brew install git -
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
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
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
Verifikasi Instalasi
Terminalnusa versi # Output yang diharapkan: # NusaScript v1.0.0 # Bahasa pemrograman Indonesia — by Anwar HidayatJika muncul output di atas, instalasi berhasil! ✅
-
1
Install Dependensi
Terminal# Ubuntu/Debian sudo apt update && sudo apt install -y git # CentOS/RHEL sudo yum install -y git -
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
Clone & Build
Terminalgit clone https://gitlab.com/aanelzam93/nusascript/nusascript.git cd nusascript go build -o nusa ./cmd/nusa/ -
4
Install ke System PATH
Terminalsudo 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
Prasyarat
- Go 1.21 atau lebih baru
- Git
- Koneksi internet (untuk download modul)
-
2
Clone & Build
Terminalgit 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
Struktur Kode Sumber
Struktur Direktorinusascript/ ├── 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
| Perintah | Fungsi | Kapan 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
Buat Proyek Baru
Terminalnusa buat:proyek toko-saya cd toko-sayaPerintah ini membuat struktur proyek lengkap:
Struktur Proyektoko-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
Konfigurasi
.env.envAPP_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
Jalankan Server
Terminalnusa 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
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
| Development | Production | |
|---|---|---|
| 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
| Editor | Setup | Catatan |
|---|---|---|
| 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
| Masalah | Solusi |
|---|---|
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: