Skip ke Konten

SakeraLang : Bahasa Pemrograman Eksoterik dengan Sintaksis Bahasa Madura

10 Februari 2026 oleh
Admin
| Belum ada komentar

SakeraLang dan MaduraLang adalah bahasa pemrograman esoterik yang menggunakan sintaksis Bahasa Madura, memungkinkan penulisan kode seperti deklarasi variabel (sango), percabangan (mon/laen), dan output (toles) dalam bahasa daerah. Proyek ini bertujuan mengenalkan coding dengan nuansa lokal dan memudahkan pembelajaran dasar pemrograman melalui pendekatan bahasa daerah. Bahasa pemrograman ini diciptakan oleh Ahda Firly Barori.

Madura Lang 🌴

Bahasa pemrograman esoterik berbasis Bahasa Madura - membawa cita rasa lokal ke dalam dunia pemrograman!

Deskripsi

Madura Lang adalah bahasa pemrograman yang terinspirasi dari Bahasa Madura, bahasa daerah yang digunakan di pulau Madura dan sekitarnya (Sumenep, Bangkalan, Pamekasan, dan Sampang). Bahasa ini dirancang untuk membuat pemrograman lebih dekat dengan budaya lokal.

Instalasi

Dari NPM

npm install -g madura-lang

Dari Source

git clone https://github.com/adhfry/madura-lang.git
cd madura-lang
npm install
npm link

Penggunaan

Jalankan file .mdr:

madura-cli namafile.mdr

Atau jika belum di-link:

node cli.js namafile.mdr

Kamus Bahasa

Deklarasi Variabel

  • badha → let (variabel bisa diubah)
  • ngangguy → var (variabel bisa diubah)
  • tetep / konce → const (variabel konstan)

Kondisional

  • mon → if
  • tape → else
  • tape mon → else if
  • gante → switch
  • bila → case
  • biasana / laenna → default

Fungsi

  • angguy → function
  • pabeli → return
  • nyetak / pa'berri'en → console.log

Perulangan

  • saterossa → while
  • bitong → for
  • jijji'i → for...of
  • ambu → break
  • terros → continue

Nilai Boolean & Null

  • bhendher → true
  • sala → false
  • kosong → null
  • tade' → undefined

Operator Perbandingan

  • paddhang → === (sama persis)
  • pada bi → == (sama dengan)
  • ta' paddhang → !== (tidak sama persis)
  • ta' pada → != (tidak sama)
  • lebbi dhari → > (lebih dari)
  • korang dhari → < (kurang dari)

Operator Logika

  • sareng → && (dan)
  • tabe → || (atau)
  • tak → ! (tidak/bukan)

Exception Handling

  • coba → try
  • tangkep → catch
  • pokokna → finally
  • ontallaghi → throw

Contoh Program

Hello World

nyetak "Halo, Dunia!"

Variabel dan Operasi

badha umur = 25
tetep taonLahir = 1999
nyetak "Umur: " + umur
nyetak "Taon Lahir: " + taonLahir

Kondisional

badha nilai = 85

mon (nilai lebbi dhari 90) {
  nyetak "Nilai A"
} tape mon (nilai lebbi dhari 75) {
  nyetak "Nilai B"
} tape {
  nyetak "Nilai C"
}

Perulangan

// While Loop
badha i = 0
saterossa (i korang dhari 5) {
  nyetak "Hitungan: " + i
  i = i + 1
}

// For Loop
bitong (badha j = 0; j korang dhari 3; j = j + 1) {
  nyetak "For loop: " + j
}

// For...of Loop
badha angka = [1, 2, 3, 4, 5]
jijji'i (badha num dhari angka) {
  nyetak "Angka: " + num
}

Fungsi

angguy tambah(a, b) {
  pabeli a + b
}

badha hasil = tambah(5, 3)
nyetak "Hasil: " + hasil

Array dan Object

// Array
badha buah = ["mangga", "rambutan", "durian"]
nyetak buah[0]

// Object
badha orang = {
  jeneng: "Ahmad",
  umur: 30,
  asal: "Sumenep"
}
nyetak orang.jeneng

Switch Statement

badha hari = 3

gante (hari) {
  bila 1:
    nyetak "Senin"
    ambu
  bila 2:
    nyetak "Selasa"
    ambu
  bila 3:
    nyetak "Rabu"
    ambu
  biasana:
    nyetak "Hari lain"
}

Try-Catch

coba {
  badha hasil = 10 / 0
  nyetak hasil
} tangkep (e) {
  nyetak "Kasalahan: " + e
} pokokna {
  nyetak "Rampong"
}

Program Lengkap

// Fungsi untuk menghitung faktorial
angguy faktorial(n) {
  mon (n korang dhari 2) {
    pabeli 1
  }
  pabeli n * faktorial(n - 1)
}

// Fungsi untuk cek bilangan prima
angguy isPrima(num) {
  mon (num korang dhari 2) {
    pabeli sala
  }

  bitong (badha i = 2; i * i lebbi dhari num tabe i * i paddhang num; i = i + 1) {
    mon (num % i paddhang 0) {
      pabeli sala
    }
  }

  pabeli bhendher
}

nyetak "=== Program Madura Lang ==="

badha angka = 5
nyetak "Faktorial " + angka + " = " + faktorial(angka)

badha cekPrima = 17
mon (isPrima(cekPrima)) {
  nyetak cekPrima + " adalah bilangan prima"
} tape {
  nyetak cekPrima + " bukan bilangan prima"
}

Fitur

FiturKeterangan
Deklarasi variabelbadha / ngangguy / tetep / konce (let / var / const)
Tipe datanumber, string, boolean, null, undefined
Array & Object literalArray: [..], Object: {..}
Operator aritmatika+, -, *, /, %
Operator perbandingan===, ==, !==, !=, >, <
Operator logika&&,
Kondisionalmon / tape / tape mon (if / else if / else)
Switch-casegante / bila / biasana (switch / case / default)
Perulangansaterossa, bitong, jijji'i (while, for, for...of)
Break & Continueambu (break), terros (continue)
Fungsi & returnangguy (function), pabeli (return)
Exception handlingcoba / tangkep / pokokna, ontallaghi (throw)
Member accessobject.property
Array accessarray[index]
Function callsnamaFungsi(arg1, arg2)
Komentar// komentar satu baris
String escapingGunakan escape sequence dalam string (mis. " \n)

Struktur Proyek

madura-lang/
├── cli.js           # CLI entry point
├── interpreter.js   # Runtime interpreter
├── madura.pegjs     # PEG.js grammar
├── kamus.txt        # Kamus referensi
├── contoh.mdr       # File contoh
├── package.json     # NPM config
└── README.md        # Dokumentasi

Development

Build Grammar

Grammar akan di-compile otomatis saat menjalankan program menggunakan PEG.js.

Testing

node cli.js contoh.mdr

Contributing

Kontribusi sangat welcome! Silakan:

  1. Fork repository ini
  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

Roadmap

  •  Import/Export modules
  •  Class dan OOP
  •  Async/Await
  •  Standard library
  •  REPL mode
  •  Debugger
  •  VS Code extension

Lisensi

MIT License - lihat file LICENSE

Author

Ahda Firly Barori


Madura Lang - Ngoding angguy bhasa Madura Kanak! 🚀



Admin 10 Februari 2026
Arsip
Masuk untuk meninggalkan komentar