Lewati ke konten utama

Tutorial Generator Angka Acak Menggunakan Numpy

Modul random Numpy, sekumpulan fungsi yang berbasis pada pembangkitan bilangan acak semu. Acak berarti sesuatu yang tidak dapat diprediksi secara logis.
Diperbarui 28 Sep 2026  · 4 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Modul random Numpy adalah sekumpulan fungsi yang berbasis pada pembangkitan bilangan acak semu. Acak berarti sesuatu yang tidak dapat diprediksi secara logis.

np.random.seed() Function

Dalam contoh ini, Anda akan mensimulasikan pelemparan koin. Anda akan menggunakan fungsi np.random(), yang mengambil angka antara 0 dan 1 sehingga semua angka dalam interval ini memiliki kemungkinan yang sama untuk muncul.

Jika angka yang Anda ambil kurang dari 0,5, yang kemungkinannya 50%, Anda sebut sisi depan (heads) dan selain itu sisi belakang (tails). Jenis hasil di mana hasilnya True (Heads) atau False (Tails) ini disebut percobaan Bernoulli.

Bilangan acak semu bekerja dengan memulai dari sebuah bilangan bulat yang disebut seed lalu menghasilkan angka secara berurutan. Seed yang sama menghasilkan urutan bilangan acak yang sama, karenanya disebut pembangkitan bilangan acak "semu". Jika Anda ingin kode yang dapat direproduksi, sebaiknya melakukan seed pada generator bilangan acak menggunakan fungsi np.random.seed().

Untuk melakukan pelemparan koin, Anda mengimpor NumPy, memberikan seed pada generator bilangan acak, lalu mengambil empat angka acak. Anda dapat menentukan berapa banyak angka acak yang diinginkan dengan kata kunci size.

import numpy as np
np.random.seed(42)
random_numbers = np.random.random(size=4)
random_numbers
array([0.3745012, 0.95071431, 0.73199394, 0.59865848])

Angka pertama yang Anda dapatkan kurang dari 0,5, jadi itu heads sementara tiga sisanya tails. Anda dapat menampilkannya secara eksplisit menggunakan operasi kurang dari, yang memberi Anda sebuah array dengan nilai boolean, True untuk heads dan False untuk tails.

heads = random_numbers < 0.5
heads
array([True, False, False, False], dtype=bool)

Terakhir, Anda dapat menghitung jumlah heads dengan menjumlahkan array boolean heads, karena dalam konteks numerik, Python memperlakukan True sebagai satu dan False sebagai nol.

np.sum(heads)
1

Mensimulasikan Empat Lemparan Koin Acak

Pada contoh berikut, kita ingin mengetahui probabilitas mendapatkan empat heads jika kita mengulangi empat lemparan koin tersebut berkali-kali. Kita dapat melakukannya dengan for loop.

Pertama kita inisialisasi hitungan ke nol. Lalu kita melakukan 10.000 pengulangan percobaan empat lemparan. Jika suatu percobaan menghasilkan empat heads, kita menambah hitungan.

Jadi berapa probabilitas mendapatkan empat heads sekaligus? Yaitu jumlah kejadian Anda mendapatkan semua heads, dibagi total jumlah percobaan. Hasilnya sekitar 0,06.

n_all_heads = 0

# Initialize number of 4-heads trials
for _ in range(10000):
         heads = np.random.random(size=4) < 0.5
         n_heads = np.sum(heads)
         if n_heads == 4:
             n_all_heads += 1

n_all_heads / 10000
0.0621

Contoh Interaktif Membuat Angka Acak

Dalam contoh ini, kita akan menghasilkan banyak angka acak antara nol dan satu, lalu membuat histogram hasilnya. Jika angkanya benar-benar acak, semua batang pada histogram seharusnya memiliki tinggi yang (hampir) sama.

Untuk contoh ini Anda perlu:

  • Memberi seed pada generator bilangan acak dengan np.random.seed menggunakan seed 42.
  • Menginisialisasi array kosong, random_numbers, sebanyak 100.000 entri untuk menyimpan angka acak. Pastikan menggunakan np.empty(100000) untuk melakukannya.
  • Menulis for loop untuk mengambil 100.000 angka acak menggunakan np.random.random(), menyimpannya ke array random_numbers. Untuk itu, lakukan loop atas range(100000).
  • Membuat histogram dari random_numbers. Tidak perlu memberi label sumbu dalam kasus ini karena kita hanya memeriksa generator bilangan acak.
# Seed the random number generator
np.random.seed(42)

# Initialize random numbers: random_numbers
random_numbers = np.empty(100000)

# Generate random numbers by looping over range(100000)
for i in range(100000):
    random_numbers[i] = np.random.random()

# Plot a histogram
_ = plt.hist(random_numbers)

# Show the plot
plt.show()

Saat kita menjalankan kode di atas, ini menghasilkan hasil berikut:

histogram

Coba sendiri.

Untuk mempelajari lebih lanjut tentang generator bilangan acak dan hacker statistics, silakan lihat video dari kursus kami Statistical Thinking in Python (Part 1).

Konten ini diambil dari kursus DataCamp Statistical Thinking in Python (Part 1) oleh Justin Bois.

Topik
Python

Pelajari lebih lanjut tentang Python

{count, plural, one {Kursus} other {Kursus}}

Pengantar NumPy

{hours} jam
62.8K
Kuasai keterampilan Anda dalam NumPy dengan belajar cara membuat, mengurutkan, menyaring, dan memperbarui array menggunakan sensus pohon di NYC.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

{count, plural, one {blog} other {blogs}}

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

{count, plural, one {blog} other {blogs}}

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

{count, plural, one {blog} other {blogs}}

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

{count, plural, one {blog} other {blogs}}

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

Lihat SelengkapnyaLihat Selengkapnya