Skip to main content

Bahasa pemrograman berbasis Bahasa Indonesia yang powerful dan modern

Project description

RenzMcLang ๐Ÿš€

RenzMcLanglogo

Bahasa Pemrograman Berbasis Bahasa Indonesia yang Modern dan Powerful

RenzMcLang adalah bahasa pemrograman yang menggunakan sintaks Bahasa Indonesia, dirancang untuk memudahkan pembelajaran pemrograman bagi penutur Bahasa Indonesia sambil tetap menyediakan fitur-fitur modern dan powerful.

PyPI version Python License PyPI

โœจ Fitur Utama

๐ŸŽฏ Sintaks Bahasa Indonesia

  • Keyword dalam Bahasa Indonesia yang intuitif
  • Error messages yang helpful dalam Bahasa Indonesia
  • Dokumentasi lengkap dalam Bahasa Indonesia

๐Ÿ”ฅ Fitur Modern

๐Ÿš€ JIT Compiler (Just-In-Time Compilation)

  • Automatic Hot Function Detection - Deteksi otomatis fungsi yang sering dipanggil
  • Numba Integration - Kompilasi ke native code menggunakan Numba
  • 10-100x Performance Boost - Peningkatan performa signifikan untuk operasi numerik
  • Zero Configuration - Bekerja otomatis tanpa setup
  • Smart Type Inference - Sistem inferensi tipe untuk optimasi maksimal
  • Fallback Safety - Fallback ke interpreter jika kompilasi gagal

๐Ÿ’Ž Robust Type System

  • Optional Type Hints - Type annotations opsional untuk variabel dan fungsi
  • Runtime Type Validation - Validasi tipe saat runtime
  • Bilingual Type Names - Dukungan nama tipe Indonesia dan Inggris
  • Backward Compatible - 100% kompatibel dengan kode tanpa type hints
  • Smart Type Inference - Inferensi tipe otomatis
  • Clear Error Messages - Pesan error tipe yang jelas dan helpful

๐ŸŽจ Advanced Programming Features

  • Lambda Functions - Fungsi anonim untuk functional programming
  • Comprehensions - List dan Dict comprehension untuk kode yang ringkas
  • Ternary Operator - Kondisi inline yang elegant
  • OOP - Object-Oriented Programming dengan class dan inheritance
  • Async/Await - Pemrograman asynchronous
  • Error Handling - Try-catch-finally yang robust
  • Pattern Matching - Switch-case untuk control flow yang elegant
  • Decorators - Function dan class decorators
  • Generators - Yield untuk lazy evaluation
  • Context Managers - With statement untuk resource management

๐Ÿ”Œ Integrasi Python

  • Import dan gunakan library Python
  • Akses Python builtins
  • Interoperability penuh dengan ekosistem Python
  • Call Python functions dari RenzMcLang
  • Seamless data type conversion

๐Ÿ“ฆ Built-in Functions Lengkap

  • String manipulation (148+ functions)
  • Math & statistics - Operasi matematika lengkap
  • File operations - Read, write, manipulasi file
  • JSON utilities - Parse dan generate JSON
  • HTTP functions - HTTP client built-in
  • System operations - Akses sistem operasi
  • Database operations - SQLite, MySQL, PostgreSQL, MongoDB
  • Crypto operations - Enkripsi dan hashing
  • Date/Time - Manipulasi tanggal dan waktu
  • Dan banyak lagi!

EXAMPLE WEBSITE YG PAKE BAHASA PEMROGRAMAN RENZMC

๐Ÿ“ฅ Instalasi

Dari PyPI (Recommended)

pip install renzmc

Dari Source

git clone https://github.com/RenzMc/RenzmcLang.git
cd RenzmcLang
pip install -e .

Verifikasi Instalasi

renzmc --version

Atau jalankan contoh program:

renzmc examples/dasar/01_hello_world.rmc

๐Ÿš€ Quick Start

Hello World

tampilkan "Hello, World!"

Variabel dan Tipe Data

# Deklarasi variabel
nama itu "Budi"
umur itu 25
tinggi itu 175.5
is_student itu benar

# List
hobi itu ["membaca", "coding", "gaming"]

# Dictionary
profil itu {
    "nama": "Budi",
    "umur": 25,
    "kota": "Jakarta"
}

Control Flow

# If-else
jika umur >= 18
    tampilkan "Dewasa"
kalau_tidak
    tampilkan "Anak-anak"
selesai

# Switch-case
cocok nilai
    kasus 1:
        tampilkan "Satu"
    kasus 2:
        tampilkan "Dua"
    bawaan:
        tampilkan "Lainnya"
selesai

# Ternary operator
status itu "Lulus" jika nilai >= 60 kalau tidak "Tidak Lulus"

Loops

# For loop
untuk x dari 1 sampai 10
    tampilkan x
selesai

# For each
untuk setiap item dari daftar
    tampilkan item
selesai

# While loop
selama kondisi
    # kode
selesai

Functions

# Deklarasi fungsi
fungsi tambah(a, b):
    hasil a + b
selesai

# Lambda function
kuadrat itu lambda dengan x -> x * x

# Panggil fungsi
hasil itu tambah(5, 3)
tampilkan hasil  # Output: 8

Comprehensions

# List comprehension
kuadrat itu [x * x untuk setiap x dari angka]

# Dengan filter
genap itu [x untuk setiap x dari angka jika x % 2 == 0]

# Dict comprehension
kuadrat_dict itu {x: x * x untuk setiap x dari angka}

OOP

# Definisi class
kelas Mahasiswa:
    konstruktor(nama, nim):
        diri.nama itu nama
        diri.nim itu nim
    selesai
    
    metode perkenalan():
        tampilkan "Nama: " + diri.nama
        tampilkan "NIM: " + diri.nim
    selesai
selesai

# Buat instance
mhs itu Mahasiswa("Budi", "12345")
mhs.perkenalan()

Python Integration

// Import library Python
impor_python "requests"
impor_python "json"

// Gunakan library Python
response itu panggil_python requests.get("https://api.example.com/data")
data itu panggil_python json.loads(response.text)
tampilkan data

๐Ÿ“š Dokumentasi Lengkap

Lihat folder docs/ untuk dokumentasi lengkap:

๐Ÿ“– Contoh Program

Lihat folder examples/ untuk 80+ contoh program yang mencakup:

  • Dasar - Hello World, kalkulator, loops
  • Intermediate - Sorting algorithms, sistem login
  • Advanced - Web scraping, OOP, async/await
  • Database - SQLite, MySQL, PostgreSQL, MongoDB
  • Web Development - HTTP server, REST API
  • Data Processing - CSV, JSON, file operations
  • Dan banyak lagi!

Menjalankan Contoh

# Contoh dasar
renzmc examples/dasar/01_hello_world.rmc

# Contoh database
renzmc examples/database/01_sqlite_basic.rmc

# Contoh web scraping
renzmc examples/python_integration/01_web_scraping.rmc

๐ŸŽ“ Tutorial

1. Instalasi dan Setup

# Install dari PyPI
pip install renzmc

# Verifikasi instalasi
renzmc --version

# Jalankan REPL (coming soon)
renzmc

2. Program Pertama

Buat file hello.rmc:

tampilkan "Hello, World!"
tampilkan "Selamat datang di RenzMcLang!"

Jalankan:

renzmc hello.rmc

3. Program dengan Input

tampilkan "Siapa nama Anda?"
nama itu input()
tampilkan "Halo, " + nama + "!"

4. Program Kalkulator

tampilkan "=== Kalkulator Sederhana ==="
tampilkan "Masukkan angka pertama:"
a itu ke_angka(input())

tampilkan "Masukkan angka kedua:"
b itu ke_angka(input())

tampilkan "Pilih operasi (+, -, *, /):"
op itu input()

jika op == "+"
    hasil itu a + b
kalau_tidak_jika op == "-"
    hasil itu a - b
kalau_tidak_jika op == "*"
    hasil itu a * b
kalau_tidak_jika op == "/"
    hasil itu a / b
kalau_tidak
    tampilkan "Operasi tidak valid"
    keluar
selesai

tampilkan f"Hasil: {hasil}"

๐Ÿ”ง Pengembangan

Setup Development Environment

# Clone repository
git clone https://github.com/RenzMc/RenzmcLang.git
cd RenzmcLang

# Install dalam mode development
pip install -e .

# Install development dependencies
pip install pytest black flake8

Menjalankan Tests

# Test semua examples
python test_examples.py

# Test specific file
renzmc examples/test_all/test_all_features.rmc

๐Ÿ› Troubleshooting

Import Error

// โŒ Salah
impor sqlite3

// โœ… Benar
impor_python "sqlite3"

Syntax Error

// โŒ Salah
jika x bukan dalam list

// โœ… Benar
jika x tidak dalam list

File Not Found

// Pastikan path relatif benar
dengan buka("data.txt", "r") sebagai f
    # kode
selesai

๐Ÿค Kontribusi

Kontribusi sangat diterima! Silakan:

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

๐Ÿ“ License

Distributed under the MIT License. See LICENSE for more information.

๐Ÿ‘ฅ Authors

  • RenzMc - Initial work - RenzMc

๐Ÿ“ž Contact


Made with โค๏ธ for Indonesian developers

"Coding in your native language, thinking in your native way"

๐ŸŽฏ Use Cases

RenzMcLang cocok untuk:

  • ๐Ÿ“š Pembelajaran: Belajar programming dengan bahasa Indonesia
  • ๐Ÿ”ฌ Prototyping: Rapid application development
  • ๐Ÿ“Š Data Processing: Analisis dan transformasi data dengan JIT acceleration
  • ๐ŸŒ Web Development: Backend API development
  • ๐Ÿ—„๏ธ Database Operations: Database management dan queries
  • ๐Ÿค– Automation: Script automation dan task scheduling
  • ๐Ÿงฎ Scientific Computing: Komputasi numerik dengan JIT compiler
  • ๐Ÿ“ˆ Algorithm Implementation: Implementasi algoritma dengan performa tinggi
  • ๐ŸŽฎ Game Logic: Game logic dengan type safety
  • ๐Ÿ”ข Mathematical Modeling: Pemodelan matematika dengan JIT optimization

๐Ÿ’ก Tips & Best Practices

Best Practices

  1. Gunakan nama variabel yang deskriptif
  2. Tambahkan komentar untuk kode kompleks
  3. Manfaatkan built-in functions
  4. Gunakan error handling yang proper
  5. Test kode secara berkala
  6. Gunakan type hints untuk fungsi publik
  7. Manfaatkan JIT compiler untuk operasi numerik intensif

Performance Tips

  1. Leverage JIT Compiler - Fungsi numerik dengan loop akan otomatis dioptimasi
  2. Use Type Hints - Membantu JIT compiler mengoptimasi lebih baik
  3. Gunakan comprehensions untuk operasi list
  4. Manfaatkan built-in functions yang sudah dioptimasi
  5. Hindari nested loops yang dalam (atau biarkan JIT mengoptimasi)
  6. Gunakan generator untuk data besar
  7. Profile kode untuk menemukan bottleneck
  8. Pisahkan operasi numerik ke fungsi terpisah untuk JIT optimization

JIT Optimization Tips

  1. Keep Functions Pure - Fungsi tanpa side effects lebih mudah dioptimasi
  2. Use Numeric Types - Integer dan Float mendapat benefit terbesar
  3. Minimize External Calls - Fungsi self-contained lebih cepat dikompilasi
  4. Let It Warm Up - Biarkan fungsi dipanggil 10+ kali untuk trigger JIT
  5. Check Compilation - Fungsi dengan loop dan operasi kompleks akan dikompilasi

๐Ÿ”— Links

Star โญ repository ini jika bermanfaat!

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

renzmc-0.0.5.tar.gz (414.0 kB view details)

Uploaded Source

Built Distribution

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

renzmc-0.0.5-py3-none-any.whl (99.2 kB view details)

Uploaded Python 3

File details

Details for the file renzmc-0.0.5.tar.gz.

File metadata

  • Download URL: renzmc-0.0.5.tar.gz
  • Upload date:
  • Size: 414.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for renzmc-0.0.5.tar.gz
Algorithm Hash digest
SHA256 4787fdfd637d98dc874d167e3849f58ec73f80e2c329507b1f972d7ba49c9348
MD5 13caa72d80ac82022e573e786293eb40
BLAKE2b-256 0df952e0de66fe3d5a55ca5ba62cfa222928bd307d2b1b4bc358f2ab24c167da

See more details on using hashes here.

Provenance

The following attestation bundles were made for renzmc-0.0.5.tar.gz:

Publisher: publish-to-pypi.yml on RenzMc/RenzmcLang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file renzmc-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: renzmc-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 99.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for renzmc-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 2f88f4400c50e4e9d8f3e2c6290ea3b0a6c54a56c523eb50d7f1e425f3d1ee78
MD5 06ea55690a41ff25e3b98b0269fb1b47
BLAKE2b-256 d3396dfe80591eed8e3702b936798513c00546a4834f910c556cc7558f50447b

See more details on using hashes here.

Provenance

The following attestation bundles were made for renzmc-0.0.5-py3-none-any.whl:

Publisher: publish-to-pypi.yml on RenzMc/RenzmcLang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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