Python library untuk generate dokumen akademik Indonesia (makalah, laporan, KTI, skripsi) dengan format standar institusi.
Program ini hanya sebagai alat bantu (tool) untuk mempermudah pembuatan dokumen akademik dalam format standar Indonesia.
- Program ini TIDAK menentukan nilai, kualitas, atau keaslian dari isi dokumen yang dihasilkan.
- Pengguna bertanggung jawab penuh atas konten yang dimasukkan ke dalam dokumen.
- Format yang dihasilkan merupakan standar umum dan mungkin berbeda dengan ketentuan institusi tertentu. Selalu cocokkan dengan pedoman resmi dari institusi Anda.
- Program ini bukan pengganti penulisan akademik yang baik dan benar.
- Gunakan secara etis dan bertanggung jawab.
- A4 paper size with 4-3-4-3 margins (kiri 4cm, kanan 3cm, atas 4cm, bawah 3cm)
- Times New Roman font with proper sizing (12pt body, 14pt headings)
- 1.5 line spacing with structured ruler indentations
- Auto Table of Contents (updates when opened in Word)
- Cover page, Abstract (ID/EN), Bibliography, Appendix
- 4 document types: Makalah, Laporan, KTI, Skripsi
- Proper numbering format (BAB I, 1.1, 1.1.1)
- Hanging indent for numbered lists
- East Asian font support
- Python 3.10 atau lebih baru
Dependencies akan otomatis terinstall saat Anda menjalankan perintah install:
| Package | Version | Description |
|---|---|---|
python-docx |
>= 1.1.0 | Core library untuk membuat dokumen Word |
| Package | Version | Description |
|---|---|---|
pytest |
>= 8.0 | Untuk menjalankan test |
# Clone repository
git clone https://github.com/kryvestudio/academic-docx-idn.git
cd docx-idn
# Install (hanya python-docx)
pip install -e .
# Atau termasuk dev dependencies (pytest untuk testing)
pip install -e ".[dev]"python -c "from docx_idn import Makalah, Laporan, KTI, Skripsi; print('Install berhasil! โ
')"from docx_idn import Makalah
doc = Makalah(
judul="Dampak AI terhadap Pendidikan",
penulis="Ahmad Fauzi",
nim="123456789",
institusi="Universitas Indonesia",
fakultas="Ilmu Komputer",
prodi="Teknik Informatika",
bab=[
{
"judul": "Pendahuluan",
"sections": [
{"judul": "Latar Belakang", "isi": ["AI berkembang pesat..."]}
]
}
],
daftar_pustaka=[
{"penulis": "Sugiyono", "judul": "Metode Penelitian", "tahun": "2019", "penerbit": "Alfabeta"}
],
)
doc.save("makalah.docx")| Type | Use Case | Features |
|---|---|---|
Makalah |
Essay/paper | Basic structure, no English abstract |
Laporan |
Report | Tables, figures, appendix |
KTI |
Scientific paper | Full structure, English abstract |
Skripsi |
Thesis | Full structure, English abstract, adviser |
{
"judul": "Judul Dokumen",
"judul_en": "English Title", # optional, required for Skripsi/KTI
"penulis": "Nama Penulis",
"nim": "123456789", # optional
"institusi": "Universitas X",
"fakultas": "Fakultas Y",
"prodi": "Program Studi Z", # optional
"angkatan": "2024", # optional
"pembimbing": "Dr. ABC", # optional
"tanggal": "Juni 2026", # optional
"kata_pengantar": "...", # optional
"abstrak_id": "...", # optional
"abstrak_en": "...", # optional
"daftar_pustaka": [...], # optional
"bab": [...], # required
"lampiran": [...] # optional
}"bab": [
{
"judul": "Pendahuluan",
"sections": [
{
"judul": "Latar Belakang",
"isi": ["Paragraf 1...", "Paragraf 2..."]
},
{
"judul": "Sub Section",
"subsections": [
{
"judul": "Sub Sub Section",
"isi": ["Content..."]
}
],
"isi": ["Parent content..."]
}
]
}
]from docx_idn import DocumentConfig, DocxDocument
config = DocumentConfig(
margin_left=3.0, # custom margin
margin_right=3.0,
font_size=11, # custom font size
)
doc = DocxDocument(config)
doc.add_paragraph("Custom formatted document")
doc.save("custom.docx")| Aspek | Default |
|---|---|
| Paper | A4 (210 x 297 mm) |
| Margins | Kiri 4cm, Kanan 3cm, Atas 4cm, Bawah 3cm |
| Font | Times New Roman 12pt |
| Heading 1 | 14pt Bold, Center |
| Heading 2 | 12pt Bold, Left |
| Heading 3 | 12pt Bold |
| Line Spacing | 1.5 |
| First Line Indent | 1.25cm |
| Justify | Full |
# Jalankan semua test
pytest tests/ -v
# Jalankan test tertentu
pytest tests/test_makalah.py -vSee examples/ directory for complete examples:
python examples/contoh_makalah.py
python examples/contoh_laporan.py
python examples/contoh_kti.py
python examples/contoh_skripsi.py
python examples/kti_keberagaman_indonesia.py # KTI lengkap# Pastikan sudah install
pip install -e ".[dev]"- Pastikan Microsoft Word terinstall
- Font Times New Roman biasanya sudah default di Windows
- Buka dokumen di Microsoft Word
- Klik kanan pada Daftar Isi โ Update Field โ Update entire table
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - See LICENSE for details.
Program ini dibuat untuk mempermudah pembuatan dokumen akademik, bukan untuk menggantikan proses penulisan yang baik. Pengguna tetap harus:
- Memahami isi dokumen yang dibuat
- Memverifikasi format sesuai ketentuan institusi
- Bertanggung jawab atas konten yang dihasilkan
- Menggunakan secara etis dalam kegiatan akademik
Made with โค๏ธ for Indonesian Academic Community