`truthy` dan `falsy` dalam Python

`truthy` dan `falsy` dalam Python

Artikel ini menjelaskan tentang truthy dan falsy dalam Python.

YouTube Video

truthy dan falsy dalam Python

Definisi truthy dan falsy

Dalam Python, objek yang dievaluasi di ekspresi kondisional dianggap sebagai 'True' atau 'False'. Truthy mengacu pada objek yang dievaluasi sebagai 'True', dan falsy mengacu pada objek yang dievaluasi sebagai 'False'. Evaluasi ini sering digunakan dalam cabang kondisional seperti pernyataan if atau perulangan while. Selain itu, fungsi bool() menerima objek apa pun dan mengembalikan nilai Boolean-nya.

Falsy (Objek yang dievaluasi sebagai False)

Di Python, objek-objek berikut dianggap sebagai falsy:.

  • False

  • None

  • Nilai numerik nol

    • Contoh: 0, 0.0
  • Tipe urutan kosong (seperti list kosong, tuple, atau string kosong)

    • Contoh: [], (), ""
  • Dictionary kosong

    • Contoh: {}
  • Set kosong

    • Contoh: set()

Objek-objek ini dievaluasi sebagai 'falsy' saat digunakan dalam kondisi pernyataan if. Sebagai contoh, Anda dapat menulis kode seperti ini.

1if not []:
2    print("The list is falsy.")
  • Dalam kode ini, list [] kosong, sehingga dievaluasi sebagai falsy, dan pernyataan print dijalankan.

Truthy (Objek yang dievaluasi sebagai True)

Objek yang tidak dianggap falsy dianggap sebagai truthy.

  • Angka bukan nol (bilangan bulat, bilangan titik mengambang)

    • Contoh: 1, 3.14, -100
  • Tipe urutan tidak kosong (list, tuple, string, dll.)

    • Contoh: [1, 2, 3], (1, 2), "Hello"
  • Dictionary tidak kosong

    • Contoh: {"key": "value"}
  • Set tidak kosong

    • Contoh: {1, 2, 3}

Objek yang dianggap truthy akan dievaluasi sebagai 'True' ketika digunakan dalam kondisi pada pernyataan if. Sebagai contoh, Anda dapat menulis kode seperti ini.

1if [1, 2, 3]:
2    print("The list is truthy.")
  • Pada kode di atas, karena list [1, 2, 3] tidak kosong, maka dievaluasi sebagai truthy dan perintah print dijalankan.

Evaluasi nilai Boolean dengan fungsi bool()

Anda dapat mengevaluasi nilai Boolean dari suatu objek dengan menggunakan fungsi bool().

 1# Examples of falsy values
 2print("False is", "truthy" if bool(False) else "falsy")
 3print("0 is", "truthy" if bool(0) else "falsy")
 4print('"" is', "truthy" if bool("") else "falsy")
 5print("None is", "truthy" if bool(None) else "falsy")
 6print("[] is", "truthy" if bool([]) else "falsy")
 7
 8# Examples of truthy values
 9print("1 is", "truthy" if bool(1) else "falsy")
10print('"hello" is', "truthy" if bool("hello") else "falsy")
11print('" " (space) is', "truthy" if bool(" ") else "falsy")
12print('"0" is', "truthy" if bool("0") else "falsy")
  • Kode ini menunjukkan bagaimana nilai kebenaran dari berbagai nilai dievaluasi. Sebagai contoh, nilai numerik 0 dan string kosong dianggap False, sedangkan spasi atau string "0" dianggap True.

Menggunakan truthy dan falsy

Dengan menggunakan truthy dan falsy, kode dapat ditulis lebih ringkas dan intuitif. Khususnya, pernyataan if sering dapat dievaluasi tanpa perbandingan eksplisit untuk membuatnya lebih singkat. Sebagai contoh, dua potongan kode berikut berperilaku serupa, tetapi yang pertama lebih ringkas.

1my_list = [1]
2
3# Explicit comparison
4if my_list != []:
5    print("The list is not empty.")
6
7# Using truthy/falsy
8if my_list:
9    print("The list is not empty.")

Dalam contoh di atas, Anda dapat melihat bahwa my_list dievaluasi sebagai truthy selama itu bukan list kosong, sehingga tidak memerlukan perbandingan eksplisit.

Merancang dengan truthy dan falsy

Dengan memanfaatkan konsep truthy dan falsy secara efektif, Anda dapat meningkatkan keterbacaan dan efisiensi kode. Ini sangat berguna untuk menetapkan nilai default, memeriksa validitas variabel, dan validasi input. Sebagai contoh, jika Anda mengharapkan None atau daftar kosong sebagai argumen, Anda dapat menulis kode seperti ini.

1def process_data(data=None):
2    data = data or []
3    print(data)
4
5process_data()  # An empty list is used by default.
  • Pada kode ini, jika data adalah None, maka list kosong [] akan digunakan sebagai nilai default. Dengan cara ini, menggunakan truthy dan falsy memungkinkan Anda untuk menetapkan nilai default dengan ringkas.

Hal-hal yang perlu diperhatikan untuk menghindari perilaku yang tidak diinginkan

Namun, meskipun kode yang menggunakan nilai truthy dan falsy bisa ringkas dan praktis, perlu diingat bahwa hal ini dapat menyebabkan perilaku yang tidak diinginkan. Sebagai contoh, pada kode ini, tidak hanya ketika data adalah None, tetapi juga ketika bernilai False, seperti string kosong atau 0, nilainya akan diganti dengan list kosong [] sebagai nilai default. Oleh karena itu, ketika dibutuhkan kondisi yang lebih ketat, misalnya inisialisasi hanya ketika nilainya adalah None, disarankan untuk menggunakan kondisi eksplisit seperti value is None:. Tergantung pada situasinya, penting untuk merancang dengan mempertimbangkan keseimbangan antara kepraktisan dan ketelitian.

1def process_data(data=None):
2    if data is None:
3        data = []
4    print(data)
5
6process_data()   # An empty list is used by default.
7process_data(0)  # 0 is printed because it's not None.
  • Pada kode ini, data diinisialisasi sebagai daftar kosong hanya jika nilainya None, sedangkan nilai falsy lain seperti 0 tetap dibiarkan apa adanya.

Mengontrol nilai Boolean pada objek kustom

Bahkan pada kelas buatan sendiri, Anda dapat mengontrol nilai Boolean suatu instance dengan mendefinisikan __bool__() atau __len__().

 1class MyContainer:
 2    def __init__(self, items):
 3        self.items = items
 4
 5    def __len__(self):
 6        return len(self.items)
 7
 8box = MyContainer([])
 9print(bool(box))  # False
10
11box.items.append("item")
12print(bool(box))  # True
  • Pada kode ini, metode __len__() membuat container dievaluasi sebagai False ketika kosong, dan True ketika memiliki elemen.

Kesimpulan

Konsep truthy dan falsy dalam Python sangat penting untuk menulis ekspresi kondisional yang ringkas dan membuat kode lebih intuitif. Memahami dan menggunakan ini dengan benar dapat secara signifikan meningkatkan keterbacaan dan efisiensi kode.

Anda dapat mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Silakan periksa juga saluran YouTube kami.

YouTube Video