Traffine I/O

Bahasa Indonesia

2023-02-24

Operator Walrus dalam Python

Apa itu Operator Walrus

Operator Walrus adalah fitur relatif baru dalam Python yang diperkenalkan pada versi 3.8. Ini adalah operator yang memungkinkan Anda untuk menetapkan nilai ke variabel dalam sebuah ekspresi, yang dapat sangat berguna dalam ekspresi yang kompleks atau bersarang. Operator ini direpresentasikan oleh dua titik berturut-turut diikuti tanda sama dengan (:=). Operator Walrus dapat membantu membuat kode Anda lebih ringkas, mudah dibaca, dan efisien dalam beberapa kasus.

Keuntungan Menggunakan Operator Walrus

Ada beberapa keuntungan dalam menggunakan Operator Walrus di Python:

  • Meningkatkan Keterbacaan
    Dengan memungkinkan Anda untuk menetapkan nilai ke variabel dalam sebuah ekspresi, Operator Walrus dapat membuat kode Anda lebih ringkas dan lebih mudah dibaca. Ini dapat sangat membantu dalam ekspresi yang kompleks atau bersarang di mana pernyataan penugasan tradisional dapat menghasilkan kode yang sulit dipahami.

  • Efisiensi
    Dalam beberapa kasus, Operator Walrus dapat meningkatkan kinerja kode Anda dengan menghilangkan kebutuhan untuk variabel sementara. Ini dapat sangat berguna saat bekerja dengan kumpulan data besar atau dalam aplikasi yang sensitive terhadap waktu.

  • Keringkasan
    Operator Walrus dapat mengurangi jumlah baris kode yang diperlukan untuk melakukan operasi tertentu, yang dapat membuat kode Anda lebih ringkas dan lebih mudah dipahami.

  • Fleksibilitas
    Operator Walrus dapat digunakan dalam berbagai konteks, membuatnya menjadi alat yang sangat fleksibel untuk programmer Python berpengalaman.

Cara Menggunakan Operator Walrus

Menggunakan Operator Walrus dalam Python dapat sangat membantu untuk menyederhanakan kode dan meningkatkan keterbacaan. Berikut adalah contoh cara menggunakan operator tersebut:

Misalkan Anda memiliki daftar angka, dan Anda ingin mencari jumlah dari semua angka yang lebih besar dari 10. Berikut adalah bagaimana Anda dapat melakukannya menggunakan Operator Walrus:

python
numbers = [5, 12, 8, 20, 6, 15]
sum_greater_than_10 = 0

for num in numbers:
    if (greater_than_10 := num > 10):
        sum_greater_than_10 += num

print(sum_greater_than_10)

Pada contoh ini, kita mulai dengan membuat sebuah daftar angka. Selanjutnya, kita menginisialisasi variabel bernama sum_greater_than_10 menjadi nol, yang akan kita gunakan untuk melacak jumlah dari semua angka yang lebih besar dari 10.

Selanjutnya, kita melintasi setiap angka dalam daftar menggunakan loop for. Dalam loop, kita menggunakan operator Walrus untuk memberikan hasil dari perbandingan num > 10 ke variabel greater_than_10. Jika greater_than_10 adalah True, maka kita menambahkan num ke total berjalan sum_greater_than_10.

Akhirnya, kita mencetak nilai sum_greater_than_10, yang seharusnya merupakan jumlah dari semua angka yang lebih besar dari 10 dalam daftar asli.

Menggunakan operator Walrus seperti ini dapat membuat kode kita lebih ringkas dan lebih mudah dibaca, sambil tetap mencapai hasil yang diinginkan. Dengan memberikan hasil perbandingan ke variabel dalam loop, kita menghindari melakukan perbandingan yang sama beberapa kali, yang dapat membuat kode kita lebih efisien juga.

Contoh Kasus Penggunaan Operator Walrus di Dunia Nyata

Operator walrus dalam Python dapat digunakan dalam berbagai skenario dunia nyata untuk menyederhanakan kode dan meningkatkan kelegibilitas. Berikut adalah beberapa contoh:

Penanganan Berkas

Saat membaca dari berkas di Python, Anda mungkin ingin memastikan bahwa berkas tersebut ada sebelum mencoba membacanya. Anda dapat menggunakan operator Walrus untuk mencapainya dengan cara yang ringkas dan mudah dibaca, seperti ini:

python
nama_berkas = "berkas_saya.txt"

if (berkas := open(nama_berkas, "r")):
    isi = berkas.read()
    berkas.close()
    print(isi)
else:
    print(f"{nama_berkas} tidak ada.")

Dalam contoh ini, kita menggunakan operator Walrus untuk memberikan hasil dari fungsi open() ke variabel berkas. Jika berkas ada, maka berkas akan diberikan nilai yang dikembalikan oleh open(), yang kemudian dapat kita gunakan untuk membaca isi berkas. Jika berkas tidak ada, maka berkas akan diberikan nilai None, dan kita dapat mencetak pesan kesalahan yang mengindikasikan bahwa berkas tidak ada.

Validasi Data

Saat bekerja dengan masukan pengguna di Python, Anda mungkin ingin memvalidasi masukan sebelum menggunakannya dalam kode Anda. Misalnya, Anda mungkin ingin memastikan bahwa pengguna memasukkan bilangan bulat yang valid sebelum melakukan perhitungan. Anda dapat menggunakan operator Walrus untuk mencapainya dengan cara yang ringkas dan mudah dibaca, seperti ini:

python
while (num := input("Enter a positive integer: ")) and not num.isdigit():
    print("Invalid input. Please enter a positive integer.")

if num:
    num = int(num)
    result = num * 2
    print(f"{num} times 2 is {result}.")

Pada contoh ini, kita menggunakan Operator Walrus untuk memberikan hasil dari fungsi input() ke variabel num. Kita juga menggunakan metode isdigit() untuk memeriksa apakah num mengandung integer yang valid. Jika pengguna memasukkan masukan yang tidak valid, maka kita mencetak pesan kesalahan dan meminta mereka untuk memasukkan integer yang valid. Jika pengguna memasukkan masukan yang valid, maka kita mengonversi num menjadi integer dan melakukan perhitungan.

Permintaan API

Ketika membuat permintaan ke API dalam Python, Anda mungkin ingin menangani kesalahan dan kode respons secara ringkas dan mudah dibaca. Anda dapat menggunakan Operator Walrus untuk mencapai ini, seperti ini:

python
import requests

url = "https://api.example.com/data"

if (response := requests.get(url)).status_code == 200:
    data = response.json()
    print(data)
else:
    print(f"Error {response.status_code}: {response.text}")

Pada contoh ini, kita menggunakan Operator Walrus untuk memberikan hasil dari fungsi requests.get() ke variabel response. Kita juga memeriksa kode status dari respons untuk memastikan bahwa permintaan berhasil. Jika permintaan berhasil, maka kita mengurai data JSON dan mencetaknya ke konsol. Jika permintaan tidak berhasil, maka kita mencetak pesan kesalahan yang berisi kode status dan pesan kesalahan yang dikembalikan oleh API.

Kondisi Loop

Operator Walrus dapat berguna saat bekerja dengan kondisi loop dalam Python. Misalnya, pertimbangkan sebuah skenario di mana Anda ingin mengulang sebuah daftar dan berhenti memproses daftar ketika Anda mencapai kondisi tertentu. Anda dapat menggunakan Operator Walrus untuk memeriksa kondisi dan keluar dari loop jika diperlukan, seperti ini:

python
my_list = [1, 2, 3, 4, 5]
limit = 10
total = 0

for num in my_list:
    if (total := total + num) >= limit:
        break

print(f"Processed {len(my_list)} items, total = {total}")

Pada contoh ini, kita menggunakan Operator Walrus untuk mengupdate nilai total di setiap iterasi dalam loop. Kita juga menggunakan Operator Walrus untuk memeriksa apakah total telah mencapai nilai limit, dan keluar dari loop jika iya. Hal ini memungkinkan kita untuk mengiterasi melalui list dan melakukan perhitungan, sambil memastikan bahwa kita tidak memproses lebih banyak item dari yang diperlukan.

Nilai Default Dinamis

Operator Walrus dapat berguna saat bekerja dengan nilai default pada fungsi Python. Sebagai contoh, pertimbangkan sebuah skenario di mana Anda ingin membuat sebuah fungsi yang mengembalikan nilai default dinamis berdasarkan tanggal saat ini. Anda dapat menggunakan Operator Walrus untuk menghitung nilai default dan mengembalikannya jika tidak ada nilai yang diberikan oleh pengguna, seperti ini:

python
import datetime

def get_default_value():
    today = datetime.date.today()
    return f"{today.year}-{today.month}-{today.day}"

def my_function(value=get_default_value()):
    print(f"value = {value}")

my_function()  # Output: value = 2023-3-10
my_function("test")  # Output: value = test

Pada contoh ini, kita menggunakan Operator Walrus untuk menghitung nilai default dari value dengan memanggil fungsi get_default_value(). Jika pengguna tidak memberikan nilai, maka Operator Walrus akan menetapkan nilai default ke value. Jika pengguna memberikan nilai, maka nilai yang diberikan akan digunakan. Hal ini memungkinkan kita untuk membuat sebuah fungsi dengan nilai default yang dinamis, sambil tetap memungkinkan pengguna untuk menimpanya jika diperlukan.

Referensi

https://realpython.com/python-walrus-operator/#:~:text=The %3A%3D operator is officially,as the colon equals operator.
https://zetcode.com/python/python-walrus/

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!