Modul Random dan Mengelola List di Python

Melakukan olah data dan memilih suatu data acak dari suatu kumpulan adalah keniscayaan dalam pemrograman. Dalam bahasa pemrograman Python, untuk berurusan dengan hal-hal tersebut kita akan sering menggunakan modul random. Modul ini digunakan untuk generate angka acak dan berbagai operasi. Dalam artikel ini, kita akan membahas:

  • Modul random,

  • Mengambil dan menambahkan item ke dalam List,

Modul Random

Modul random digunakan untuk hal-hal yang berkaitan dengan angka acak. Seperti menghasilkan angka acak dalam rentang tertentu ataupun memilih item dari list secara acak. Beberapa fungsi utama dari modul random antara lain:

  • random.random(): Menghasilkan angka acak di antara 0 dan 1.

  • random.randint(a, b): Menghasilkan angka bulat acak di antara a dan b (inklusif).

  • random.choice(seq): Memilih elemen acak dari suatu list.

  • random.shuffle(seq): Mengacak urutan elemen yang ada di dalam list.

Contoh:

import random

# Generate a random number between 0 and 1
print(random.random())

# Generate a random integer between 1 and 10
print(random.randint(1, 10))

# Choose a random element from a list
fruits = ["apple", "banana", "cherry", "date"]
print(random.choice(fruits))

# Shuffle the order of elements in a list
random.shuffle(fruits)
print(fruits)

Mengambil dan menambah Item ke List

Struktur data list sangat fleksibel, banyak cara yang memungkinkan kita untuk menambah dan memanipulasi data. Untuk mengakses elemen di dalam list menggunakan indeks (mulai dari 0), ataupun indeks negatif (mulai dari -1) jika kita ingin mengakses elemen dari akhir list. Untuk mengakses indeks kita bisa menggunakan tanda [index] setelah nama variabel.

Contoh:

# Define a list
fruits = ["apple", "banana", "cherry", "date"]

# Access elements by index
print(fruits[0])  # Output: apple
print(fruits[2])  # Output: cherry

# Access elements by offset (negative index)
print(fruits[-1])  # Output: date
print(fruits[-3])  # Output: banana

Untuk menambahkan elemen ke list kita bisa menggunakan append(item) ataupun insert(index, item). Dengan append , itean akan ditambahkan ke akhir list. Sedangkan jika menggunakan insert kita akan menyisipkan item pada indeks tertentu.

Contoh:

# Append an element to the end of the list
fruits.append("elderberry")
print(fruits)  # Output: ['apple', 'banana', 'cherry', 'date', 'elderberry']

# Insert an element at a specific index
fruits.insert(1, "blueberry")
print(fruits)  # Output: ['apple', 'blueberry', 'banana', 'cherry', 'date', 'elderberry']

Jika list yang kita miliki adalah nested list maka kita bisa mengaksesnya dengan menambah [index] sesuai dengan kedalamannya.

Contoh:

nested_list = [
    ["apple", "banana"],
    ["cherry", "date"],
    ["elderberry", "fig"]
]

# Access elements in a nested list
print(nested_list[0][1])  # Output: banana
print(nested_list[2][0])  # Output: elderberry

# Append an element to a nested list
nested_list[1].append("grape")
print(nested_list)  # Output: [['apple', 'banana'], ['cherry', 'date', 'grape'], ['elderberry', 'fig']]

Lalu apa yang terjadi jika kita mengakses indeks yang tidak ada di dalam list? Yang terjadi adalah akan muncul IndexError.

Contoh:

fruits = ["apple", "banana", "cherry"]
print(fruits[3])  # IndexError: list index out of range

Untuk menghindarinya kita bisa memeriksa terlebih dahulu menggunakan if agar bisa memastikan indeks yang kita lakukan valid.

fruits = ["apple", "banana", "cherry"]

index = 3
if index < len(fruits):
    print(fruits[index])
else:
    print("Index out of range.")

Contoh Program : Permainan Batu, Kertas, Gunting.

Untuk menerapkan apa yang telah kita pelajari, kita akan mencoba membuat program sederhana menggunakan modul random. Kali ini kita akan membuat permainan batu, kertas, gunting.

import random

print("Welcome to Rock, Paper, Scissors!")
print("Choose one: 0 for rock, 1 for paper, or 2 for scissors")

# List of choices
choices = ["rock", "paper", "scissors"]

# Randomly select an index for the computer
computer_index = random.randint(0, 2)
computer_choice = choices[computer_index]

# Get player's choice as an index
player_index = int(input("Enter your choice (0, 1, or 2): "))
player_choice = choices[player_index]

# Determine the winner
if player_index == computer_index:
    print(f"Both chose {player_choice}. It's a tie!")
elif (player_index == 0 and computer_index == 2) or \
     (player_index == 1 and computer_index == 0) or \
     (player_index == 2 and computer_index == 1):
    print(f"You chose {player_choice} and the computer chose {computer_choice}. You win!")
else:
    print(f"You chose {player_choice} and the computer chose {computer_choice}. You lose!")

Penjelasan Program:

  1. Import Modulrandom: impor modul random agar bisa menggunakan fungsi random.randint().

  2. Keterangan Game: Menampilkan berupa sambutan dan keterangan kepada pemain terkait pilihan yang tersedia (0 untuk rock, 1 untuk paper, dan 2 untuk scissors).

  3. Mengatur Pilihan Acak Komputer: dengan random.randint(0, 2), kita memilih secara acak indeks antara 0 dan 2 kemudian mengaksesnya sesuai indeks

  4. Meminta Pemain menentukan pilihan: Pemain diminta untuk memasukkan pilihan sebagai angka (0, 1, atau 2) dan lalu mengkonversinya menjadi integer kemudian mengaksesnya sesuai index

  5. Penentuan Pemenang: Kita membandingkan indeks pilihan pemain dengan indeks pilihan komputer. Jika indeks yang dipilih sama berarti hasilnya seri (tie). Jika indeks pilihan pemain mengalahkan indeks pilihan komputer berdasarkan aturan permainan, pemain menang. Sebaliknya jika indeks pilihan pemain kalah dari indeks pilihan komputer, pemain kalah.

Demikian artikel ini, kita telah belajar tentang modul random dan cara mengakses serta menambah item ke dalam list. Di akhir kita juga telah membuat permainan sederhana yaitu batu, kertas, gunting. Semoga artikel ini bermanfaat, terima kasih dan selamat belajar.

Link project: Github