Setelah kamu belajar dasar dan praktik membuat dataset dummy menggunakan faker, sekarang saatnya membahas fitur tingkat lanjut dan integrasi faker ke dunia nyata.
Di artikel ini, kamu akan belajar:
-
Fungsi
fakeryang kompleks (sepertiprofile()) -
Membuat provider custom
-
Menggunakan faker dalam proyek Python modern (FastAPI, unit test, pandas)
1. Menggunakan profile() untuk Data Komplek
Kalau kamu butuh profil pengguna lengkap dalam satu panggilan, gunakan:
from faker import Faker
import pprint
fake = Faker('id_ID')
profile = fake.simple_profile()
pprint.pprint(profile)
Contoh output:
{
'address': 'Jl. Pelajar Pejuang No. 97\nLubuklinggau, Kepulauan Riau 89771',
'birthdate': datetime.date(1975, 12, 31),
'mail': 'rahayujati@hotmail.com',
'name': 'Dimaz Hidayanto',
'sex': 'M',
'username': 'darmaji98'
}
Kalau ingin versi lengkap dengan lebih banyak data:
fake.profile()Hasil output:
{ 'address': 'Gang Cihampelas No. 9\nTasikmalaya, MA 59172', 'birthdate': datetime.date(1997, 7, 6), 'blood_group': 'A-', 'company': 'PT Wahyuni Wacana', 'current_location': (Decimal('78.639419'), Decimal('-137.198053')), 'job': 'Magazine features editor', 'mail': 'rinautami@hotmail.com', 'name': 'Victoria Najmudin', 'residence': 'Gg. Kutai No. 05\nTasikmalaya, Bali 09801', 'sex': 'F', 'ssn': '256-22-0195', 'username': 'tamiprasasta', 'website': ['http://www.ud.ponpes.id/', 'http://www.cv.go.id/'] }
2. Menambahkan Provider Custom
Faker memungkinkan kamu membuat data khusus sesuai domainmu. Misalnya, kamu sedang buat sistem rumah sakit dan butuh “kode dokter”.
Contoh custom provider:
from faker.providers import BaseProvider
class DoctorCodeProvider(BaseProvider):
def doctor_code(self):
return f"DR-{self.generator.random_int(1000, 9999)}"
fake.add_provider(DoctorCodeProvider)
print(fake.doctor_code()) # Output: DR-4321
✅ Custom provider sangat berguna kalau kamu punya field khusus domain industri.
3. Integrasi dengan FastAPI: Mock API Endpoint
Misalnya kamu ingin membuat endpoint yang mengembalikan user palsu:
from fastapi import FastAPI
from faker import Faker
app = FastAPI()
fake = Faker('id_ID')
@app.get("/user")
def get_user():
return {
"name": fake.name(),
"email": fake.email(),
"address": fake.address()
}
Sekarang kamu punya API endpoint /user yang bisa digunakan untuk frontend development tanpa perlu backend nyata.
🚀 Cocok untuk demo UI/UX, prototyping, atau dev tools.
Jika butuh step deploynya bisa ikuti cara ini :
Untuk Python 3.8 Ke atas :
- buka cmd, ketik "pip install fastapi[standard]", pastikan sudah terinstall
- kalau oke, semisal kita simpan difile "artikel_fast_api.py". run dengan "fastapi run .\artikel_fast_api.py"
- secara default akan berada di IP "http://127.0.0.1:8000/docs"
- buka cmd pip install uvicorn
- lalu ketik ini python -m uvicorn artikel_fast_api:app
- secara default akan berada di IP "http://127.0.0.1:8000/docs"
4. Integrasi dalam Unit Test
Kalau kamu menulis unit test yang membutuhkan input dinamis:
def generate_dummy_user():
return {
"name": fake.name(),
"email": fake.email(),
"phone": fake.phone_number()
}
def test_user_format():
user = generate_dummy_user()
assert "@" in user["email"]
assert isinstance(user["name"], str)
Gunakan Faker.seed() agar hasil test konsisten:
Faker.seed(99)
5. Menggabungkan Faker + Pandas
Kamu bisa langsung membuat DataFrame dari hasil faker untuk keperluan analisis atau visualisasi:
import pandas as pd
data = [generate_dummy_user() for _ in range(100)]
df = pd.DataFrame(data)
print(df.head())
✅ Bisa lanjut ke ekspor
.xlsx, analisis kolom, grafik, dsb.
Tips Produksi dan Best Practices
| 🔧 Hal | ✅ Rekomendasi |
|---|---|
| Konsistensi data | Gunakan Faker.seed() |
| Data kompleks | Gunakan fake.profile() atau custom provider |
| Testing otomatis | Gunakan faker di unit test dengan data valid |
| API development | Integrasikan ke FastAPI atau Flask |
| Dokumentasi UI | Gunakan untuk contoh input/output dummy |
Tantangan Akhir 🚀
-
Buat custom provider untuk
nomor polis asuransi.from faker.providers import BaseProvider from datetime import datetime from faker import Faker class InsuranceCustomPoliceProvider(BaseProvider): def policy_number(self): timestamp = datetime.now().strftime("%Y%m%d%H%M%S") return f"POL-{timestamp}{self.generator.random_int(100000, 9999999)}" fake = Faker("id_ID") fake.add_provider(InsuranceCustomPoliceProvider) print(fake.policy_number()) -
Buat mock endpoint
/transaksidi FastAPI yang return list transaksi.from fastapi import FastAPI from faker import Faker app = FastAPI() Faker.seed(1404) fake = Faker('id_ID') @app.get("/transaction") def get_transaction(): transactions = [] for _ in range(5): transactions.append({ "id" : fake.uuid4(), "customer_name" : fake.name(), "amount": fake.random_int(1000, 150000), "date": fake.date_this_year() }) return { "transactions": transactions } -
Gunakan faker dalam unit test untuk menguji input form pendaftaran.
from faker import Faker fake = Faker("id_ID") def generate_registration_form(): return { "name": fake.name(), "email": fake.email(), "birth_date": fake.date_of_birth(minimum_age=18, maximum_age=65).isoformat() } def test_registration_form(): form = generate_registration_form() assert "@" in form["email"] assert isinstance(form["name"], str) assert form["birth_date"] <= "2007-01-01" # contoh validasi usia minimal
Penutup: Siap Pakai Faker di Proyekmu
Dengan faker, kamu bisa:
-
Bangun dataset dummy realistis dalam hitungan detik
-
Simulasikan API, UI, atau pengujian aplikasi
-
Kembangkan pipeline testing yang fleksibel dan rapi
📌 Ingat: faker adalah alat bantu, bukan sumber data produksi. Gunakan dengan bijak, terutama saat mendemokan ke pihak luar.
Seperti biasa, anda bisa lihat codenya di github berikut.
Daftar Referensi
- https://fastapi.tiangolo.com/ diakses 13 September 2025
- https://pypi.org/project/Faker/ diakses 13 September 2025

Posting Komentar untuk "Menguasai Library Faker Python Series - 3. Faker Python Tingkat Lanjut: Profile, Custom Provider, dan Mock API"