Skip to main content

Truthy & Falsy

Truthy dan Falsy Values​

Dalam Python, sebuah kondisi tidak selalu harus menggunakan nilai Boolean secara eksplisit seperti True atau False.

Python dapat mengevaluasi berbagai tipe data sebagai nilai kebenaran ketika digunakan dalam kondisi seperti if, while, dan ekspresi logika.

Konsep ini disebut Truthy dan Falsy.


Apa itu Truthy?​

Truthy adalah nilai yang ketika dievaluasi oleh Python dianggap bernilai True.

Contohnya, string yang memiliki isi dan angka selain 0 merupakan nilai Truthy.

if "hello":
print("Hello adalah Truthy")

if 5:
print("5 adalah Truthy")

Kedua kondisi tersebut akan dijalankan karena "hello" dan 5 dievaluasi sebagai True.

Kita juga dapat melihat hasil evaluasinya menggunakan fungsi bool():

print(bool("hello"))
print(bool(5))

Output:

True
True

Apa itu Falsy?​

Falsy adalah nilai yang ketika dievaluasi oleh Python dianggap bernilai False.

Beberapa nilai Python secara bawaan memiliki sifat Falsy.

Contohnya:

print(bool(False))
print(bool(None))
print(bool(0))
print(bool(""))
print(bool([]))

Output:

False
False
False
False
False

Nilai-Nilai Falsy di Python​

Berikut beberapa nilai yang secara umum dianggap Falsy:

NilaiKeterangan
FalseBoolean False
NoneTidak memiliki nilai
0Integer nol
0.0Float nol
0jComplex nol
""String kosong
[]List kosong
()Tuple kosong
{}Dictionary kosong
set()Set kosong

Selain nilai-nilai tersebut, sebagian besar objek Python akan dievaluasi sebagai Truthy.


Truthy dan Falsy pada String​

String kosong merupakan Falsy.

name = ""

if name:
print("Nama tersedia")
else:
print("Nama belum diisi")

Karena name berisi string kosong, kondisi if name bernilai False.

Sebaliknya:

name = "Andi"

if name:
print("Nama tersedia")
else:
print("Nama belum diisi")

String "Andi" memiliki isi sehingga dianggap Truthy.


Truthy dan Falsy pada Angka​

Angka 0 merupakan Falsy, sedangkan angka selain 0 merupakan Truthy.

print(bool(0))
print(bool(1))
print(bool(-10))
print(bool(3.14))

Output:

False
True
True
True

Hal ini memungkinkan kita melakukan pemeriksaan kondisi dengan lebih sederhana.

number = 10

if number:
print("Number memiliki nilai")

Truthy dan Falsy pada Collection​

Collection yang kosong umumnya dianggap Falsy.

Contohnya:

my_list = []

if my_list:
print("List memiliki data")
else:
print("List kosong")

Karena my_list kosong, kondisi if bernilai False.

Jika list memiliki elemen:

my_list = [1, 2, 3]

if my_list:
print("List memiliki data")
else:
print("List kosong")

Kondisi tersebut bernilai True.

Konsep yang sama berlaku pada beberapa collection lainnya:

print(bool([]))
print(bool([1, 2, 3]))

print(bool(()))
print(bool((1, 2)))

print(bool({}))
print(bool({"name": "Andi"}))

Menggunakan Truthy dan Falsy pada Conditional​

Truthy dan Falsy sangat sering digunakan bersama conditional.

Contohnya:

username = "johnny"
password = "12345"

if username and password:
print("Username dan password tersedia")
else:
print("Username atau password belum diisi")

Python akan mengevaluasi kedua variabel tersebut.

Karena keduanya memiliki nilai, keduanya dianggap Truthy sehingga kondisi terpenuhi.


Contoh Input Pengguna​

Konsep Truthy dan Falsy juga berguna ketika memeriksa input pengguna.

username = input("Username: ")

if username:
print("Username sudah diisi")
else:
print("Username belum diisi")

Jika pengguna memasukkan teks:

Username: johnny

maka username memiliki nilai dan dianggap Truthy.

Jika pengguna langsung menekan Enter:

Username:

maka username berisi string kosong dan dianggap Falsy.


Truthy/Falsy vs Perbandingan Eksplisit​

Perhatikan dua cara berikut.

Cara eksplisit​

username = ""

if username != "":
print("Username tersedia")

Menggunakan Truthy/Falsy​

username = ""

if username:
print("Username tersedia")

Keduanya dapat digunakan, tetapi pemeriksaan Truthy/Falsy sering membuat kode lebih ringkas dan mudah dibaca ketika memang yang ingin diperiksa adalah apakah suatu nilai tersedia atau kosong.


Menggunakan not​

Operator not dapat digunakan untuk membalik evaluasi Truthy/Falsy.

username = ""

if not username:
print("Username belum diisi")

Karena username adalah string kosong yang Falsy, not username menghasilkan True.

Contoh lainnya:

items = []

if not items:
print("Belum ada item")

Truthy/Falsy dengan or​

Truthy dan Falsy juga dapat digunakan untuk memberikan nilai alternatif.

username = ""

display_name = username or "Guest"

print(display_name)

Karena username adalah string kosong dan dianggap Falsy, Python menggunakan "Guest".

Output:

Guest

Jika username memiliki nilai:

username = "Andi"

display_name = username or "Guest"

print(display_name)

Output:

Andi

Mengapa Truthy dan Falsy Penting?​

Truthy dan Falsy membuat kode Python menjadi lebih sederhana ketika melakukan pemeriksaan terhadap data.

Konsep ini sangat berguna ketika:

  • Memeriksa apakah input tersedia.
  • Memeriksa apakah collection memiliki data.
  • Memeriksa apakah sebuah variabel memiliki nilai.
  • Membuat conditional yang lebih ringkas.
  • Memberikan nilai default.
  • Menggabungkan beberapa kondisi menggunakan operator logika.

Memahami konsep ini juga akan membantu ketika mempelajari looping, function, error handling, dan berbagai struktur Python lainnya.


Ringkasan​

Truthy adalah nilai yang dievaluasi sebagai True, sedangkan Falsy adalah nilai yang dievaluasi sebagai False.

Beberapa nilai Falsy yang paling penting untuk diingat:

False
None
0
0.0
""
[]
()
{}
set()

Contoh pemeriksaan:

value = "Python"

if value:
print("Value memiliki isi")

Python secara otomatis mengevaluasi value sebagai Truthy.

Dengan memahami Truthy dan Falsy, kita dapat menulis conditional yang lebih sederhana, idiomatis, dan mudah dibaca.