Aplikasi web untuk menganalisis sintaksis dan validasi Unggah-Ungguh (tingkat kesopanan) dalam bahasa Jawa Krama.
Demo Live β’ Dokumentasi β’ Kontribusi
Install core analyzer sebagai dependency di project Anda:
npm install javanese-analyzer-coreimport { analyze } from "javanese-analyzer-core";
const result = analyze("Kula nedha sekul");
console.log(result);Cara tercepat untuk membuat aplikasi lengkap:
npx create-javanese-analyzer my-app
cd my-app
npm run devAplikasi akan berjalan di http://localhost:3000
Gunakan template tanpa clone history:
npx degit LearnWithSuryaa/analyzer-app my-app
cd my-app
npm install
npm run devClone dengan full git history:
git clone https://github.com/LearnWithSuryaa/analyzer-app.git
cd analyzer-app
npm install
npm run dev# Build semua workspace
npm run build
# Start production server
npm run start --workspace=webanalyzer-app/
βββ packages/
β βββ core/ # @javanese-ai/core
β βββ src/
β β βββ analyzer.ts # Parser & Tokenizer
β β βββ types.ts # Type Definitions
β β βββ index.ts # Public API
β β βββ data/
β β βββ kamus_jawa.json # Kamus 1000+ kata
β βββ package.json
β βββ tsconfig.json
β
βββ web/ # Next.js Application
βββ app/ # App Router
β βββ page.tsx # Landing Page
β βββ analyze/ # Analyzer Page
β βββ docs/ # Documentation
β βββ globals.css
βββ components/ # React Components
β βββ ChatInput.tsx
β βββ ResultSection.tsx
β βββ visualizations/
βββ package.json
βββ tailwind.config.js
| Layer | Technology |
|---|---|
| Core Logic | TypeScript, Custom CFG Parser |
| Frontend | Next.js 16, React 19 |
| Styling | Tailwind CSS v3 |
| Animations | Framer Motion |
| Icons | Lucide React |
| Deployment | Vercel |
- Tokenisasi kata Jawa Krama/Ngoko
- Parsing berbasis Context-Free Grammar (CFG)
- Support kalimat tunggal & majemuk
- Deteksi subjek implisit
- Validasi tingkat kesopanan (politeness level)
- Deteksi kesalahan penggunaan Krama Inggil/Lugu
- Saran koreksi otomatis
- Parse Tree: Visualisasi hierarki sintaksis dengan mode fullscreen
- Derivation Trace: Step-by-step leftmost derivation
- Token Analysis: Breakdown kata per kata dengan keterangan
- Koreksi typo otomatis menggunakan Levenshtein Distance
- Threshold adaptif berdasarkan panjang kata
- Import repository ke Vercel
- Root Directory:
web - Framework akan auto-detect sebagai Next.js
- Deploy!
npm install -g vercel
vercelFile vercel.json sudah dikonfigurasi:
{
"framework": "nextjs",
"buildCommand": "npm run build --workspace=web",
"installCommand": "npm install",
"outputDirectory": ".next"
}Catatan: Set Root Directory = web di Vercel Dashboard.
import { analyze } from "javanese-analyzer-core";
const result = analyze("Kula nedha sekul");
console.log(result);{
tokens: [
{ token: "kula", label: "SUBJEK", keterangan: "pronomina diri sendiri" },
{ token: "nedha", label: "PREDIKAT", keterangan: "verba krama lugu" },
{ token: "sekul", label: "OBJEK_NOUN", keterangan: "tempat / nomina" }
],
analisis: {
jenis_kalimat: "kalimat tunggal",
validitas_sintaksis: "VALID",
validitas_unggah_ungguh: "SESUAI",
jenis_kesalahan: []
},
structure: { /* Parse Tree */ },
derivations: [ /* Leftmost Derivation Steps */ ]
}Dokumentasi lengkap tersedia di /docs setelah aplikasi berjalan.
Kontribusi sangat diterima! Berikut cara berkontribusi:
- Fork repository ini
- Buat branch fitur (
git checkout -b feature/AmazingFeature) - Commit perubahan (
git commit -m 'Add some AmazingFeature') - Push ke branch (
git push origin feature/AmazingFeature) - Buat Pull Request
- Gunakan TypeScript untuk type safety
- Follow existing code style
- Tambahkan test untuk fitur baru
- Update dokumentasi jika diperlukan
Distributed under the MIT License. See LICENSE for more information.
Surya
- GitHub: @LearnWithSuryaa
- Project Link: https://github.com/LearnWithSuryaa/analyzer-app
β Star this repo if you find it helpful!
Made with β€οΈ for preserving Javanese language and culture