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 🎯
-
Tambahkan field
gender
danbirth_date
ke data customer. -
Buat file
transactions.csv
berisi 500 transaksi palsu. -
Tambahkan relasi:
customer_id
pada transaksi mengacu kecustomers.csv
.
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"