Skip to main content

Bahasa Pemrograman Sofinco - Sintaks Bahasa Bugis-Makassar Berbasis Python

Project description

SOFINCO - Bahasa Pemrograman Bahasa Bugis-Makassar

Bahasa pemrograman dengan sintaks Bahasa Bugis-Makassar yang berjalan di atas Python. Semua fitur Python bisa digunakan dengan nama dalam Bahasa Bugis-Makassar!

๐Ÿš€ FITUR BARU v3.0

๐Ÿ”ฅ Fitur Production-Ready

  • โœ… REPL Interactive Mode - Mode interaktif untuk eksperimen cepat
  • โœ… Decompiler - Convert Sofinco kembali ke Python
  • โœ… Syntax Checker - Validasi syntax tanpa eksekusi
  • โœ… Code Formatter - Format kode otomatis
  • โœ… AST Viewer - Visualisasi Abstract Syntax Tree
  • โœ… Profiler - Analisis performa program
  • โœ… Linter - Deteksi masalah kode
  • โœ… Benchmark - Ukur kecepatan eksekusi
  • โœ… Docs - Dokumentasi keyword built-in
  • โœ… Package Manager - Install library Python
  • โœ… Transpiler JS - Experimental JavaScript output

๐Ÿ“ฆ CARA INSTAL

pip install sofinco

๐Ÿš€ CARA PAKAI

Menjalankan Program Sofinco

sofinco run namafile.sofinco
# atau
sofinco namafile.sofinco

Opsi tambahan:

sofinco run namafile.sofinco --nosv  # Tidak menyimpan file Python hasil konversi

Convert Python ke Sofinco

Convert single file:

sofinco convert file.py

Convert direktori (rekursif):

sofinco convert /path/to/directory

Convert direktori (non-rekursif):

sofinco convert /path/to/directory --no-recursive

Decompile Sofinco ke Python

sofinco decompile program.sofinco
sofinco decompile program.sofinco -o output.py

Check Syntax

sofinco check program.sofinco

Format Code

sofinco format program.sofinco           # Buat file baru
sofinco format program.sofinco -i        # Format in-place
sofinco format program.sofinco --indent 2  # Custom indentation

REPL Interactive Mode

sofinco repl

Profiling & Benchmarking

sofinco profile program.sofinco
sofinco profile program.sofinco -o profile.txt
sofinco benchmark program.sofinco
sofinco benchmark program.sofinco --iterations 1000

Linting

sofinco lint program.sofinco

AST Viewer

sofinco ast program.sofinco
sofinco ast program.sofinco --format json

Documentation

sofinco docs              # List semua keyword
sofinco docs paccerak     # Detail keyword tertentu

Package Management

sofinco install requests
sofinco list

Transpile to JavaScript (Experimental)

sofinco transpile program.sofinco

Version Info

sofinco version
sofinco --version

๐Ÿ“ CONTOH PROGRAM

Test Suite Lengkap

Jalankan test suite komprehensif yang mencakup semua fitur:

sofinco run test.sofinco

Test suite mencakup:

  • โœ… Tipe Data Dasar (Integer, String, Float, Boolean, None)
  • โœ… Struktur Data (List, Tuple, Dict, Set)
  • โœ… Operasi List (append, sort, reverse, dll)
  • โœ… Operasi Dictionary (keys, values, items, dll)
  • โœ… Operasi String (upper, lower, split, join, dll)
  • โœ… Fungsi (definisi, rekursif, parameter default)
  • โœ… Kondisi (if-elif-else, nested)
  • โœ… Loop (for, while, break, continue)
  • โœ… Operator Logika (and, or, not, in, is)
  • โœ… Exception Handling (try-except-finally)
  • โœ… Built-in Functions (range, len, sum, min, max, dll)
  • โœ… Kelas dan Objek (class, init, methods)
  • โœ… Lambda Function
  • โœ… List Comprehension
  • โœ… Import Module
  • โœ… Advanced Features (unpacking, formatting)
  • โœ… Stress Test (nested loops, large data)

Program Sederhana

# Program sederhana
paccerak("Assalamu Alaikum!")

# Fungsi
pangngaseng sapa(jeneng):
    paccerak("Halo,", jeneng)
    baliki "Selamat datang!"

hasil = sapa("Makassar")

# Kondisi
umuru = 20
nakko umuru >= 18:
    paccerak("Dewasa")
nakkopa umuru >= 13:
    paccerak("Remaja")
narekko:
    paccerak("Anak-anak")

# Loop
ulangi i rilaleng jangka(1, 6):
    paccerak(i)

# List operations
daptar_nama = daptar(["Ali", "Budi", "Citra"])
daptar_nama.tambai("Dedi")
paccerak("Jumlah:", carakna(daptar_nama))

# Exception handling
coba:
    bilanga("abc")
nakkosala ValueError siaganga e:
    paccerak("Error:", e)
nakkosedding:
    paccerak("Selesai")

๐Ÿ”ค REFERENSI LENGKAP SYNTAX

๐Ÿ“ฅ Input/Output

Sofinco Python Arti
paccerak print Cetak ke layar
cetak print Cetak ke layar (alternatif)
passuluak input Terima input
terima input Terima input (alternatif)

๐Ÿ”ข Tipe Data

Sofinco Python Arti
bilanga int Bilangan bulat
uwinru int Bilangan bulat (alternatif)
aksara str String/teks
sura str String/teks (alternatif)
desimal float Bilangan desimal
daptar list List/daftar
kumpulan list List/daftar (alternatif)
tupel tuple Tuple
peta dict Dictionary
pada dict Dictionary (alternatif)
himpunan set Set
bolean bool Boolean

โœ… Nilai Boolean

Sofinco Python Arti
makanja True Benar
makasiri True Benar (alternatif)
demakanja False Salah
tamakasiri False Salah (alternatif)
taniaapa None Kosong/None
kosong None Kosong/None
tannia None Kosong/None (alternatif)

๐Ÿ”€ Kontrol Alur

Sofinco Python Arti
nakko if Jika
wennang if Jika (alternatif)
nakkopa elif Jika lagi
wennangpa elif Jika lagi (alternatif)
narekko else Selain itu
naiya else Selain itu (alternatif)
ulangi for Perulangan untuk
sedding while Perulangan selama
tappai break Hentikan loop
laoi continue Lanjut iterasi
lewati pass Lewati/pass
pilih match Pilih kasus (Python 3.10+)
kasus case Kasus (Python 3.10+)

๐Ÿ”ง Fungsi & Kelas

Sofinco Python Arti
pangngaseng def Definisi fungsi
pangngadereng def Definisi fungsi (alternatif)
baliki return Kembalikan nilai
pole return Kembalikan nilai (alternatif)
fungsi_singkat lambda Fungsi lambda
kelas class Definisi kelas
pangngassengang class Definisi kelas (alternatif)
inisialisasi init Konstruktor
statis staticmethod Metode statis
kelas_metode classmethod Metode kelas
properti property Properti
induk super Super class

โš ๏ธ Exception Handling

Sofinco Python Arti
coba try Coba eksekusi
nakkosala except Tangkap error
nakkosedding finally Akhirnya
bangkitki raise Bangkitkan error
kudu assert Pastikan kondisi

๐Ÿ“ฆ Import & Module

Sofinco Python Arti
impor import Import modul
riboko from Dari modul
siaganga as Sebagai alias

๐Ÿ“ Operasi File

Sofinco Python Arti
bukka open Buka file
tulis write Tulis ke file
baca read Baca file
bacabarisa readline Baca per baris
bacasemua readlines Baca semua baris
tutup close Tutup file
modetulis "w" Mode tulis
modebaca "r" Mode baca
modeambah "a" Mode tambah
modebiner "b" Mode biner

๐Ÿ› ๏ธ Fungsi Built-in

Sofinco Python Arti
jangka range Rentang angka
carakna len Panjang/jumlah
jumlahki sum Jumlahkan
palingciddi min Nilai minimum
palinglompo max Nilai maksimum
urutki sorted Urutkan (baru)
balikkidaptar reversed Balik urutan
hitungurut enumerate Hitung dengan urutan
gabung_daptar zip Gabung list
petakan map Petakan fungsi
saring filter Saring data
semua all Semua benar
ada any Ada yang benar
mutlak abs Nilai mutlak
bulatki round Bulatkan
pangkat pow Pangkat
tipe type Tipe data
daftar_atribut dir Daftar atribut
variabel vars Variabel objek
bantuan help Bantuan
evaluasi eval Evaluasi ekspresi
eksekusi exec Eksekusi kode
kompilasi compile Kompilasi kode
formatki format Format string
karakter chr Karakter dari kode
nilai_karakter ord Kode dari karakter
heksadesimal hex Konversi ke hex
oktal oct Konversi ke oktal
biner bin Konversi ke biner
iris slice Slice objek
induk super Akses parent class

๐Ÿ“‹ Metode List

Sofinco Python Arti
tambai append Tambah di akhir
burakne pop Ambil & hapus
urutkanki sort Urutkan (in-place)
balikidaptar reverse Balik urutan
sisipki insert Sisipkan di posisi
hapuski remove Hapus nilai
bersihki clear Kosongkan
hitungki count Hitung kemunculan
indexki index Cari indeks
extendki extend Gabung list
copyaki copy Salin list

๐Ÿ“š Metode Dictionary

Sofinco Python Arti
kunci keys Ambil semua kunci
nilai values Ambil semua nilai
pasangan items Ambil pasangan key-value
ambilki get Ambil nilai
perbaharui update Perbarui dictionary
bersihki clear Kosongkan
burakne pop Ambil & hapus
salinki copy Salin dictionary

๐Ÿ”ข Metode Set

Sofinco Python Arti
tambahki add Tambah elemen
buangki discard Buang elemen
hapuski remove Hapus elemen
bersihki clear Kosongkan
gabungan union Gabungan set
irisan intersection Irisan set
selisih difference Selisih set
selisih_simetris symmetric_difference Selisih simetris

๐Ÿ“ Metode String

Sofinco Python Arti
sappai find Cari posisi
gantiki replace Ganti teks
lompo upper Huruf besar
ciddi lower Huruf kecil
kapital capitalize Kapital awal
judul title Format judul
potongki strip Potong spasi
pecaki split Pecah string
gabungki join Gabung string
mulai_dengan startswith Mulai dengan
akhiri_dengan endswith Akhiri dengan
huruf_semua isalpha Cek huruf semua
angka_semua isdigit Cek angka semua
huruf_angka isalnum Cek huruf/angka
spasi_semua isspace Cek spasi semua
ciddi_semua islower Cek huruf kecil
lompo_semua isupper Cek huruf besar
isi_nol zfill Isi dengan nol
tengahki center Rata tengah
kiri_rata ljust Rata kiri
kanan_rata rjust Rata kanan
tukar_huruf swapcase Tukar besar-kecil
enkode encode Encode string
dekode decode Decode string

๐Ÿ”— Operator Logika

Sofinco Python Arti
rilaleng in Di dalam
taniarilaleng not in Tidak di dalam
sisamaya is Adalah (identitas)
taniasisamaya is not Bukan (identitas)
dan and Dan
atau or Atau
tania not Tidak

๐Ÿ’ก CONTOH LENGKAP

Convert Python ke Sofinco

# File Python
cat example.py
def greet(name):
    print(f"Hello, {name}!")
    return True

for i in range(5):
    print(i)
# Convert ke Sofinco
sofinco convert example.py
# Hasil: example.sofinco
cat example.sofinco
pangngaseng greet(name):
    paccerak(f"Hello, {name}!")
    baliki makanja

ulangi i rilaleng jangka(5):
    paccerak(i)

Operasi File

# Tulis file
siaganga bukka("data.txt", modetulis) siaganga berkas:
    berkas.tulis("Halo Makassar!\n")

# Baca file
siaganga bukka("data.txt", modebaca) siaganga berkas:
    isi = berkas.baca()
    paccerak(isi)

Exception Handling

coba:
    angka = bilanga(passuluak("Masukkan angka: "))
    hasil = 100 / angka
    paccerak("Hasil:", hasil)
nakkosala ValueError:
    paccerak("Input bukan angka!")
nakkosala ZeroDivisionError:
    paccerak("Tidak bisa dibagi nol!")
nakkosedding:
    paccerak("Program selesai")

Kelas & Objek

kelas Manusia:
    pangngaseng inisialisasi(diri, nama, umur):
        diri.nama = nama
        diri.umur = umur
    
    pangngaseng perkenalan(diri):
        paccerak("Nama saya", diri.nama)
        paccerak("Umur saya", diri.umur)

orang = Manusia("Ahmad", 25)
orang.perkenalan()

List & Dictionary

# List operations
angka = daptar([5, 2, 8, 1, 9])
angka.urutkanki()
paccerak("Terurut:", angka)
paccerak("Terkecil:", palingciddi(angka))
paccerak("Terbesar:", palinglompo(angka))

# Dictionary
data = peta({"nama": "Budi", "umur": 20})
paccerak(data.get("nama"))

Loop & Kondisi

# Loop dengan break dan continue
ulangi i rilaleng jangka(1, 11):
    nakko i == 5:
        laoi  # Skip angka 5
    nakko i == 8:
        tappai  # Berhenti di 8
    paccerak(i)

# While loop
hitung = 0
sedding hitung < 5:
    paccerak("Hitung:", hitung)
    hitung = hitung + 1

โš™๏ธ PERSYARATAN SISTEM

  • Python 3.8 atau lebih baru
  • Sofinco TIDAK BISA berjalan tanpa Python (transpiler berbasis Python)

๐ŸŽจ SYNTAX HIGHLIGHTING

Sofinco mendukung syntax highlighting di berbagai editor!

Supported Editors:

  • VSCode
  • Vim/Neovim
  • LazyVim
  • Sublime Text
  • Nano

Quick Install (LazyVim):

cp sofinco-syntax/lazyvim/lua/plugins/sofinco.lua ~/.config/nvim/lua/plugins/
cp sofinco-syntax/vim/syntax/sofinco.vim ~/.config/nvim/syntax/
cp sofinco-syntax/vim/ftdetect/sofinco.vim ~/.config/nvim/ftdetect/

Quick Install (VSCode):

cp -r sofinco-syntax/vscode ~/.vscode/extensions/sofinco-vscode

Lihat dokumentasi lengkap di GitHub untuk panduan instalasi syntax highlighting.

๐Ÿค KONTRIBUSI

Kontribusi sangat diterima! Silakan buat issue atau pull request di GitHub.

๐Ÿ“„ LISENSI

MIT License

๐Ÿ”— LINKS

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

sofinco-3.0.0.tar.gz (32.3 kB view details)

Uploaded Source

Built Distribution

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

sofinco-3.0.0-py3-none-any.whl (29.1 kB view details)

Uploaded Python 3

File details

Details for the file sofinco-3.0.0.tar.gz.

File metadata

  • Download URL: sofinco-3.0.0.tar.gz
  • Upload date:
  • Size: 32.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for sofinco-3.0.0.tar.gz
Algorithm Hash digest
SHA256 85ca2403f7e3f21098f6eef8ea2d07628df3223cfe809d2320d0ba9a59d3501f
MD5 df8eb463c8783e9bed716daad43d30f1
BLAKE2b-256 d8db19d4fc9fb6053869cdd85c08233266562c9749ef08ec68e78c834536b8ce

See more details on using hashes here.

File details

Details for the file sofinco-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: sofinco-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 29.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for sofinco-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3fb1a9a638c2688dc045f70fed55f2edff20b7c0e65c670365307b00f116fe77
MD5 6d3eddb753f18922524c523ca659924e
BLAKE2b-256 a040f8b331b206b26a2155cb18aa7002083dde8e7ccf40e6e3daefc03867a1c0

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