id-auto-formalizer
Version:
Konversi teks Bahasa Indonesia dari kasual ke formal untuk surat, email, dan laporan resmi
237 lines (170 loc) • 5.39 kB
Markdown
# 🇮🇩 Bahasa Indonesia Auto Formalizer
[](https://www.npmjs.com/package/id-auto-formalizer)
[](https://opensource.org/licenses/MIT)
[](http://makeapullrequest.com)
Konversi teks Bahasa Indonesia dari gaya kasual/informal menjadi formal. Cocok untuk surat resmi, email profesional, dan laporan formal.
## ✨ Fitur
- 🔄 200+ mapping kata informal → formal
- 🖥️ CLI support
- 🔤 Auto kapitalisasi
- ✏️ Auto tanda baca
- 📊 Analisis tingkat formalitas
- 💡 Saran peningkatan formalitas
- 🚀 Batch processing file
- 🎯 Ringan tanpa dependency berat
## 📦 Instalasi
### Sebagai CLI Tool (Global)
```bash
npm install -g id-auto-formalizer
```
### Sebagai Library (Dalam Project)
```bash
npm install id-auto-formalizer
```
## 🚀 Penggunaan
### CLI
```bash
formalize text "gue mau nanya dong, lo udah selesai belom?"
# → Saya ingin bertanya, Anda sudah selesai belum?
formalize text "makasih ya udh bantuin" --analyze
# → Terima kasih sudah membantu.
# Skor Formalitas: 85% (Formal)
formalize text "gw cape bgt" --suggest
```
#### Mode Interaktif
```bash
formalize interactive
# atau
formalize i
```
#### File & Batch
```bash
formalize file input.txt -o output.txt
formalize batch -d ./documents -o ./formal_documents
formalize batch -d ./emails -e .eml -o ./formal_emails
```
#### Tambah Mapping Baru
```bash
formalize add-mapping "ngoding" "memprogram"
formalize stats
```
## 📚 Programmatic API
```js
const { formalize } = require('id-auto-formalizer');
console.log(formalize("gue mau meeting sama lo besok pagi"));
// → Saya ingin meeting dengan Anda besok pagi.
```
#### Fitur Lanjutan
```js
const IndonesianFormalizer = require('id-auto-formalizer');
const formalizer = new IndonesianFormalizer();
const result = formalizer.formalize("thanks ya udh bantu gue", {
autoCapitalize: true,
autoPunctuation: true
});
const analysis = formalizer.analyzeFormalityLevel("lo tau gak?");
console.log(analysis);
// { score: 25, level: 'Sangat Informal', informalWords: 2, totalWords: 3 }
const suggestions = formalizer.suggestImprovements("gw capek");
```
#### Tambah / Ekspor Mapping
```js
formalizer.addMapping("ngoding", "memprogram");
formalizer.addMappings({
"ngegame": "bermain game",
"ngetweet": "menulis tweet",
"kepo": "ingin tahu"
});
const allMappings = formalizer.exportMappings();
```
## 📝 Contoh Transformasi
| Informal | Formal |
|--------------------------------|------------------------------------|
| gue mau nanya dong | Saya ingin bertanya |
| thanks ya udh bantuin | Terima kasih sudah membantu |
| sorry gue telat, jalanan macet | Maaf saya terlambat, jalanan macet|
| btw lo udah makan belom? | Omong-omong, Anda sudah makan? |
| meeting nya kapan? gue lupa | Meeting tersebut kapan? Saya lupa. |
| tolong kirim filenya asap ya | Mohon kirim file tersebut segera. |
## 🗺️ Roadmap
### ✅ Fase 1: Fitur Dasar
- [x] Mapping 200+ kata
- [x] CLI interface
- [x] Auto kapitalisasi & tanda baca
- [x] Analisis formalitas
- [x] Batch processing
### 🚧 Fase 2: NLP Lanjutan
- [ ] Transformasi kontekstual
- [ ] Perbaikan struktur kalimat
- [ ] Deteksi akronim & singkatan
### 📋 Fase 3: Integrasi & UI
- [ ] REST API
- [ ] Web UI
- [ ] Ekstensi VS Code & Chrome
### 🌐 Fase 4: Komunitas & Dataset
- [ ] Dataset publik
- [ ] Crowdsourcing mapping
- [ ] Dukungan bahasa daerah
## 🤝 Kontribusi
### Menambah Mapping
1. Fork repo ini
2. Edit `src/formalizer.js`
3. Tambah ke `informalToFormal`:
```js
this.informalToFormal = {
// ...
'kata_gaul': 'kata_baku',
};
```
4. Kirim pull request
### Kontribusi lainnya:
- Laporkan bug
- Usulkan fitur baru
- Bantu dokumentasi
## 🔧 Development
```bash
git clone https://github.com/codenamekii/id-auto-formalizer.git
cd id-auto-formalizer
npm install
npm test
npm run lint
npm run dev
```
## 📄 API Reference
### Class: `IndonesianFormalizer`
#### `formalize(text, options)`
- `text`: string
- `options`: { autoCapitalize, autoPunctuation }
#### `analyzeFormalityLevel(text)`
→ `{ score, level, informalWords, totalWords }`
#### `suggestImprovements(text)`
→ array of suggestions
#### `addMapping(informal, formal)`
#### `addMappings({ informal: formal })`
#### `exportMappings()`
## 📊 Dataset Sumber
- Kamus Besar Bahasa Indonesia (KBBI)
- Dataset publik Twitter Indonesia
- Forum & platform chat lokal
- Kontribusi komunitas
## 📜 Lisensi
MIT — lihat [LICENSE](LICENSE)
## 🔗 Link
- [NPM](https://www.npmjs.com/package/id-auto-formalizer)
- [GitHub](https://github.com/codenamekii/id-auto-formalizer)
- [Issue Tracker](https://github.com/codenamekii/id-auto-formalizer/issues)
- [Contribution Guide](CONTRIBUTING.md)
_Membantu kamu menulis Bahasa Indonesia yang baik dan benar_ 🇮🇩