Menguasai Library Faker Python Series - 2. Membangun Dataset Dummy dengan Faker: Simulasi Data Realistis untuk Testing

Setelah kamu memahami dasar penggunaan faker di Python pada artikel pertama, kini saatnya melangkah lebih jauh. Kali ini, kita akan membuat struktur data kompleks seperti data customer atau transaksi, lalu menyimpannya ke dalam file CSV atau JSON.

Artikel ini cocok untuk kamu yang ingin membuat mock database, testing API, atau menyiapkan data analitik saat data nyata belum tersedia.



Recap: Apa yang Sudah Kita Pelajari?

  • Menginstal dan menggunakan Faker

  • Membuat data dasar: nama, alamat, email, pekerjaan

  • Mengatur lokal agar data berbahasa Indonesia


Tujuan Artikel Ini

Di sini kamu akan belajar:

  • Membuat struktur data (dictionary) dengan berbagai field

  • Menghasilkan kumpulan data (dataset)

  • Menyimpan hasil ke dalam file .csv dan .json

  • Menggunakan seed untuk hasil yang konsisten


1. Membuat Struktur Data Dummy: Customer

Kita mulai dengan membangun struktur data sederhana untuk customer. Misalnya, kita ingin data berikut:

  • id: UUID unik

  • name: nama lengkap

  • email: email aktif

  • phone: nomor telepon

  • address: alamat lengkap

  • registered_date: tanggal daftar

Contoh kode:

from faker import Faker
import uuid
import pprint

fake = Faker('id_ID')

def generate_customer():
    return {
        "id": str(uuid.uuid4()),
        "name": fake.name(),
        "email": fake.email(),
        "phone": fake.phone_number(),
        "address": fake.address(),
        "registered_date": fake.date_this_decade()
    }

# Contoh satu customer
print(generate_customer())
ini hasil outputnya
{'address': 'Jalan Gedebage Selatan No. 292\nSingkawang, YO 68620',
 'email': 'rizkiastuti@example.net',
 'id': '699e2526-53ec-4774-800a-028c0ad5cdaf',
 'name': 'R. Melinda Kuswoyo',
 'phone': '+62 (043) 222 3164',
 'registered_date': datetime.date(2020, 9, 30)}

2. Membuat Banyak Customer

Sekarang kita buat 100 data customer dan simpan ke dalam list:

customers = [generate_customer() for _ in range(100)]

3. Menyimpan ke File CSV

CSV adalah format sederhana yang mudah dibaca oleh spreadsheet atau database.

import csv

# Menentukan nama field
fieldnames = ["id", "name", "email", "phone", "address", "registered_date"]

# Menyimpan ke file
with open("customers.csv", "w", newline="", encoding="utf-8") as file:
    writer = csv.DictWriter(file, fieldnames=fieldnames)
    writer.writeheader()
    for customer in customers:
        writer.writerow(customer)

✅ File customers.csv akan berisi data dummy lengkap dan siap digunakan.


4. Menyimpan ke File JSON

JSON cocok untuk simulasi API dan aplikasi web modern.

import json

with open("customers.json", "w", encoding="utf-8") as file:
    json.dump(customers, file, ensure_ascii=False, indent=4)

5. Menggunakan Seed untuk Hasil Konsisten

Faker bisa menghasilkan data yang konsisten setiap kali dijalankan, jika kamu menetapkan seed.

Faker.seed(42)

Hasil tanpa seed

PS PythonFakerSeries> python .\02.artikel.py
{'address': 'Jalan Gegerkalong Hilir No. 6\nBanjar, Nusa Tenggara Timur 42361',
 'email': 'patriciasamosir@example.net',
 'id': 'af486af3-d51d-45b7-b47c-1ea52a42caff',
 'name': 'Syahrini Nasyidah',
 'phone': '(017) 524-9003',
 'registered_date': '2023-09-04'}
PS PythonFakerSeries> python .\02.artikel.py
{'address': 'Gg. Cikutra Timur No. 75\nBinjai, Bengkulu 38502',
 'email': 'permadiulva@example.net',
 'id': '4c498781-7689-4d22-85d5-7b6f1baa71c2',
 'name': 'Pranata Rahimah, M.TI.',
 'phone': '0823602152',
 'registered_date': '2023-03-31'}
PS PythonFakerSeries> 

Hasil menggunakan seed

PS PythonFakerSeries> python .\02.artikel.py
{'address': 'Jalan Cihampelas No. 4\nTual, Jawa Timur 54235',
 'email': 'ivanmandala@example.net',
 'id': '34a70e0a-5b2b-46ba-965f-54da6141841a',
 'name': 'Balidin Dongoran, S.T.',
 'phone': '+62 (081) 960-0133',
 'registered_date': '2020-11-13'}
PS PythonFakerSeries> python .\02.artikel.py
{'address': 'Jalan Cihampelas No. 4\nTual, Jawa Timur 54235',
 'email': 'ivanmandala@example.net',
 'id': '50494584-d8c0-451d-b4b9-dc7e90c15fa9',
 'name': 'Balidin Dongoran, S.T.',
 'phone': '+62 (081) 960-0133',
 'registered_date': '2020-11-13'}
PS PythonFakerSeries> 

Seed sangat cocok untuk unit testing atau perbandingan data. Sebagai contoh di atas datanya selalu konsisten jika menggunakan seed. Untuk full codenya bisa lihat disini ya 02.artikel.py.


Bonus: Simulasi Transaksi

Kamu bisa mengembangkan ini untuk membuat data transaksi atau produk. Contoh struktur transaksi:

def generate_transaction():
    return {
        "transaction_id": str(uuid.uuid4()),
        "customer_name": fake.name(),
        "date": fake.date_time_this_year(),
        "amount": fake.pyfloat(left_digits=6, right_digits=2, positive=True),
        "payment_method": fake.random_element(elements=["Cash", "Credit Card", "Transfer"])
    }

Tips Praktis

  • Gunakan CSV untuk kebutuhan spreadsheet dan import data.

  • Gunakan JSON untuk API simulasi atau pengujian frontend.

  • Kombinasikan dengan pandas jika ingin eksplorasi data lebih lanjut.


Tantangan Buat Kamu 🎯

  1. Tambahkan field gender dan birth_date ke data customer.

  2. Buat file transactions.csv berisi 500 transaksi palsu.

  3. Tambahkan relasi: customer_id pada transaksi mengacu ke customers.csv.

Penasaran salah satu bentuk jawabannya ? cek disini.

Apa Selanjutnya?

Di artikel terakhir, kita akan membahas penggunaan Faker tingkat lanjut:

  • Fungsi profile() dan data kompleks

  • Membuat provider custom

  • Mengintegrasikan Faker ke proyek nyata seperti FastAPI dan unit test otomatis


📁 Kamu juga bisa menyimpan hasil latihan ini ke dalam folder proyek agar bisa digunakan ulang saat membuat mock API, prototipe UI, atau pelatihan machine learning.


Posting Komentar untuk "Menguasai Library Faker Python Series - 2. Membangun Dataset Dummy dengan Faker: Simulasi Data Realistis untuk Testing"