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

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 faker yang kompleks (seperti profile())

  • 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 : 

  1.  buka cmd, ketik "pip install fastapi[standard]", pastikan sudah terinstall
  2. kalau oke, semisal kita simpan difile "artikel_fast_api.py". run dengan "fastapi run .\artikel_fast_api.py"
  3. secara default akan berada di IP "http://127.0.0.1:8000/docs" 
Untuk Python 3.8 ke bawah :
  1. buka cmd pip install uvicorn
  2. lalu ketik ini python -m uvicorn artikel_fast_api:app
  3. secara default akan berada di IP "http://127.0.0.1:8000/docs"

output FAST API

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 🚀

  1. 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())
  2. Buat mock endpoint /transaksi di 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
        }
  3. 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

  1. https://fastapi.tiangolo.com/ diakses 13 September 2025
  2. 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"