npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@ohmyghann/maduralang

v2.1.0

Published

Bahasa pemrograman esoterik bertema bahasa Madura, di-transpile langsung ke JavaScript modern.

Readme

MaduraLang (.mdr)

Salam Settong Dhere! Bahasa Pemrograman Khas Madura.

npm version Playground License: MIT Node.js Version TypeScript Tests

MaduraLang adalah bahasa pemrograman esoterik (recreational language) modern dengan sintaksis berbasis kosa kata bahasa Madura. Dilengkapi paritas fitur ala JavaScript modern seperti Object-Oriented Programming (Class/OOP), Async/Await, Arrow Functions, Template Literals, Module System, dan Switch-Case, serta pustaka bawaan resmi data wilayah Madura (madura/wilayah).

🚀 Buka Web Playground • 📖 Tata Bahasa • 💡 Contoh Kode • 📦 Paket NPM • 🧩 Ekstensi VS Code


⚡ Sekilas Contoh Kode Modern (.mdr)

// OOP / Class
bhangsa Pendekar {
  nyiptaaghi(nyama, senjata) {
    dibi'.nyama = nyama;
    dibi'.senjata = senjata;
  }

  serang() {
    kocaaghi(`${dibi'.nyama} nyerang ngangghuy ${dibi'.senjata}!`);
  }
}

sango sakera = anyar Pendekar("Sakera", "Calok Sakti");
sakera.serang();

// Asynchronous Programming
nyambi lakona ambeleData() {
  kocaaghi("Gi' ngantos respon...");
  sango respon = antose anyar Promise((resolve) => setTimeout(resolve, 500));
  kocaaghi("Berres!");
}

antose ambeleData();

📦 Instalasi & Penggunaan

1. Jalankan via npx (Tanpa Install)

npx @ohmyghann/maduralang run program.mdr

2. Install Global via npm

npm install -g @ohmyghann/maduralang

3. Perintah CLI

Jalankan Program Langsung

madura run program.mdr
# atau singkatnya:
mdr run program.mdr

Kompilasi ke JavaScript Standar

madura build program.mdr -o dist/program.js
node dist/program.js

Mode Terminal Interaktif (REPL)

madura repl
# atau cukup:
madura

Cek Data Wilayah Madura Langsung di Terminal

# Lihat ringkasan 4 kabupaten & 72 kecamatan
madura wilayah

# Cari kecamatan, kabupaten, atau kode pos
madura wilayah pamekasan
madura wilayah "gili iyang"
madura wilayah 69363

🗺️ Pustaka Standar Wilayah Madura (madura/wilayah)

MaduraLang dilengkapi dengan pustaka bawaan resmi data geografis 4 Kabupaten dan 72 Kecamatan di Madura:

1. Digunakan di MaduraLang (.mdr):

ngala' { daftarKabupaten, daftarKecamatan, cariWilayah } dhari "madura/wilayah";

// Ambil seluruh kecamatan di Pamekasan
sango kec = daftarKecamatan("Pamekasan");

// Cari pintar (desa, kecamatan, kode pos, atau pulau)
sango hasil = cariWilayah("Api Tak Kunjung Padam");
kocaaghi(hasil[0].info);

2. Digunakan di JavaScript / TypeScript Biasa:

Programmer yang membuat website React, Vue, Express, atau Node.js biasa juga bisa langsung mengimpor data wilayah Madura ini tanpa menulis kode MaduraLang:

import { daftarKecamatan, cariWilayah, ringkasanStatistik } from '@ohmyghann/maduralang/wilayah';

console.log(daftarKecamatan('Pamekasan'));
console.log(cariWilayah('69363')); // Cari berdasarkan Kode Pos

📖 Pustaka Standar Kamus & Penerjemah (madura/kamus)

Kamus dwibahasa komprehensif dengan sistem Ondhaggha Bhasa (Tingkatan Bahasa):

  • enja-iya: Akrab/Santai
  • engghi-enten: Sopan/Tengahan
  • engghi-bhunten: Halus/Krama Inggil

1. Digunakan di MaduraLang (.mdr):

ngala' { cariKata, terjemahKaMadura, ubahTingkat, parbhasan } dhari "madura/kamus";

// Terjemah santai vs halus
sango santai = terjemahKaMadura("saya makan", "enja-iya");        // "engkok ngakan"
sango halus  = terjemahKaMadura("saya makan", "engghi-bhunten");  // "abdhina dha'ar"

// Ubah tingkatan kata otomatis
sango kataHalus = ubahTingkat("ngakan", "engghi-bhunten");        // "dha'ar"

2. Digunakan di JavaScript / TypeScript Biasa:

import { terjemahKaMadura, cariKata, ubahTingkat, parbhasan } from '@ohmyghann/maduralang/kamus';

console.log(terjemahKaMadura('terima kasih')); // "mator sakalangkong"
console.log(ubahTingkat('be\'en', 'engghi-bhunten')); // "panjhenengngan"

3. Cek Kamus Langsung di Terminal:

# Buka info kamus & peribahasa hari ini
madura kamus

# Cari tingkatan kata makan
madura kamus makan

# Terjemahkan kalimat
madura terjemah "saya tidur" --tingkat=halus
# Output: "abdhina sare"

🗺️ Pemetaan Sintaks (MaduraLang vs JavaScript)

| Konsep Pemrograman | Kata Kunci MaduraLang | Ekivalen JavaScript | Makna Harfiah Madura | | :--- | :--- | :--- | :--- | | Variabel (let) | sango | let | Bekal / simpanan | | Konstanta (const) | paggun | const | Tetap / tidak berubah | | Cetak Konsol | kocaaghi | console.log | Katakan / sampaikan | | Input Terminal | tanyaaghi | prompt / readline | Tanyakan / minta | | Percabangan If | lamon | if | Kalau / jika | | Else If | lamon enja' | else if | Kalau bukan | | Else | laen | else | Lainnya / selain itu | | For Loop | poter | for | Putar / perputaran | | While Loop | sampek | while | Sampai / selama | | Break | ambu | break | Berhenti / stop | | Continue | terros | continue | Lanjut terus | | Boolean True | bhender | true | Benar / betul | | Boolean False | sala | false | Salah / keliru | | Null | tadhe' | null | Habis / tidak ada | | Undefined | ta_tao | undefined | Tidak tahu / belum jelas | | Fungsi | lakona | function | Pekerjaan / tindakan | | Return | pabali | return | Kembalikan | | Class (OOP) | bhangsa | class | Golongan / wujud kelas | | Inheritance | katoronan | extends | Keturunan / warisan | | Constructor | nyiptaaghi | constructor | Menciptakan / merancang | | Instance Baru | anyar | new | Baru | | This (Self) | dibi' | this | Diri sendiri | | Async | nyambi | async | Sambil lalu / jalan di latar | | Await | antose | await | Menunggu hasil | | Import | ngala' ... dhari | import ... from | Ambil ... dari | | Export | baghi | export | Bagikan ke luar | | Switch | pilih | switch | Pilih kondisi | | Case | kadhadhiyan | case | Peristiwa / kejadian | | Default | bawaan | default | Bawaan / selebihnya | | Try | jhe_sossa | try | Jangan risau / coba dulu | | Catch | ngarte | catch | Mengerti / menangkap | | Throw | ngamok | throw | Mengamuk / melempar error | | Finally | totop | finally | Penutup / selesai | | Logika AND | ban / && | && | Dan | | Logika OR | otaba / \|\| | \|\| | Atau | | Logika NOT | benne / ! | ! | Bukan |


📂 Struktur Repositori

maduralang/
├── bin/
│   └── madura.js                  # Entry point CLI (executable)
├── src/
│   ├── core/                      # Engine Kompiler
│   │   ├── tokens.ts              # Daftar token kata kunci
│   │   ├── lexer.ts               # Tokenizer / Lexical Analyzer
│   │   ├── ast.ts                 # Definisi Abstract Syntax Tree
│   │   ├── parser.ts              # Recursive Descent Parser
│   │   └── codegen.ts             # JavaScript Code Generator
│   ├── stdlib/                    # Standard library bawaan
│   │   └── runtime.ts             # Runtime helper (kocaaghi, tanyaaghi)
│   ├── cli/                       # Implementasi CLI (run, build, repl)
│   └── index.ts                   # Export library
├── examples/                      # Koleksi contoh program .mdr
├── tests/                         # Suite pengujian otomatis (Vitest)
├── docs/                          # Dokumentasi tata bahasa
├── vscode-extension/              # Ekstensi Syntax Highlighter VS Code
└── package.json

🔌 Ekstensi Visual Studio Code

Kamu dapat memasang ekstensi pewarnaan sintaks (syntax highlighting) untuk file .mdr:

  1. Salin folder vscode-extension ke folder ekstensi VS Code lokal:
    • Windows: %USERPROFILE%\.vscode\extensions\maduralang-vscode
    • Linux/macOS: ~/.vscode/extensions/maduralang-vscode
  2. Muat ulang (reload) VS Code kamu.
  3. Semua file berekstensi .mdr akan otomatis berwarna rapi dan dikenali sebagai MaduraLang!

🧪 Menjalankan Pengujian

npm test

Semua 11 pengujian unit mencakup:

  • Tokenisasi kosa kata tunggal & majemuk
  • Pembuatan pohon sintaks (AST)
  • Keabsahan JavaScript yang dihasilkan
  • Eksekusi kode secara dinamis (end-to-end)

🤝 Kontribusi

Tertarik menambahkan idiom Madura lainnya atau meningkatkan performa compiler? Silakan baca panduan di CONTRIBUTING.md. Pull Request sangat diterima!


👨‍💻 Pengembang (Author)

Dibuat dengan ❤️ oleh OhMyGhann.


📜 Lisensi

Didistribusikan di bawah Lisensi MIT. Lihat LICENSE untuk informasi lebih lanjut.

Mator sakalangkong! Salam settong dhere!