Membuat Bilangan Random di Python

Sharing is caring!

Di dalam buku saya tentang Python, pada salah satu project latihannya di Bab 5, adalah tentang membuat aplikasi game tebak angka. Ketika aplikasi ini nanti dijalankan, komputer akan merandom sebuah bilangan bulat positif kemudian user diminta menebaknya. Permainan tebak angka ini akan berhenti jika tebakan user sesuai dengan bilangan yang dipilih oleh komputer tersebut.

Untuk membuat aplikasi di atas, di dalam kode program Python diperlukan proses untuk merandom sebuah bilangan. Bagaimana cara merandom bilangan di dalam Python? baik bilangan riil maupun bilangan bulat (integer)? Serta dalam kasus lainnya, apabila terdapat sekumpulan bilangan dalam sebuah list, bagaimana mengambil secara acak sebuah bilangan dari list tersebut? Artikel ini akan membahasnya secara detil.

Tidak hanya untuk kasus di atas, lebih jauh lagi proses membuat bilangan random ini seringkali dipakai di dalam machine learning untuk mengkonfigurasi dan mengevaluasi sebuah algoritma.

Merandom Bilangan Riil

Di dalam Python, untuk mengenerate sebuah bilangan riil dapat menggunakan function random(). Function yang akan mengenerate bilangan riil antara 0 s/d 1 ini ada di dalam library random. Oleh karenanya, sebelum menggunakan function random() terlebih dahulu library random ini harus diload terlebih dahulu. Perhatikan contoh berikut ini!

# mengimport library random
from random import random
# merandom bilangan riil
bil = random()
# mencetak bilangan random
print(bil)

Apabila script di atas dijalankan, maka akan dihasilkan sebuah bilangan random riil sebagai berikut:

0.70131627958234789

Setiap kali script di atas dijalankan, bilangan random yang dihasilkan akan berbeda-beda. Perhatikan contoh berikut ini yang menunjukkan perubahan bilangan riil random yang dihasilkan.

# mengimport library random
from random import random
# merandom bilangan riil sebanyak 5 kali
for i in range(5):
    bil = random()
    # mencetak bilangan random
    print(bil)

Salah satu bentuk outputnya adalah:

0.45096101992144677
0.6477992505962291
0.7580327964153457
0.31451022865099276
0.9977239458801319

OK.. berdasarkan contoh di atas tampak bahwa setiap kali kita memanggil function random() maka akan dihasilkan bilangan riil random yang berbeda-beda. Selanjutnya, misalkan kita ingin merandomnya cukup sekali saja, katakanlah dihasilkan bilangan riil random yaitu X. Apabila nanti function random() ini dieksekusi kembali maka akan tetap dihasilkan bilangan X yang sama. Bagaimana melakukan hal ini? Untuk melakukan hal ini, digunakan function seed(). Function seed() digunakan untuk membuat pseudorandom sebuah bilangan. Biasanya parameter dari function ini adalah berupa bilangan bulat 1 s/d 7. Perhatikan contoh berikut ini.

from random import seed
from random import random

seed(1)
bil = random()
print(bil)
seed(1)
bil = random()
print(bil)

Output dari script di atas akan dihasilkan dua bilangan riil yang sama persis, meskipun proses randomnya dilakukan dua kali. Ini dikarenakan proses random yang kedua mengacu pada nomor seed yang sama dengan random yang pertama.

0.13436424411240122
0.13436424411240122

Jika function random() digunakan untuk merandom bilangan riil antara 0 s/d 1, maka bagaimana jika bilangan riil yang dirandom antara 10 s/d 20 atau secara umum antara a s/d b?

Untuk melakukan hal di atas, function yang digunakan adalah uniform(a, b). Perhatikan contoh berikut ini.

from random import uniform

# mengenerate 5 bil riil 10 s/d 20
for i in range(5):
    bil = uniform(10, 20)
    print(bil)

Hasil script di atas diperoleh 5 buah bilangan riil random seperti di bawah ini.

17.62280082457942
10.021060533511108
14.453871940548014
17.215400323407827
12.287622212704527

Merandom Bilangan Bulat

Untuk merandom bilangan bulat, digunakan function randint(a, b). Function ini akan merandom sebuah bilangan bulat antara a dan b. Dalam implementasinya, function ini dapat pula digandengkan dengan seed() seperti halnya bilangan riil. Perhatikan contoh berikut ini.

# mengimport function randint
from random import randint

# mengenerate 5 bil bulat 0 s/d 10
for i in range(5):
    bil = randint(0, 10)
    print(bil)

Output dari script di atas adalah bisa berbentuk sebagai berikut:

7
10
6
3
1

Memilih Bilangan Random dari List

Misalkan dimiliki sebuah list berisi kumpulan beberapa bilangan. Selanjutnya apabila kita ingin memilih sebuah bilangan dari list tersebut secara acak, maka bagaimana caranya? Untuk melakukan hal ini, kita bisa menggunakan function choice(). Contohnya adalah sebagai berikut:

from random import choice

# list of numbers
numList = [10, 23, 22, 34, 12]

# memilih bil dari list scr acak
for i in range(5):
    bil = choice(numList)
    print(bil)

Script di atas akan diperoleh hasil sebagai berikut:

34
10
34
34
12

OK, mudah bukan untuk merandom bilangan di Python? Selamat belajar, dan semoga artikel ini dapat memberikan manfaat serta tambahan wawasan bagi pengunjung setia blog ini.

Tinggalkan Komentar