Bahasa pemrograman berbasis Bahasa Indonesia yang powerful dan modern
Project description
RenzMcLang
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.
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
Bahasa pemrograman RenzmcLang sekarang sudah punya ekstensi VSCode - cek di GitHub Renzmc Extension
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"
lainnya
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 lainnya "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
# 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
Dokumentasi Online
Kunjungi renzmc-docs.vercel.app untuk dokumentasi lengkap dan interaktif.
Dokumentasi Lokal
Lihat folder docs/ untuk dokumentasi lengkap:
Panduan Dasar
- Panduan Instalasi - Cara install dan setup RenzmcLang
- Sintaks Dasar - Pelajari sintaks dasar bahasa
- Quick Reference - Cheat sheet untuk referensi cepat
Fitur & Fungsi
- Built-in Functions - 184+ fungsi built-in lengkap
- Advanced Features - OOP, async/await, decorators, dll
- JIT Compiler - Kompilasi JIT untuk performa maksimal
- Type System - Sistem tipe opsional dengan validasi runtime
Integrasi & Tools
- Integrasi Python - Gunakan library Python di RenzmcLang
- HTTP Client Guide - HTTP client built-in untuk API calls
- Contoh Program - 80+ contoh program siap pakai
Contoh Program
Lihat folder examples/ untuk 130+ 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
Authors
- RenzMc - Initial work - RenzMc
Contact
- GitHub: @RenzMc
- Email: renzaja11@gmail.com
Made with love 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
- Gunakan nama variabel yang deskriptif
- Tambahkan komentar untuk kode kompleks
- Manfaatkan built-in functions
- Gunakan error handling yang proper
- Test kode secara berkala
- Gunakan type hints untuk fungsi publik
- Manfaatkan JIT compiler untuk operasi numerik intensif
Performance Tips
- Leverage JIT Compiler - Fungsi numerik dengan loop akan otomatis dioptimasi
- Use Type Hints - Membantu JIT compiler mengoptimasi lebih baik
- Gunakan comprehensions untuk operasi list
- Manfaatkan built-in functions yang sudah dioptimasi
- Hindari nested loops yang dalam (atau biarkan JIT mengoptimasi)
- Gunakan generator untuk data besar
- Profile kode untuk menemukan bottleneck
- Pisahkan operasi numerik ke fungsi terpisah untuk JIT optimization
JIT Optimization Tips
- Keep Functions Pure - Fungsi tanpa side effects lebih mudah dioptimasi
- Use Numeric Types - Integer dan Float mendapat benefit terbesar
- Minimize External Calls - Fungsi self-contained lebih cepat dikompilasi
- Let It Warm Up - Biarkan fungsi dipanggil 10+ kali untuk trigger JIT
- 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file renzmc-0.0.9.tar.gz.
File metadata
- Download URL: renzmc-0.0.9.tar.gz
- Upload date:
- Size: 469.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8111b1c2b66947f464113001b97a24b0a80175b7aa5486a0d4c8f466ba348763
|
|
| MD5 |
e0faac0b1fe29e0a2a2838aea2b656f7
|
|
| BLAKE2b-256 |
e0b285e0c3da228c48efd0e8e2988d39adf52b6c4fa51baba842a9ca3dc7657d
|
Provenance
The following attestation bundles were made for renzmc-0.0.9.tar.gz:
Publisher:
publish-to-pypi.yml on RenzMc/RenzmcLang
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
renzmc-0.0.9.tar.gz -
Subject digest:
8111b1c2b66947f464113001b97a24b0a80175b7aa5486a0d4c8f466ba348763 - Sigstore transparency entry: 629270746
- Sigstore integration time:
-
Permalink:
RenzMc/RenzmcLang@f9db2c07562cd42d73aa045e38fae7465d6cf2a9 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/RenzMc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@f9db2c07562cd42d73aa045e38fae7465d6cf2a9 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file renzmc-0.0.9-py3-none-any.whl.
File metadata
- Download URL: renzmc-0.0.9-py3-none-any.whl
- Upload date:
- Size: 240.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27372477607065bf0c1df2c8ef91c76a48f20f3e94fb9b47323eea4e51d25e1d
|
|
| MD5 |
cda05c54db54232000d0c8d8a2be91d7
|
|
| BLAKE2b-256 |
be42287cdff84ab7815be38aa32670df9c608176a13676b4b74f10158942aaa8
|
Provenance
The following attestation bundles were made for renzmc-0.0.9-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on RenzMc/RenzmcLang
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
renzmc-0.0.9-py3-none-any.whl -
Subject digest:
27372477607065bf0c1df2c8ef91c76a48f20f3e94fb9b47323eea4e51d25e1d - Sigstore transparency entry: 629270753
- Sigstore integration time:
-
Permalink:
RenzMc/RenzmcLang@f9db2c07562cd42d73aa045e38fae7465d6cf2a9 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/RenzMc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@f9db2c07562cd42d73aa045e38fae7465d6cf2a9 -
Trigger Event:
workflow_dispatch
-
Statement type: