Skip to main content

Meta Program Create Program Gui .meta -> .exe

Project description

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 install meta-language-indonesia

Running

meta_compile

2. Language python

pip install meta-language-indonesia

Running

meta_compile

๐Ÿš€ Fitur Lengkap Lainnya

Dukungan List Comprehension

[kuadrat untuk i dalam range(10) jika i % 2 == 0]

Dukungan Dictionary Comprehension

{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

coba:
    hasil = 10 / 0
kecuali ZeroDivisionError:
    cetak("Tidak bisa dibagi nol!")
akhirnya:
    cetak("Selesai")

Context Manager

dengan buka(file.txt, r) sebagai f:
    isi = f.baca()

Import Statements

dari math import sqrt, pi
import random
import os as sistem

Lambda Functions

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

# 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

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

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:

{
    "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):

modul hitung_luas(panjang, lebar):
    kembalikan panjang * lebar

cetak(hitung_luas(5, 3))

Output (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

๐Ÿค 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"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meta_language_indonesia-1.0.1.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

meta_language_indonesia-1.0.1-py3-none-any.whl (161.9 kB view details)

Uploaded Python 3

File details

Details for the file meta_language_indonesia-1.0.1.tar.gz.

File metadata

  • Download URL: meta_language_indonesia-1.0.1.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for meta_language_indonesia-1.0.1.tar.gz
Algorithm Hash digest
SHA256 4377129d1882e7ccaf84a85f54c9f5e37cf1088a867ea557f3cd1d7d82aa5757
MD5 a24954a8eacabf9ca51e769ca2c2a029
BLAKE2b-256 445d2ee6a4e6b6ca7f9d3dfbf140cff4c95eddda52000dbb358751c068d59f16

See more details on using hashes here.

File details

Details for the file meta_language_indonesia-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for meta_language_indonesia-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 96cdec13d34144967e6a9d99ddb6bedf50ffdcd0559a84cd83644d3bba7358a2
MD5 aacab556b02b3f02375af02b3709027f
BLAKE2b-256 77d3da1b7d127851eca6d41010154199686b70a423aa04431505d7505d9dc1b3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page