jawakrama
v1.2.0
Published
Bahasa pemrograman berbasis Jawa Krama (Jawa Alus)
Maintainers
Readme
ꦗꦮꦏꦿꦩ Jawakrama
✨ Fitur Utama
| Fitur | Deskripsi |
|-------|-----------|
| 🗣️ Sintaksis Jawa Krama | Gunakan kata sopan seperti damel, menawi, kagem |
| 🚀 CLI Tools v1.2 | jawa init, format, lint, build, version, help |
| 📚 Standard Library | Wicalan, Serat, Wekdal, Berkas, Larik |
| 🧩 VS Code Extension v2.0 | Auto-complete, Hover docs, Diagnostics |
| 🛑 Error Localization | Pesan error dalam Bahasa Jawa |
| ⚡ Shorthand Aliases | mnw (if), kgm (for), sanes (else) |
📦 Instalasi
# Via NPM (Recommended)
npm install -g jawakrama
# Verifikasi instalasi
jawa versiongit clone https://github.com/APTXmrnn/jawakrama-lang.git
cd jawakrama-lang
npm install
npm link🚀 Cara Menggunakan
Membuat Proyek Baru
jawa init proyek_anyar
cd proyek_anyar
jawa main.jwaREPL Mode
jawa
# jawa> serat("Sugeng!")
# Sugeng!📝 Contoh Kode
// FizzBuzz ing Jawakrama
serat("--- FizzBuzz ---");
kagem (damel i = 1; i <= 15; i++) {
menawi (i % 15 == 0) {
serat("FizzBuzz");
} sanes menawi (i % 3 == 0) {
serat("Fizz");
} sanes menawi (i % 5 == 0) {
serat("Buzz");
} sanesipun {
serat(i);
}
}🛠️ CLI Tools
| Command | Deskripsi |
|---------|-----------|
| jawa <file.jwa> | Jalankan file Jawakrama |
| jawa init <nama> | Buat proyek baru |
| jawa format <file> | Format kode (--write untuk simpan) |
| jawa lint <file> | Periksa error dan style |
| jawa build <file> | Compile ke JavaScript standalone |
| jawa version | Tampilkan versi |
| jawa help | Bantuan |
📚 Pustaka Standar
🔢 Wicalan (Math)
serat(Wicalan.pi); // 3.14159...
serat(Wicalan.akar(16)); // 4
serat(Wicalan.pangkat(2,8)); // 256
serat(Wicalan.acak()); // 0.xxx📝 Serat (String)
serat(Serat.ageng("halo")); // HALO
serat(Serat.alit("HALO")); // halo
serat(Serat.balik("abc")); // cba⏰ Wekdal (Time)
serat(Wekdal.sapunika()); // Timestamp sekarang
serat(Wekdal.taun()); // 2026
serat(Wekdal.wulan()); // 2📁 Berkas (File I/O)
damel isi = Berkas.waos("data.txt");
Berkas.tulis("output.txt", "Halo!");
serat(Berkas.wonten("file.txt")); // leres/lepat📊 Larik (Array)
damel arr = [3, 1, 4, 1, 5];
serat(Larik.urut(arr)); // [1, 1, 3, 4, 5]
serat(Larik.unik(arr)); // [3, 1, 4, 5]
serat(Larik.jumlah(arr)); // 14📖 Daftar Kata Kunci
| Jawakrama | Alias | JavaScript | Arti |
|-----------|-------|------------|------|
| damel | - | let | Variabel |
| tetep | - | const | Konstanta |
| karya | - | function | Fungsi |
| menawi | mnw | if | Jika |
| sanesipun | sanes | else | Lainnya |
| kagem | kgm | for | Perulangan |
| salami | - | while | Selama |
| wangsul | - | return | Kembalikan |
| golongan | - | class | Kelas |
| ngewarisi | waris | extends | Mewarisi |
| enggal | - | new | Baru |
| punika | - | this | Ini |
| cobi | - | try | Coba |
| cepeng | - | catch | Tangkap |
| asinkron | - | async | Asinkron |
| ngantos | - | await | Tunggu |
| serat | - | console.log | Cetak |
| leres | - | true | Benar |
| lepat | - | false | Salah |
🧩 VS Code Extension
Fitur Extension:
- ✅ Syntax Highlighting - Warna untuk keywords
- ✅ Auto-Complete - Suggest keywords & stdlib
- ✅ Hover Documentation - Terjemahan saat hover
- ✅ Diagnostics - Warning untuk JS keywords
- ✅ Code Snippets - Template siap pakai
- ✅ Run Button - Tombol ▶️ untuk jalankan
Instalasi:
ext install novens.jawakrama-highlightAtau cari "Jawakrama" di VS Code Extensions.
🧪 Testing
# Jalankan semua tests
npm test
# 100+ test cases untuk transpiler dan stdlib📁 Struktur Proyek
jawakrama-lang/
├── pustaka/
│ ├── src/
│ │ ├── index.js # CLI & Entry point
│ │ ├── transpiler.js # Jawakrama → JavaScript
│ │ ├── stdlib.js # Standard Library
│ │ ├── formatter.js # Code formatter
│ │ └── linter.js # Linter
│ └── docs/
│ └── KEYWORDS.md # Dokumentasi keywords
├── contoh/ # Contoh kode
├── docs/ # Website dokumentasi
└── test_fitur/ # Test files🤝 Kontribusi
Monggo! Kontribusi sangat diterima:
- Fork repository
- Buat branch:
git checkout -b fitur-baru - Commit:
git commit -m "Tambah fitur" - Push:
git push origin fitur-baru - Buat Pull Request
📜 Lisensi
GPL-3.0 © 2026 Jawakrama
