Package Exports
- @kazedevid/jawa-script
- @kazedevid/jawa-script/src/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@kazedevid/jawa-script) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Jawa Script 🇮🇩
Library Node.js untuk mengubah syntax JavaScript menjadi bahasa Jawa. Belajar programming sambil melestarikan budaya!
📦 Instalasi
npm install @kazedevid/jawa-script🚀 Penggunaan Dasar
const JawaScript = require('@kazedevid/jawa-script');
// Inisialisasi
const translator = new JawaScript();
// Contoh konversi
const jsCode = `
function greet(name) {
console.log("Hello " + name);
if (name === "Budi") {
return true;
}
return false;
}
`;
const jawaCode = translator.translate(jsCode);
console.log(jawaCode);Output:
fungsi salam(jeneng) {
cetak.log("Hello " + jeneng);
yen (jeneng === "Budi") {
bali benar;
}
bali salah;
}📚 API Reference
new JawaScript(options)
Membuat instance baru dari JawaScript translator.
Options:
customKeywords(Object): Kata kunci kustom tambahanpreserveComments(Boolean): Mempertahankan komentar (default: true)
const translator = new JawaScript({
customKeywords: {
'array': 'larik',
'object': 'objek'
},
preserveComments: true
});translate(code)
Mengubah kode JavaScript menjadi bahasa Jawa.
Parameter:
code(String): Kode JavaScript yang akan diterjemahkan
Return: String - Kode dalam bahasa Jawa
addCustomKeyword(jsKeyword, jawaKeyword)
Menambah kata kunci kustom.
translator.addCustomKeyword('fetch', 'jupuk');
translator.addCustomKeyword('async', 'ora_langsung');exportToFile(translatedCode, filename)
Menyimpan hasil terjemahan ke file.
translator.exportToFile(jawaCode, 'output.jawa.js');getAvailableKeywords()
Mendapatkan daftar semua kata kunci yang tersedia.
const keywords = translator.getAvailableKeywords();
console.log(keywords);🔤 Kata Kunci yang Didukung
Fungsi Built-in
| JavaScript | Bahasa Jawa | Keterangan |
|---|---|---|
console.log |
cetak.log |
Menampilkan output |
console.error |
cetak.salah |
Menampilkan error |
parseInt |
angkaInt |
Konversi ke integer |
parseFloat |
angkaFloat |
Konversi ke float |
JSON.parse |
JSON.urai |
Parse JSON |
JSON.stringify |
JSON.gabung |
Stringify JSON |
Kata Kunci Kontrol
| JavaScript | Bahasa Jawa | Keterangan |
|---|---|---|
function |
fungsi |
Deklarasi fungsi |
if |
yen |
Kondisi if |
else |
liyane |
Kondisi else |
for |
kanggo |
Loop for |
while |
nalika |
Loop while |
return |
bali |
Return statement |
break |
mandheg |
Break statement |
continue |
terus |
Continue statement |
Tipe Data & Variabel
| JavaScript | Bahasa Jawa | Keterangan |
|---|---|---|
var |
ganti |
Variable declaration |
let |
ayo |
Let declaration |
const |
tetep |
Constant declaration |
true |
benar |
Boolean true |
false |
salah |
Boolean false |
null |
kosong |
Null value |
undefined |
ora_didefinisi |
Undefined value |
ES6+ Features
| JavaScript | Bahasa Jawa | Keterangan |
|---|---|---|
arrow function => |
panah => |
Arrow function |
async |
ora_langsung |
Async function |
await |
ngenteni |
Await keyword |
import |
lebokno |
Import statement |
export |
metu |
Export statement |
class |
kelas |
Class declaration |
🌟 Contoh Lengkap
const JawaScript = require('@kazedevid/jawa-script');
// Kode JavaScript asli
const originalCode = `
class Calculator {
constructor() {
this.result = 0;
}
add(number) {
this.result += number;
return this;
}
subtract(number) {
this.result -= number;
return this;
}
getResult() {
return this.result;
}
}
const calc = new Calculator();
const result = calc.add(10).subtract(5).getResult();
console.log("Hasil:", result);
`;
// Terjemahkan
const translator = new JawaScript();
const jawaCode = translator.translate(originalCode);
// Simpan ke file
translator.exportToFile(jawaCode, 'kalkulator.jawa.js');
console.log('Terjemahan berhasil disimpan!');Output (kalkulator.jawa.js):
kelas Kalkulator {
konstruktor() {
iki.asil = 0;
}
tambah(angka) {
iki.asil += angka;
bali iki;
}
kurang(angka) {
iki.asil -= angka;
bali iki;
}
jupukAsil() {
bali iki.asil;
}
}
tetep calc = anyar Kalkulator();
tetep asil = calc.tambah(10).kurang(5).jupukAsil();
cetak.log("Asil:", asil);🎯 Use Cases
- Edukasi Programming: Membantu pemula belajar JavaScript dengan bahasa yang familiar
- Pelestarian Budaya: Mengenalkan bahasa Jawa dalam konteks teknologi modern
- Code Review: Membuat kode lebih mudah dipahami untuk developer lokal
- Dokumentasi: Menulis dokumentasi teknis dalam bahasa Jawa
🤝 Berkontribusi
Kami sangat senang menerima kontribusi! Berikut cara berkontribusi:
- Fork repository ini
- Buat branch feature (
git checkout -b feature/kata-kunci-baru) - Commit perubahan (
git commit -am 'Tambah kata kunci baru') - Push ke branch (
git push origin feature/kata-kunci-baru) - Buat Pull Request
Menambah Kata Kunci Baru
Edit file src/keywords.js untuk menambah kata kunci baru:
// Tambahkan di object yang sesuai
builtInFunctions: {
'setTimeout': 'setWaktu',
'setInterval': 'setInterval'
}📝 Roadmap
- Support untuk TypeScript
- Plugin untuk VS Code
- Web-based translator
- Support bahasa daerah lainnya
- Integration dengan bundler populer
🐛 Bug Reports
Jika menemukan bug, silakan buat issue di GitHub Issues dengan:
- Deskripsi bug
- Kode yang bermasalah
- Expected vs actual behavior
- Environment info (Node version, OS)
📄 Lisensi
MIT License - lihat file LICENSE untuk detail lengkap.
🙏 Acknowledgments
- Terinspirasi dari kearifan lokal bahasa Jawa
- Terima kasih kepada komunitas JavaScript Indonesia
- Special thanks untuk semua kontributor
Dibuat dengan ❤️ untuk melestarikan budaya sambil belajar teknologi