An open API service indexing awesome lists of open source software.

https://github.com/royhtml/meta-language-indonesia

Meta Language adalah bahasa pemrograman yang menggunakan sintaks dalam Bahasa Indonesia, dirancang untuk memudahkan pembelajaran pemrograman bagi penutur bahasa Indonesia. Ekstensi ini memberikan dukungan penuh untuk bahasa Meta di Visual Studio Code.
https://github.com/royhtml/meta-language-indonesia

Last synced: 2 months ago
JSON representation

Meta Language adalah bahasa pemrograman yang menggunakan sintaks dalam Bahasa Indonesia, dirancang untuk memudahkan pembelajaran pemrograman bagi penutur bahasa Indonesia. Ekstensi ini memberikan dukungan penuh untuk bahasa Meta di Visual Studio Code.

Awesome Lists containing this project

README

          

# Meta Language Indonesia



Meta Language Indonesia


VS Code Extension
Version
License
Python Version


Compiler Bahasa Pemrograman berbasis Bahasa Indonesia yang mudah dipahami dan digunakan.











## ๐Ÿ“– Tentang Meta Language

**Meta Language** adalah bahasa pemrograman yang menggunakan sintaks dalam **Bahasa Indonesia**, dirancang untuk memudahkan pembelajaran pemrograman bagi penutur bahasa Indonesia. Ekstensi ini memberikan dukungan penuh untuk bahasa Meta di Visual Studio Code.

## โœจ Fitur Utama

### ๐ŸŽจ **Sintaks Highlighting & Warna Kode**
- Pewarnaan sintaks yang jelas dan intuitif untuk semua keyword Bahasa Indonesia
- Membedakan antara fungsi, variabel, operator, dan keyword
- Highlight untuk string, angka, komentar, dan tipe data

### ๐Ÿ“ **Auto-Completion Cerdas**
- Saran kode otomatis saat mengetik keyword Bahasa Indonesia
- Auto-complete untuk fungsi bawaan seperti `cetak()`, `masukan()`, `rentang()`
- Saran untuk method seperti `.tambah()`, `.pisah()`, `.kunci()`

### ๐Ÿ”„ **Konversi Real-time ke Python**
- Terjemahan otomatis kode Meta ke Python
- Preview hasil konversi langsung di editor
- Dukung semua fitur: list comprehension, dictionary comprehension, OOP

### ๐Ÿท๏ธ **Icon & File Association**
- Icon khusus untuk file dengan ekstensi `.meta`
- Pengenalan otomatis file Meta Language
- Integration dengan file explorer VS Code

### ๐Ÿ“š **Code Snippets Siap Pakai**
- Template fungsi: ketik `modul` + `Tab`
- Template percabangan: ketik `jika` + `Tab`
- Template perulangan: `untuk` atau `selama` + `Tab`
- Template class: `kelas` + `Tab`

### ๐Ÿ” **Error Highlighting**
- Mendeteksi kesalahan sintaks dasar
- Memberi tahu keyword yang tidak dikenal
- Saran perbaikan untuk keyword yang salah eja

### ๐Ÿ“ฉ **Compile Meta To Exe**

**1. Language Meta**
```meta
meta -m pip install meta-language-indonesia
```
**Running**
```meta
meta_compile
```

**2. Language python**
```meta
pip install meta-language-indonesia
```
**Running**
```meta
meta_compile
```

### ๐Ÿš€ **Fitur Lengkap Lainnya**

#### **Dukungan List Comprehension**
```meta
[kuadrat untuk i dalam range(10) jika i % 2 == 0]
```

#### **Dukungan Dictionary Comprehension**
```meta
{i: kuadrat untuk i dalam range(5)}
```

#### **Konversi Tipe Data**
- `teks()` โ†’ `str()`
- `bilangan()` / `angka()` โ†’ `int()`
- `desimal()` โ†’ `float()`
- `benar_salah()` โ†’ `bool()`

#### **Fungsi Matematika**
- `akar()` โ†’ `math.sqrt()`
- `pangkat()` โ†’ `pow()`
- `maksimal()` / `minimal()` โ†’ `max()` / `min()`
- `jumlah()` โ†’ `sum()`

#### **Method Lengkap untuk Tipe Data**

**List Methods:**
- `.tambah()` โ†’ `.append()`
- `.masukkan()` โ†’ `.insert()`
- `.hapus()` โ†’ `.remove()`
- `.bersihkan()` โ†’ `.clear()`
- `.urutkan()` โ†’ `.sort()`
- `.balik()` โ†’ `.reverse()`

**String Methods:**
- `.jadikan_besar()` โ†’ `.upper()`
- `.jadikan_kecil()` โ†’ `.lower()`
- `.ganti()` โ†’ `.replace()`
- `.pisah()` โ†’ `.split()`
- `.gabung()` โ†’ `.join()`
- `.cari()` โ†’ `.find()`

**Dictionary Methods:**
- `.ambil()` โ†’ `.get()`
- `.kunci()` โ†’ `.keys()`
- `.nilai()` โ†’ `.values()`
- `.item()` โ†’ `.items()`

#### **Exception Handling**
```meta
coba:
hasil = 10 / 0
kecuali ZeroDivisionError:
cetak("Tidak bisa dibagi nol!")
akhirnya:
cetak("Selesai")
```

#### **Context Manager**
```meta
dengan buka(file.txt, r) sebagai f:
isi = f.baca()
```

#### **Import Statements**
```meta
dari math import sqrt, pi
import random
import os as sistem
```

#### **Lambda Functions**
```meta
kali_dua = lambda x: x * 2
```

### ๐ŸŽฏ **Daftar Lengkap Keyword yang Didukung**

| Kategori | Keyword Indonesia | Konversi ke |
|----------|------------------|-------------|
| **Input/Output** | `cetak()`, `meta()`, `tulis()` | `print()` |
| | `masukan()`, `baca()` | `input()` |
| **Percabangan** | `jika`, `maka` | `if` |
| | `atau jika` | `elif` |
| | `selain itu` | `else` |
| **Perulangan** | `untuk`, `dalam` | `for`, `in` |
| | `selama` | `while` |
| | `berhenti`, `lanjut` | `break`, `continue` |
| **Fungsi** | `modul`, `fungsi` | `def` |
| | `kembalikan` | `return` |
| **Boolean** | `benar`, `salah` | `True`, `False` |
| | `kosong`, `null` | `None` |
| **Operator Logika** | `dan`, `atau`, `tidak` | `and`, `or`, `not` |
| | `di`, `adalah` | `in`, `is` |
| **OOP** | `kelas` | `class` |
| | `diri` | `self` |
| **Exception** | `coba`, `kecuali` | `try`, `except` |
| | `akhirnya`, `naikkan` | `finally`, `raise` |
| **Lainnya** | `rentang()`, `panjang()` | `range()`, `len()` |
| | `tipe()`, `zip()` | `type()`, `zip()` |
| | `petakan()`, `saring()` | `map()`, `filter()` |

### โšก **Fitur Produktivitas**
- **Bracket matching** untuk kurung, kurung siku, dan kurung kurawal
- **Auto-indentation** untuk blok kode (if, for, while, modul)
- **Folding regions** untuk menyembunyikan blok kode
- **Comment toggling** dengan `Ctrl+/`

### ๐ŸŽจ **Customization**
- Atur warna sintaks sesuai preferensi di `settings.json`
- Tambahkan keyword kustom
- Konfigurasi indentasi (tab vs spasi)

## ๐Ÿš€ Instalasi

### Dari VS Code Marketplace
1. Buka VS Code
2. Tekan `Ctrl+Shift+X` (Windows/Linux) atau `Cmd+Shift+X` (Mac)
3. Cari "Meta Language Indonesia"
4. Klik **Install**

### Manual
```bash
# Clone repository
git clone https://github.com/dwibakti/meta-lang-vscode.git

# Pindah ke folder ekstensi VS Code
cd ~/.vscode/extensions/ # Linux/Mac
cd %USERPROFILE%\.vscode\extensions\ # Windows

# Copy folder ekstensi
cp -r /path/to/meta-lang-vscode .
```

## ๐ŸŽฏ Contoh Kode Lengkap

### Program Kalkulator Sederhana
```meta
modul kalkulator():
cetak("=== KALKULATOR SEDERHANA ===")
cetak("1. Tambah")
cetak("2. Kurang")
cetak("3. Kali")
cetak("4. Bagi")

pilihan = bilangan(masukan("Pilih operasi (1-4): "))
a = desimal(masukan("Masukkan angka pertama: "))
b = desimal(masukan("Masukkan angka kedua: "))

jika pilihan == 1 maka:
hasil = a + b
cetak(f"Hasil: {a} + {b} = {hasil}")
atau jika pilihan == 2 maka:
hasil = a - b
cetak(f"Hasil: {a} - {b} = {hasil}")
atau jika pilihan == 3 maka:
hasil = a * b
cetak(f"Hasil: {a} ร— {b} = {hasil}")
atau jika pilihan == 4 maka:
coba:
hasil = a / b
cetak(f"Hasil: {a} รท {b} = {hasil}")
kecuali ZeroDivisionError:
cetak("Error: Tidak bisa membagi dengan nol!")
selain itu:
cetak("Pilihan tidak valid!")

kembalikan hasil

# Panggil fungsi
kalkulator()
```

### Program Data Mahasiswa
```meta
kelas Mahasiswa:
modul __init__(diri, nama, nim, nilai):
diri.nama = nama
diri.nim = nim
diri.nilai = nilai

modul info(diri):
kembalikan f"{diri.nama} ({diri.nim}) - Nilai: {diri.nilai}"

modul lulus(diri):
kembalikan diri.nilai >= 60

# Data mahasiswa
data_mahasiswa = []

# Input data
n = bilangan(masukan("Jumlah mahasiswa: "))
untuk i dalam rentang(n):
cetak(f"\nData mahasiswa ke-{i+1}")
nama = masukan("Nama: ")
nim = masukan("NIM: ")
nilai = desimal(masukan("Nilai: "))

m = Mahasiswa(nama, nim, nilai)
data_mahasiswa.tambah(m)

# Tampilkan hasil
cetak("\n=== DAFTAR MAHASISWA ===")
untuk m dalam data_mahasiswa:
status = "LULUS" jika m.lulus() selain itu "TIDAK LULUS"
cetak(f"{m.info()} - {status}")

# Statistik
nilai_list = [m.nilai untuk m dalam data_mahasiswa]
cetak(f"\nRata-rata nilai: {jumlah(nilai_list) / panjang(nilai_list)}")
cetak(f"Nilai tertinggi: {maksimal(nilai_list)}")
cetak(f"Nilai terendah: {minimal(nilai_list)}")
```

## โŒจ๏ธ Shortcut & Snippets

| Shortcut | Hasil |
|----------|-------|
| `modul` + Tab | Template fungsi lengkap |
| `jika` + Tab | Template if-else |
| `untuk` + Tab | Template for loop |
| `selama` + Tab | Template while loop |
| `kelas` + Tab | Template class dengan constructor |
| `coba` + Tab | Template try-except |
| `cetak` + Tab | `cetak("")` |
| `masukan` + Tab | `masukan("")` |
| `utama` + Tab | Template main function |
| `listcomp` + Tab | Template list comprehension |

## ๐Ÿ› ๏ธ Konfigurasi

Di `settings.json`:
```json
{
"files.associations": {
"*.meta": "meta"
},
"editor.tabSize": 4,
"editor.insertSpaces": true,
"editor.formatOnSave": true,
"[meta]": {
"editor.defaultFormatter": "dwibakti.meta-lang",
"editor.wordBasedSuggestions": false
}
}
```

## ๐Ÿ“ Struktur Ekstensi

```
meta-lang/
โ”œโ”€โ”€ .vscode/
โ”‚ โ””โ”€โ”€ launch.json # Debug configuration
โ”œโ”€โ”€ syntaxes/
โ”‚ โ””โ”€โ”€ meta.tmLanguage.json # Syntax highlighting rules (25+ patterns)
โ”œโ”€โ”€ language-configuration.json # Language config (brackets, comments, etc.)
โ”œโ”€โ”€ package.json # Extension manifest
โ”œโ”€โ”€ README.md # This file
โ”œโ”€โ”€ CHANGELOG.md # Version history
โ””โ”€โ”€ icons/
โ””โ”€โ”€ icon.png # Extension icon (64x64)
```

## ๐Ÿ”„ Konversi ke Python

Ekstensi ini secara otomatis dapat mengkonversi kode Meta ke Python:

**Input (Meta):**
```meta
modul hitung_luas(panjang, lebar):
kembalikan panjang * lebar

cetak(hitung_luas(5, 3))
```

**Output (Python):**
```python
def hitung_luas(panjang, lebar):
return panjang * lebar

print(hitung_luas(5, 3))
```

## ๐Ÿ› Pelaporan Bug

Jika menemukan bug atau memiliki saran fitur, silakan buat issue di:
[GitHub Issues](https://github.com/dwibakti/meta-lang-vscode/issues)

## ๐Ÿค Kontribusi

Kontribusi sangat diterima! Langkah-langkah:

1. Fork repository
2. Buat branch baru (`git checkout -b fitur-baru`)
3. Commit perubahan (`git commit -m 'Menambah fitur X'`)
4. Push ke branch (`git push origin fitur-baru`)
5. Buat Pull Request

### Area yang Butuh Kontribusi:
- Menambah keyword baru
- Meningkatkan syntax highlighting
- Membuat dokumentasi lebih lengkap
- Contoh program tambahan

## ๐Ÿ“œ Lisensi

MIT License - Copyright (c) 2026 dwibakti

## ๐Ÿ™ Terima Kasih

- Penyedia API
- Komunitas Python Indonesia
- Semua kontributor dan pengguna Meta Language

---

**Meta Language** - Belajar pemrograman lebih mudah dengan bahasa Indonesia! ๐Ÿ‡ฎ๐Ÿ‡ฉ

*"Pemrograman untuk semua, tanpa hambatan bahasa"*