`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
- Contoh:
-
Tipe urutan kosong (seperti list kosong, tuple, atau string kosong)
- Contoh:
[]
,()
,""
- Contoh:
-
Dictionary kosong
- Contoh:
{}
- Contoh:
-
Set kosong
- Contoh:
set()
- Contoh:
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 sebagaifalsy
, dan pernyataanprint
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
- Contoh:
-
Tipe urutan tidak kosong (list, tuple, string, dll.)
- Contoh:
[1, 2, 3]
,(1, 2)
,"Hello"
- Contoh:
-
Dictionary tidak kosong
- Contoh:
{"key": "value"}
- Contoh:
-
Set tidak kosong
- Contoh:
{1, 2, 3}
- Contoh:
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 sebagaitruthy
dan perintahprint
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 dianggapFalse
, sedangkan spasi atau string"0"
dianggapTrue
.
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
adalahNone
, maka list kosong[]
akan digunakan sebagai nilai default. Dengan cara ini, menggunakantruthy
danfalsy
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 nilainyaNone
, sedangkan nilai falsy lain seperti0
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 sebagaiFalse
ketika kosong, danTrue
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.