"Coding rasa nongkrong di kalimalang." π¨βπ» Lead Developer: FARILtau72
PyKasi adalah interpreter bahasa pemrograman esoterik yang dibangun di atas Python. Tujuannya simpel: Mengganti syntax Python yang kaku jadi bahasa tongkrongan Bekasi yang valid. Dibangun dengan arsitektur modular menggunakan PLY (Python Lex-Yacc), bikin code ini enak dibaca developer tapi bikin sakit kepala user kalau sampe error (karena error message-nya ngegas).
Fitur-fitur modern PyKasi:
- β
Function definitions (
fungsi) dengan return values - β Lists dan dictionaries untuk data structures
- β Built-in functions dengan nama Bekasi (panjang, maks, min, dll)
- β Loop control (break/continue atau berhenti/terus)
- β Try-catch error handling (coba/tangkep)
- β Enhanced operators (==, !=, >=, <=, dll)
- β Lambda functions (lamda) untuk functional programming
- β Python library imports (impor) untuk akses ekosistem Python
- β Flask web framework support untuk bikin web app
Ikutin langkah ini biar lu bisa langsung ngoding tanpa drama.
- Pastiin laptop lu udah ada Python 3.8 ke atas. (Cek pake
python --version). - Pastiin lu punya koneksi internet (buat download library).
Ambil kodingannya dari GitHub Bang Faril. Buka terminal/CMD/Git Bash:
git clone https://github.com/FARILtau72/pykasi.git
cd pykasi
Optional sih, tapi disaranin biar library-nya gak nyampur sama project lain.
Buat Windows:
python -m venv venv
venv\Scripts\activate
Buat Mac/Linux:
python3 -m venv venv
source venv/bin/activate
PyKasi butuh library ply buat jalan. Ketik ini:
pip install ply
Kalo installasi sukses, coba jalanin file contoh yang udah disediain:
python main.py contoh.bks
Kalau muncul tulisan output, berarti lu udah resmi jadi warga PyKasi! π
Buat lu yang mau kontribusi atau kepo isinya, ini peta strukturnya. Kita pake konsep Clean Code & Modular.
| File / Folder | Fungsi & Tanggung Jawab |
|---|---|
src/ |
Folder Inti. Semua otak program ada di sini. |
βββ lexer.py |
Si Pemecah Kata. Tugasnya baca kode .bks lu dan misahin jadi token (Misal: spill diubah jadi token PRINT). |
βββ parser.py |
Si Polisi Tata Bahasa. Tugasnya ngecek urutan kode. Kalau abis kalo gak ada kondisi, dia yang teriak error. |
βββ interpreter.py |
Si Eksekutor. Mesin utama yang ngejalanin logika program. Di sini juga tempat nyimpen variabel & error handling "ngegas". |
main.py |
Gerbang Utama. File yang lu panggil di terminal. Dia nyambungin file .bks user ke folder src. |
contoh.bks |
File demo buat pamer syntax. |
Jangan sampe salah panggil, nanti dimarahin interpreter.
| PyKasi | Python Asli | Deskripsi |
|---|---|---|
spill |
print() |
Buat nampilin teks ke layar. |
gas |
= |
Buat masukin nilai ke variabel. |
duit |
int |
Tipe data angka bulat. |
omongan |
string |
Tipe data tulisan/teks. |
| PyKasi | Python Asli | Deskripsi |
|---|---|---|
kalo |
if |
Kondisi awal. |
kalo_kaga |
else |
Kondisi terakhir (kalau semua salah). |
puterin |
while |
Perulangan selama kondisi valid. |
valid |
True |
Benar. |
hoax |
False |
Salah. |
terus |
continue |
Lanjut ke iterasi berikutnya. |
berhenti |
break |
Berhenti dari loop. |
| PyKasi | Python Asli | Deskripsi |
|---|---|---|
fungsi |
def |
Buat fungsi. |
balikin |
return |
Kembalikan nilai dari fungsi. |
lamda |
lambda |
Buat fungsi anonim. |
| PyKasi | Python Asli | Deskripsi |
|---|---|---|
[1, 2, 3] |
[1, 2, 3] |
List/Array. |
{"key": "val"} |
{"key": "val"} |
Dictionary/Map. |
list[0] |
list[0] |
Akses elemen list. |
| PyKasi | Python Asli | Deskripsi |
|---|---|---|
coba |
try |
Coba eksekusi kode. |
tangkep |
except |
Tangkap error. |
| PyKasi | Python Asli | Deskripsi |
|---|---|---|
panjang() |
len() |
Hitung panjang list/string. |
maks() |
max() |
Cari nilai maksimum. |
min() |
min() |
Cari nilai minimum. |
jumlah() |
sum() |
Jumlahkan semua nilai. |
urutkan() |
sorted() |
Urutkan list. |
balik() |
reversed() |
Balik urutan list. |
rentang() |
range() |
Buat rentang angka. |
bentuk() |
str() |
Konversi ke string. |
hitung() |
int() |
Konversi ke integer. |
desimal() |
float() |
Konversi ke float. |
tipe() |
type() |
Cek tipe data. |
| Operator | Deskripsi |
|---|---|
+ |
Tambah (angka/string/list). |
- |
Kurang (angka). |
* |
Kali (angka), atau repeat (string/list). |
/ |
Bagi (angka). |
% |
Modulo/sisa bagi (angka). |
** |
Pangkat (angka). |
== |
Sama dengan. |
!= |
Tidak sama dengan. |
> |
Lebih besar. |
< |
Lebih kecil. |
>= |
Lebih besar atau sama dengan. |
<= |
Lebih kecil atau sama dengan. |
| PyKasi | Python Asli | Deskripsi |
|---|---|---|
impor module |
import module |
Import Python module. |
impor module sebagai alias |
import module as alias |
Import dengan alias. |
dari module impor func |
from module import func |
Import function dari module. |
module.attribute |
module.attribute |
Akses attribute/method. |
PyKasi sekarang bisa bikin web app pake Flask! Lihat flask_demo.bks dan flask_runner.py untuk contoh lengkap.
Copy kode ini ke file baru, misal gaji.bks:
# Hitung sisa duit bulanan
duit gaji gas 5000000;
duit hutang gas 2000000;
kalo gaji > hutang {
spill "Alhamdulillah, masih bisa napas.";
sisa gas gaji - hutang;
spill sisa;
} kalo_kaga {
spill "Waduh, nyari talangan dulu bre.";
}
Jalanin deh:
python main.py gaji.bks
# Fungsi untuk hitung luas persegi panjang
fungsi hitung_luas(panjang, lebar) {
balikin panjang * lebar;
}
duit p gas 10;
duit l gas 5;
duit luas gas hitung_luas(p, l);
spill "Luas persegi panjang: ";
spill luas;
# Main-main dengan list
angka gas [1, 2, 3, 4, 5];
spill "List angka: ";
spill angka;
spill "Elemen pertama: ";
spill angka[0];
spill "Panjang list: ";
spill panjang(angka);
spill "Nilai maksimum: ";
spill maks(1, 2, 3, 4, 5);
Lihat file-file contoh:
fitur_lengkap.bks- Demo semua fitur PyKasi (RECOMMENDED!)fibonacci.bks- Deret Fibonacci dengan rekursifsorting.bks- Implementasi bubble sortflask_demo.bks- Demo Flask web framework integrationflask_runner.py- Flask web server yang bisa dijalankan
# Test Flask integration
python main.py flask_demo.bks
# Run Flask web server
python flask_runner.py
# Buka browser: http://localhost:5000File flask_demo.bks mendemonstrasikan:
- Import Flask modules
- Create Flask application
- Use Python libraries (json, datetime)
- Integrate PyKasi functions with Flask
Mau nambahin fitur? Mau bikin error message-nya makin pedes? Gas aja!
- Fork repo ini.
- Bikin branch baru (
git checkout -b fitur-gokil). - Commit (
git commit -m 'Nambahin fitur X'). - Push (
git push origin fitur-gokil). - Open Pull Request.
**Original Project by FARILtau72** Dibuat dengan Python, Kopi, dan Emosi.