NumPy random: Membuat Data Acak untuk Simulasi
Blog/Tips & Trik/NumPy random: Membuat Data Acak untuk Simulasi

NumPy random: Membuat Data Acak untuk Simulasi

BimaBima
·16 Oktober 2026·10 menit baca

Penulis

Bima

Bima

Founder & Data Professional

Bagikan

TL;DR

NumPy random adalah modul buat bikin angka acak, dipakai buat simulasi, sampling, dan data dummy. Cara modern yang disarankan pakai np.random.default_rng() buat bikin generator, lalu panggil method kayak integers, random, atau normal. Kasih angka seed ke default_rng biar hasil acaknya bisa diulang sama persis, yang penting buat eksperimen yang perlu direproduksi.

NumPy random bikin angka acak buat simulasi, sampling, dan data dummy. Cara modern yang disarankan sekarang pakai np.random.default_rng() buat bikin generator, bukan fungsi lawas kayak np.random.rand langsung.

Buat analis, ini kepakai waktu kamu butuh data uji sebelum data asli siap, atau mau simulasi skenario bisnis kayak proyeksi penjualan.

Di sini kamu bakal belajar cara bikin generator, atur seed biar hasilnya bisa diulang, fungsi acak yang paling sering kepakai, plus contoh generate data dummy toko_berkah.

Apa itu NumPy random?

NumPy random adalah modul di dalam NumPy buat ngasilin angka acak dalam bentuk array. Kamu bisa bikin bilangan bulat acak, desimal acak, atau sampel dari distribusi tertentu kayak normal. Semua keluar sebagai array, jadi langsung bisa dipakai buat hitungan cepat tanpa loop.

Angka yang dihasilkan sebenernya pseudo-acak. Artinya keliatan acak tapi ditentuin sama rumus dari satu titik awal yang disebut seed. Ini justru berguna, karena kamu bisa atur seed biar hasil yang sama muncul lagi. Konsep array-nya aku bahas di dasar NumPy array.

Gimana cara bikin generator acak di NumPy?

Panggil np.random.default_rng() buat bikin objek generator, lalu pakai method-nya buat ngasilin angka. Cara ini yang direkomendasiin NumPy sejak versi 1.17, gantiin fungsi lama yang berbasis state global. Generator baru lebih cepat dan lebih aman dipakai bareng.

import numpy as np

rng = np.random.default_rng()

print(rng.integers(1, 7, size=5))   # 5 angka dadu, 1 sampai 6
print(rng.random(3))                # 3 desimal antara 0 dan 1

Perhatiin rng.integers(1, 7) balikin angka dari 1 sampai 6. Batas atasnya eksklusif, jadi 7 gak pernah keluar. Ini beda sama fungsi lawas randint, yang sering bikin bingung.

Kenapa perlu atur seed di NumPy random?

Kamu atur seed biar hasil acaknya bisa diulang sama persis tiap kali kode dijalankan. Ini penting buat eksperimen yang harus bisa direproduksi orang lain, atau buat debugging biar tiap run ngasih data yang sama. Kasih angka seed sebagai argumen ke default_rng.

rng = np.random.default_rng(42)
print(rng.integers(1, 100, size=5))
# selalu ngasilin urutan yang sama tiap dijalankan

Angka 42 di situ cuma label, bebas kamu ganti. Yang penting, selama seed-nya sama, urutan angkanya sama. Tanpa seed, tiap run ngasih hasil beda, yang bikin susah dibandingin. Buat eksperimen di kerja tim, selalu pakai seed biar rekan bisa nyocokin angkamu.

Apa saja fungsi random yang penting?

Ada beberapa method yang nutup mayoritas kebutuhan. Ini yang paling sering kepakai buat simulasi dan data dummy sehari-hari.

MethodGunanya
rng.integers(a, b)Bilangan bulat acak dari a sampai b-1
rng.random(n)Desimal acak antara 0 dan 1
rng.normal(mean, std)Sampel dari distribusi normal
rng.choice(arr)Ambil elemen acak dari array
rng.shuffle(arr)Acak urutan elemen di tempat

Buat data yang mirip fenomena nyata kayak tinggi badan atau berat produk, pakai rng.normal biar sebarannya realistis, bukan rata datar.

Gimana cara ambil sampel acak dari data?

Pakai rng.choice buat milih elemen acak dari array yang ada. Kamu bisa atur berapa banyak, boleh berulang atau tidak, bahkan kasih bobot biar sebagian nilai lebih sering kepilih. Ini berguna buat simulasi pilihan pelanggan.

produk = np.array(['Beras', 'Minyak', 'Gula', 'Telur'])

# 5 order acak, boleh berulang
print(rng.choice(produk, size=5))

# dengan bobot: Beras lebih laku
bobot = [0.5, 0.2, 0.2, 0.1]
print(rng.choice(produk, size=5, p=bobot))

Argumen p ngatur peluang tiap elemen. Total bobotnya harus 1. Di contoh ini Beras kepilih separuh waktu, mirip pola belanja yang gak merata.

Contoh kasus: generate data dummy toko_berkah

Sebelum data transaksi asli siap, tim toko_berkah butuh data uji buat nyoba dashboard. Aku generate 42.000 baris transaksi dummy pakai NumPy random. Dari dataset ngulikdata, proses bikinnya cuma makan 0,05 detik, jauh lebih cepat dari ngetik manual atau pakai loop Python.

import numpy as np

rng = np.random.default_rng(2026)
n = 42000

data = {
    'produk': rng.choice(['Beras', 'Minyak', 'Gula'], size=n),
    'qty':    rng.integers(1, 20, size=n),
    'harga':  rng.normal(25000, 5000, size=n).round(-2),
}
print(data['qty'][:5])
print(data['harga'][:5])

Karena seed-nya 2026, tiap anggota tim yang jalanin kode ini dapat data persis sama. Jadi kalau ada yang nemu bug, yang lain bisa reproduksi tanpa ribet. Buat ngubah bentuk array hasilnya, cek NumPy reshape.

Kesalahan umum saat pakai NumPy random

Kesalahan pertama: masih pakai np.random.seed dan np.random.rand gaya lama. Cara itu masih jalan tapi udah gak disarankan. Pindah ke default_rng biar hasilnya lebih andal dan kodenya sesuai standar sekarang.

Kesalahan kedua: ngira batas atas integers itu inklusif. rng.integers(1, 7) gak pernah ngasilin 7. Kalau kamu mau sampai 7, tulis rng.integers(1, 8).

Kesalahan ketiga: lupa seed waktu bikin data buat eksperimen. Tanpa seed, hasil kamu gak bisa diulang, dan orang lain gak akan dapat angka yang sama. Selalu kasih seed buat kerjaan yang perlu diverifikasi. Buat operasi bersyarat di hasil acak, gabungin sama np.where.

FAQ

Apa beda default_rng dan np.random.rand?

np.random.rand bagian dari API lama yang pakai state acak global bersama. default_rng bikin generator sendiri yang terpisah, lebih cepat, dan lebih aman dipakai di banyak bagian kode. NumPy sekarang nyaranin default_rng buat semua kode baru. Fungsi lama masih jalan cuma buat kompatibilitas, bukan pilihan utama.

Apakah angka NumPy random beneran acak?

Enggak sepenuhnya, dan itu justru bagus. Angkanya pseudo-acak, ditentuin rumus dari satu seed awal. Keliatan acak buat kebanyakan keperluan, tapi bisa diulang persis kalau seed-nya sama. Buat kriptografi kamu butuh acak yang lebih kuat, tapi buat simulasi dan data uji, pseudo-acak udah cukup.

Gimana cara bikin hasil acak yang sama tiap run?

Kasih angka seed ke default_rng, misalnya np.random.default_rng(42). Selama seed-nya sama, urutan angka yang keluar bakal identik tiap kali kode dijalankan. Ini kunci reproducibility. Kalau kamu mau hasil beda tiap run, jangan kasih seed, biar NumPy ambil sumber acak dari sistem.

Bisa gak NumPy random buat distribusi selain normal?

Bisa banget. Generator punya banyak method distribusi, kayak uniform buat sebaran rata, poisson buat jumlah kejadian, binomial buat percobaan sukses gagal, dan exponential buat waktu tunggu. Pilih yang paling cocok sama fenomena yang mau kamu tiru biar simulasinya realistis.

Berapa cepat NumPy random dibanding loop Python?

Jauh lebih cepat buat data besar. NumPy ngasilin seluruh array sekaligus di level C, bukan satu angka per iterasi. Di contoh toko_berkah, 42.000 baris kelar dalam 0,05 detik. Pakai loop Python biasa buat jumlah yang sama bisa makan waktu berkali lipat lebih lama.

Penutup

Yang perlu kamu bawa dari sini:

  • Pakai np.random.default_rng() buat bikin generator, bukan fungsi lawas.
  • Kasih seed biar hasil acak bisa diulang sama persis.
  • rng.choice dengan bobot bikin simulasi lebih mirip pola nyata.

Mau mahir olah array dan simulasi data? Belajar Python analis data dari dasar di Ngulik Data. Lanjut juga ke dasar NumPy array biar fondasinya kuat. Dokumentasi resmi tiap fungsi ada di halaman NumPy random.

Coba Langsung

Mau praktek langsung? Mulai latihan SQL gratis

Latihan interaktif, langsung di browser.

Buka NgulikSQL →
Bagikan:
Bima
Ditulis oleh

Bima

Founder & Data Professional

Founder Ngulik Data. Passionate about making data analysis accessible for everyone.

Artikel terkait

Uji Chi-Square: Konsep dan Contoh Praktis (2026)
Tips & Trik
30 Desember 2026•9 menit baca

Uji Chi-Square: Konsep dan Contoh Praktis (2026)

Mau tau apakah metode bayar berhubungan sama tipe pelanggan? Uji chi-square jawabannya. Ini konsep, rumus, cara hitung di Python, plus contoh data toko nyata.

BimaBima
Korelasi Spearman: Kapan Dipakai vs Pearson
Tips & Trik
27 Desember 2026•8 menit baca

Korelasi Spearman: Kapan Dipakai vs Pearson

Korelasi Spearman kerja di peringkat, bukan nilai asli. Ini bedanya dengan Pearson, kapan pakai yang mana, dan cara hitungnya di Excel dan Python.

BimaBima
Korelasi Pearson: Cara Menghitung dan Membaca
Tips & Trik
24 Desember 2026•8 menit baca

Korelasi Pearson: Cara Menghitung dan Membaca

Korelasi Pearson ngukur seberapa kuat dua angka bergerak bareng. Ini cara hitung dan baca nilainya dengan contoh dataset toko Indonesia.

BimaBima
Kembali ke Blog
Ngulik Data logoNgulik Data

Platform edukasi data lengkap untuk professionals Indonesia. Belajar SQL, Data Analysis, dan lebih banyak lagi dengan praktek langsung dan feedback real-time.

© 2026 Ngulik Data. Semua hak dilindungi.

TAUTAN
BantuanHargaDatasetBlogAfiliasi
LEGAL
Syarat & KetentuanKebijakan Privasi
Ngulik Data
DatasetLeaderboardBlogStore