Skip to main content

Meta Program Create Program Gui .meta -> .exe

Project description

Meta Language Indonesia

VS Code Extension Version License

๐Ÿ“– 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

๐Ÿš€ 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.0.tar.gz (13.0 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.0-py3-none-any.whl (161.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: meta_language_indonesia-1.0.0.tar.gz
  • Upload date:
  • Size: 13.0 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.0.tar.gz
Algorithm Hash digest
SHA256 ed90b8673dd65b86971de5187d878ad42a62a164dcd68cc6fc197be28d10ea02
MD5 a393d70cc1690ed9a433fb2edc6191d1
BLAKE2b-256 c40508093cf89c2358fa5c250e2ce5bdf9e0452e37843f452bfea8dd97cafce6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for meta_language_indonesia-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ecb1f7c31cf7f77f6d2f6f342227257d21e9eb4d3506f653e9a29511314c2ae3
MD5 6c705fbb21b0528c7036117364d0fab8
BLAKE2b-256 2023f7e5a55e3ce239e838c2dc6c80054ce872eee03acf493793cbb6f9436d7b

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