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

python -m 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.2.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.2-py3-none-any.whl (161.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: meta_language_indonesia-1.0.2.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.2.tar.gz
Algorithm Hash digest
SHA256 a5560bc6578e17362b735d6f543d6481b67a2245d03261bccc1c0d4a5d6e7d7e
MD5 2826bf383a2a37319ffeba9650b7b6c7
BLAKE2b-256 3ec37c496699fa82269b18d789d2e30011134156869a101a477062bc21dbebb3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for meta_language_indonesia-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3eea343667ba17bec59449444d7f9c1d7e8a3a149b027c8224a5250a032bc0ab
MD5 a81b0c2b3fb17cbe2184f45d6e4b3ac3
BLAKE2b-256 9bd744985343b571fb957b94294263013cb7872f66cdf59e5dcc78537f888b19

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