Menyajikan Data Berkualitas untuk Database Anda secara Massal, Bergizi, dan Gratis.
MBG adalah Database Seeder CLI untuk ekosistem JavaScript. Dirancang untuk menyajikan data test berkualitas ke database Anda secara massal, efisien, dan tanpa biaya. Dibangun dengan prinsip zero-dependency dan data bawaan yang Indonesia-centric.
MBG dibangun dengan prinsip bahwa setiap database berhak mendapat data test yang berkualitas. Terlalu sering kita melihat aplikasi yang berjalan dengan data seadanya — field kosong, format tidak konsisten, distribusi tidak merata. Kondisi ini menyebabkan apa yang kami sebut sebagai stunting data: aplikasi yang tidak berkembang optimal karena nutrisi datanya buruk sejak awal.
MBG hadir untuk memastikan data Anda sampai ke tujuan dengan kualitas yang terjamin. Kami mencatat setiap batch penyajian, melacak realisasi anggaran proses, dan menyediakan mekanisme validasi untuk memastikan standar gizi data terpenuhi.
Karena transparansi dan akuntabilitas bukan hanya urusan pemerintah.
npm install -g makan-bergizi-gratisAtau gunakan langsung dengan npx tanpa install:
npx makan-bergizi-gratis masak -r resep/users.resep.json -p 1000 -o users.json# Generate 1000 users ke file JSON
mbg masak -r resep/users.resep.json -p 1000 -o users.json
# Generate ke CSV
mbg masak -r resep/users.resep.json -p 500 --format csv -o users.csv
# Generate ke SQL dump
mbg masak -r resep/users.resep.json -p 500 --format sql -o seed.sqlResep bawaan tersedia di folder resep/ — bisa juga pakai resep custom buatan sendiri:
mbg masak -r my-custom.resep.json -p 1000 -o output.jsonmbg menumbg gizi -r resep/users.resep.json| Perintah | Deskripsi |
|---|---|
masak |
Olah resep dan hasilkan data ke file |
menu |
Tampilkan daftar resep tersedia |
gizi |
Validasi file resep |
version |
Tampilkan versi |
| Opsi | Deskripsi |
|---|---|
-r, --resep <file> |
File resep (.resep.json) |
-p, --porsi <jumlah> |
Jumlah records (default: 100) |
-o, --output <file> |
File output |
--format <json|csv|sql> |
Format output (default: json) |
--hemat |
Lewati validasi |
--kering |
Dry run |
--timpa |
Timpa file yang sudah ada |
File resep menggunakan format .resep.json:
{
"menu": "users",
"sekolah": "public.users",
"bahan": {
"id": { "tipe": "uuid" },
"nama": { "tipe": "nama_lengkap" },
"email": { "tipe": "email" },
"telepon": { "tipe": "telepon" },
"alamat": { "tipe": "alamat" },
"peran": { "tipe": "pilihan", "opsi": ["admin", "user", "moderator"] },
"gaji": { "tipe": "angka", "min": 3000000, "max": 50000000 },
"aktif": { "tipe": "boolean", "rasio_benar": 0.85 },
"dibuat_pada": { "tipe": "tanggal", "dari": "2024-01-01", "sampai": "2025-12-31" }
}
}| Tipe | Deskripsi | Opsi |
|---|---|---|
uuid |
UUID v4 | — |
increment |
Auto increment | mulai |
angka |
Random number | min, max, desimal |
nama_lengkap |
Nama orang Indonesia | — |
nama_depan |
Nama depan | — |
nama_belakang |
Nama belakang | — |
email |
Email address | domain |
telepon |
Nomor HP Indonesia | — |
alamat |
Alamat lengkap | — |
kota |
Kota di Indonesia | — |
provinsi |
Provinsi | — |
kodepos |
Kode pos | — |
pilihan |
Pilih dari opsi | opsi[] |
boolean |
true/false | rasio_benar |
tanggal |
Date (YYYY-MM-DD) | dari, sampai |
waktu |
Datetime (ISO) | dari, sampai |
paragraf |
Teks paragraf | kalimat |
kalimat |
Satu kalimat | — |
url |
Random URL | domain |
warna |
Hex color | — |
perusahaan |
Nama PT/CV Indonesia | — |
import { Dapur, getCatering } from 'makan-bergizi-gratis'
// Load dan generate
const dapur = new Dapur()
dapur.loadResep('./resep/users.resep.json')
const hasil = dapur.masak(1000)
console.log(hasil.data) // Array of generated records
console.log(hasil.batchId) // MBG-20260210-042
console.log(hasil.anggaran) // Budget report (satirical)
// Output ke file
const catering = getCatering('json')
catering.tulis(hasil.data, 'output.json')$ mbg masak -r resep/users.resep.json -p 1000 -o users.json
MBG v1.0.0 — Database Seeder
Menyajikan Data Berkualitas — Gratis, Massal, dan Bergizi.
Mempersiapkan bahan...
Mengolah data... done
Menulis ke users.json...
Data berhasil diolah dan disimpan ke users.json.
Resep : resep/users.resep.json
Menu : users
Porsi : 1.000 records
Penyajian selesai.
Porsi tersaji : 1.000 / 1.000
Waktu proses : 0.1 detik
Batch : MBG-20260210-042
Anggaran terpakai: Rp 84.732.000 (estimasi awal: Rp 40.000.000)
Realisasi anggaran melebihi estimasi awal sebesar 111.83%. Masih dalam batas wajar.
[
{
"id": "7b78c44f-b233-437b-8e4a-0edfd6fdf0bb",
"nama": "Juli Saputra",
"email": "intan.hidayat@yahoo.com",
"telepon": "087880174615",
"alamat": "Jl. Dewi Sartika No. 48, RT 007/RW 013, Malang 65112",
"peran": "moderator",
"gaji": 48940521,
"aktif": true,
"dibuat_pada": "2025-10-09"
}
]-- Generated by MBG Database Seeder
-- Table: public.users
-- Records: 5
INSERT INTO public.users (id, nama, email, telepon, alamat, peran, gaji, aktif, dibuat_pada) VALUES
('018a06ed-2013-483a-88cd-0298a2b9a64b', 'Hesti Prasetyo', 'mayasudirman@mail.com', '089626511840', 'Jl. Kenanga No. 168, RT 011/RW 010, Tangerang Selatan 15311', 'admin', 33484059, TRUE, '2024-03-08'),
('c0b0bbb8-20bf-43b9-bc6f-8da80e6832da', 'Vina Sudirman', 'zahrakurniawan@outlook.com', '082374394964', 'Jl. Margonda No. 107, RT 012/RW 014, Makassar 90114', 'user', 16807912, FALSE, '2024-03-20');| Fitur | MBG | Faker.js | Fishery |
|---|---|---|---|
| Data Indonesia | Native | Terbatas | Tidak tersedia |
| CLI | Ya | Tidak | Tidak |
| Zero Dependencies | Ya | Tidak | Tidak |
| Output JSON/CSV/SQL | Ya | Tidak | Tidak |
| Standar gizi data | Terjamin | Tidak terjamin | Tidak terjamin |
- Node.js >= 18.0.0
MIT
Kontribusi terbuka. Silakan buka issue atau pull request.