{"id":48986822,"url":"https://github.com/royhtml/meta-language-indonesia","last_synced_at":"2026-04-18T13:05:39.408Z","repository":{"id":352175238,"uuid":"1214158634","full_name":"Royhtml/Meta-Language-Indonesia","owner":"Royhtml","description":"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.","archived":false,"fork":false,"pushed_at":"2026-04-18T07:54:05.000Z","size":18064,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-18T09:34:15.890Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Royhtml.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-18T07:36:15.000Z","updated_at":"2026-04-18T07:55:19.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Royhtml/Meta-Language-Indonesia","commit_stats":null,"previous_names":["royhtml/meta-language-indonesia"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Royhtml/Meta-Language-Indonesia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Royhtml%2FMeta-Language-Indonesia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Royhtml%2FMeta-Language-Indonesia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Royhtml%2FMeta-Language-Indonesia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Royhtml%2FMeta-Language-Indonesia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Royhtml","download_url":"https://codeload.github.com/Royhtml/Meta-Language-Indonesia/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Royhtml%2FMeta-Language-Indonesia/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31969791,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-18T13:05:38.494Z","updated_at":"2026-04-18T13:05:39.401Z","avatar_url":"https://github.com/Royhtml.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Meta Language Indonesia\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/Royhtml/Meta-Language-Indonesia/blob/main/icons/icon.png?raw=true\" width=\"180\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eMeta Language Indonesia\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/VS%20Code-1.60.0+-blue.svg?logo=visual-studio-code\u0026logoColor=white\" alt=\"VS Code Extension\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/version-1.0.0-green.svg\" alt=\"Version\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/license-MIT-orange.svg\" alt=\"License\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Python-3.8+-yellow.svg?logo=python\u0026logoColor=white\" alt=\"Python Version\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003eCompiler Bahasa Pemrograman berbasis Bahasa Indonesia yang mudah dipahami dan digunakan.\u003c/b\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://marketplace.visualstudio.com/items?itemName=RoyHtml.meta-lang\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Install_Extension-Visual_Studio_Code-blue?style=for-the-badge\u0026logo=visual-studio-code\u0026logoColor=white\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://pypi.org/project/meta-language-indonesia/\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Install_Package-PyPI-blue?style=for-the-badge\u0026logo=pypi\u0026logoColor=white\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/Royhtml/Meta-Language-Indonesia\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/View_Repo-GitHub-181717?style=for-the-badge\u0026logo=github\u0026logoColor=white\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## 📖 Tentang Meta Language\n\n**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.\n\n## ✨ Fitur Utama\n\n### 🎨 **Sintaks Highlighting \u0026 Warna Kode**\n- Pewarnaan sintaks yang jelas dan intuitif untuk semua keyword Bahasa Indonesia\n- Membedakan antara fungsi, variabel, operator, dan keyword\n- Highlight untuk string, angka, komentar, dan tipe data\n\n### 📝 **Auto-Completion Cerdas**\n- Saran kode otomatis saat mengetik keyword Bahasa Indonesia\n- Auto-complete untuk fungsi bawaan seperti `cetak()`, `masukan()`, `rentang()`\n- Saran untuk method seperti `.tambah()`, `.pisah()`, `.kunci()`\n\n### 🔄 **Konversi Real-time ke Python**\n- Terjemahan otomatis kode Meta ke Python\n- Preview hasil konversi langsung di editor\n- Dukung semua fitur: list comprehension, dictionary comprehension, OOP\n\n### 🏷️ **Icon \u0026 File Association**\n- Icon khusus untuk file dengan ekstensi `.meta`\n- Pengenalan otomatis file Meta Language\n- Integration dengan file explorer VS Code\n\n### 📚 **Code Snippets Siap Pakai**\n- Template fungsi: ketik `modul` + `Tab`\n- Template percabangan: ketik `jika` + `Tab`\n- Template perulangan: `untuk` atau `selama` + `Tab`\n- Template class: `kelas` + `Tab`\n\n### 🔍 **Error Highlighting**\n- Mendeteksi kesalahan sintaks dasar\n- Memberi tahu keyword yang tidak dikenal\n- Saran perbaikan untuk keyword yang salah eja\n\n### 📩 **Compile Meta To Exe**\n\n**1. Language Meta**\n```meta\nmeta -m pip install meta-language-indonesia\n```\n**Running**\n```meta\nmeta_compile\n```\n\n**2. Language python**\n```meta\npip install meta-language-indonesia\n```\n**Running**\n```meta\nmeta_compile\n```\n\n### 🚀 **Fitur Lengkap Lainnya**\n\n#### **Dukungan List Comprehension**\n```meta\n[kuadrat untuk i dalam range(10) jika i % 2 == 0]\n```\n\n#### **Dukungan Dictionary Comprehension**\n```meta\n{i: kuadrat untuk i dalam range(5)}\n```\n\n#### **Konversi Tipe Data**\n- `teks()` → `str()`\n- `bilangan()` / `angka()` → `int()`\n- `desimal()` → `float()`\n- `benar_salah()` → `bool()`\n\n#### **Fungsi Matematika**\n- `akar()` → `math.sqrt()`\n- `pangkat()` → `pow()`\n- `maksimal()` / `minimal()` → `max()` / `min()`\n- `jumlah()` → `sum()`\n\n#### **Method Lengkap untuk Tipe Data**\n\n**List Methods:**\n- `.tambah()` → `.append()`\n- `.masukkan()` → `.insert()`\n- `.hapus()` → `.remove()`\n- `.bersihkan()` → `.clear()`\n- `.urutkan()` → `.sort()`\n- `.balik()` → `.reverse()`\n\n**String Methods:**\n- `.jadikan_besar()` → `.upper()`\n- `.jadikan_kecil()` → `.lower()`\n- `.ganti()` → `.replace()`\n- `.pisah()` → `.split()`\n- `.gabung()` → `.join()`\n- `.cari()` → `.find()`\n\n**Dictionary Methods:**\n- `.ambil()` → `.get()`\n- `.kunci()` → `.keys()`\n- `.nilai()` → `.values()`\n- `.item()` → `.items()`\n\n#### **Exception Handling**\n```meta\ncoba:\n    hasil = 10 / 0\nkecuali ZeroDivisionError:\n    cetak(\"Tidak bisa dibagi nol!\")\nakhirnya:\n    cetak(\"Selesai\")\n```\n\n#### **Context Manager**\n```meta\ndengan buka(file.txt, r) sebagai f:\n    isi = f.baca()\n```\n\n#### **Import Statements**\n```meta\ndari math import sqrt, pi\nimport random\nimport os as sistem\n```\n\n#### **Lambda Functions**\n```meta\nkali_dua = lambda x: x * 2\n```\n\n### 🎯 **Daftar Lengkap Keyword yang Didukung**\n\n| Kategori | Keyword Indonesia | Konversi ke |\n|----------|------------------|-------------|\n| **Input/Output** | `cetak()`, `meta()`, `tulis()` | `print()` |\n| | `masukan()`, `baca()` | `input()` |\n| **Percabangan** | `jika`, `maka` | `if` |\n| | `atau jika` | `elif` |\n| | `selain itu` | `else` |\n| **Perulangan** | `untuk`, `dalam` | `for`, `in` |\n| | `selama` | `while` |\n| | `berhenti`, `lanjut` | `break`, `continue` |\n| **Fungsi** | `modul`, `fungsi` | `def` |\n| | `kembalikan` | `return` |\n| **Boolean** | `benar`, `salah` | `True`, `False` |\n| | `kosong`, `null` | `None` |\n| **Operator Logika** | `dan`, `atau`, `tidak` | `and`, `or`, `not` |\n| | `di`, `adalah` | `in`, `is` |\n| **OOP** | `kelas` | `class` |\n| | `diri` | `self` |\n| **Exception** | `coba`, `kecuali` | `try`, `except` |\n| | `akhirnya`, `naikkan` | `finally`, `raise` |\n| **Lainnya** | `rentang()`, `panjang()` | `range()`, `len()` |\n| | `tipe()`, `zip()` | `type()`, `zip()` |\n| | `petakan()`, `saring()` | `map()`, `filter()` |\n\n### ⚡ **Fitur Produktivitas**\n- **Bracket matching** untuk kurung, kurung siku, dan kurung kurawal\n- **Auto-indentation** untuk blok kode (if, for, while, modul)\n- **Folding regions** untuk menyembunyikan blok kode\n- **Comment toggling** dengan `Ctrl+/`\n\n### 🎨 **Customization**\n- Atur warna sintaks sesuai preferensi di `settings.json`\n- Tambahkan keyword kustom\n- Konfigurasi indentasi (tab vs spasi)\n\n## 🚀 Instalasi\n\n### Dari VS Code Marketplace\n1. Buka VS Code\n2. Tekan `Ctrl+Shift+X` (Windows/Linux) atau `Cmd+Shift+X` (Mac)\n3. Cari \"Meta Language Indonesia\"\n4. Klik **Install**\n\n### Manual\n```bash\n# Clone repository\ngit clone https://github.com/dwibakti/meta-lang-vscode.git\n\n# Pindah ke folder ekstensi VS Code\ncd ~/.vscode/extensions/  # Linux/Mac\ncd %USERPROFILE%\\.vscode\\extensions\\  # Windows\n\n# Copy folder ekstensi\ncp -r /path/to/meta-lang-vscode .\n```\n\n## 🎯 Contoh Kode Lengkap\n\n### Program Kalkulator Sederhana\n```meta\nmodul kalkulator():\n    cetak(\"=== KALKULATOR SEDERHANA ===\")\n    cetak(\"1. Tambah\")\n    cetak(\"2. Kurang\")\n    cetak(\"3. Kali\")\n    cetak(\"4. Bagi\")\n    \n    pilihan = bilangan(masukan(\"Pilih operasi (1-4): \"))\n    a = desimal(masukan(\"Masukkan angka pertama: \"))\n    b = desimal(masukan(\"Masukkan angka kedua: \"))\n    \n    jika pilihan == 1 maka:\n        hasil = a + b\n        cetak(f\"Hasil: {a} + {b} = {hasil}\")\n    atau jika pilihan == 2 maka:\n        hasil = a - b\n        cetak(f\"Hasil: {a} - {b} = {hasil}\")\n    atau jika pilihan == 3 maka:\n        hasil = a * b\n        cetak(f\"Hasil: {a} × {b} = {hasil}\")\n    atau jika pilihan == 4 maka:\n        coba:\n            hasil = a / b\n            cetak(f\"Hasil: {a} ÷ {b} = {hasil}\")\n        kecuali ZeroDivisionError:\n            cetak(\"Error: Tidak bisa membagi dengan nol!\")\n    selain itu:\n        cetak(\"Pilihan tidak valid!\")\n    \n    kembalikan hasil\n\n# Panggil fungsi\nkalkulator()\n```\n\n### Program Data Mahasiswa\n```meta\nkelas Mahasiswa:\n    modul __init__(diri, nama, nim, nilai):\n        diri.nama = nama\n        diri.nim = nim\n        diri.nilai = nilai\n    \n    modul info(diri):\n        kembalikan f\"{diri.nama} ({diri.nim}) - Nilai: {diri.nilai}\"\n    \n    modul lulus(diri):\n        kembalikan diri.nilai \u003e= 60\n\n# Data mahasiswa\ndata_mahasiswa = []\n\n# Input data\nn = bilangan(masukan(\"Jumlah mahasiswa: \"))\nuntuk i dalam rentang(n):\n    cetak(f\"\\nData mahasiswa ke-{i+1}\")\n    nama = masukan(\"Nama: \")\n    nim = masukan(\"NIM: \")\n    nilai = desimal(masukan(\"Nilai: \"))\n    \n    m = Mahasiswa(nama, nim, nilai)\n    data_mahasiswa.tambah(m)\n\n# Tampilkan hasil\ncetak(\"\\n=== DAFTAR MAHASISWA ===\")\nuntuk m dalam data_mahasiswa:\n    status = \"LULUS\" jika m.lulus() selain itu \"TIDAK LULUS\"\n    cetak(f\"{m.info()} - {status}\")\n\n# Statistik\nnilai_list = [m.nilai untuk m dalam data_mahasiswa]\ncetak(f\"\\nRata-rata nilai: {jumlah(nilai_list) / panjang(nilai_list)}\")\ncetak(f\"Nilai tertinggi: {maksimal(nilai_list)}\")\ncetak(f\"Nilai terendah: {minimal(nilai_list)}\")\n```\n\n## ⌨️ Shortcut \u0026 Snippets\n\n| Shortcut | Hasil |\n|----------|-------|\n| `modul` + Tab | Template fungsi lengkap |\n| `jika` + Tab | Template if-else |\n| `untuk` + Tab | Template for loop |\n| `selama` + Tab | Template while loop |\n| `kelas` + Tab | Template class dengan constructor |\n| `coba` + Tab | Template try-except |\n| `cetak` + Tab | `cetak(\"\")` |\n| `masukan` + Tab | `masukan(\"\")` |\n| `utama` + Tab | Template main function |\n| `listcomp` + Tab | Template list comprehension |\n\n## 🛠️ Konfigurasi\n\nDi `settings.json`:\n```json\n{\n    \"files.associations\": {\n        \"*.meta\": \"meta\"\n    },\n    \"editor.tabSize\": 4,\n    \"editor.insertSpaces\": true,\n    \"editor.formatOnSave\": true,\n    \"[meta]\": {\n        \"editor.defaultFormatter\": \"dwibakti.meta-lang\",\n        \"editor.wordBasedSuggestions\": false\n    }\n}\n```\n\n## 📁 Struktur Ekstensi\n\n```\nmeta-lang/\n├── .vscode/\n│   └── launch.json          # Debug configuration\n├── syntaxes/\n│   └── meta.tmLanguage.json # Syntax highlighting rules (25+ patterns)\n├── language-configuration.json  # Language config (brackets, comments, etc.)\n├── package.json             # Extension manifest\n├── README.md               # This file\n├── CHANGELOG.md            # Version history\n└── icons/\n    └── icon.png            # Extension icon (64x64)\n```\n\n## 🔄 Konversi ke Python\n\nEkstensi ini secara otomatis dapat mengkonversi kode Meta ke Python:\n\n**Input (Meta):**\n```meta\nmodul hitung_luas(panjang, lebar):\n    kembalikan panjang * lebar\n\ncetak(hitung_luas(5, 3))\n```\n\n**Output (Python):**\n```python\ndef hitung_luas(panjang, lebar):\n    return panjang * lebar\n\nprint(hitung_luas(5, 3))\n```\n\n## 🐛 Pelaporan Bug\n\nJika menemukan bug atau memiliki saran fitur, silakan buat issue di:\n[GitHub Issues](https://github.com/dwibakti/meta-lang-vscode/issues)\n\n## 🤝 Kontribusi\n\nKontribusi sangat diterima! Langkah-langkah:\n\n1. Fork repository\n2. Buat branch baru (`git checkout -b fitur-baru`)\n3. Commit perubahan (`git commit -m 'Menambah fitur X'`)\n4. Push ke branch (`git push origin fitur-baru`)\n5. Buat Pull Request\n\n### Area yang Butuh Kontribusi:\n- Menambah keyword baru\n- Meningkatkan syntax highlighting\n- Membuat dokumentasi lebih lengkap\n- Contoh program tambahan\n\n## 📜 Lisensi\n\nMIT License - Copyright (c) 2026 dwibakti\n\n## 🙏 Terima Kasih\n\n- Penyedia API\n- Komunitas Python Indonesia\n- Semua kontributor dan pengguna Meta Language\n\n---\n\n**Meta Language** - Belajar pemrograman lebih mudah dengan bahasa Indonesia! 🇮🇩\n\n*\"Pemrograman untuk semua, tanpa hambatan bahasa\"*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froyhtml%2Fmeta-language-indonesia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froyhtml%2Fmeta-language-indonesia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froyhtml%2Fmeta-language-indonesia/lists"}