Soal 1Apa yang dicetak kode ini?print(all([1, 2, 0, 3]))
Pemeriksaan Massal dengan all() dan any()
Pahami fungsi bawaan all() dan any() di Python untuk pemeriksaan massal pada koleksi.
all() — True hanya ketika setiap elemen True
all(iterable) mengembalikan True ketika setiap elemen dari list, tuple, atau set yang kamu teruskan bernilai True (atau dievaluasi sebagai truthy), dan False jika ada satu pun elemen yang False.
True jika setiap elemen True. False jika ada elemen yang False. True ketika diberi iterable kosong.
Aturan truthiness dari artikel sebelumnya tetap berlaku: 0, string kosong, dan list kosong diperlakukan sebagai False, jadi list angka yang berisi 0 membuat all() mengembalikan False.
# List bool: False jika ada elemen yang False
print(all([True, True, True])) # True
print(all([True, False, True])) # False
# List angka: False jika ada 0 di dalamnya
print(all([1, 2, 3])) # True
print(all([1, 0, 3])) # False
# Apakah semua kolom form yang wajib sudah diisi?
form_values = ["Budi", "budi@example.com", "Jl. Sudirman No. 1, Jakarta"]
if all(form_values):
print("Siap dikirim")
else:
print("Beberapa kolom kosong")
# Output: Siap dikirim
any() — True jika setidaknya satu elemen True
any(iterable) mengembalikan True jika setidaknya satu elemen True, dan False hanya ketika setiap elemen False. Di mana all() adalah pemeriksaan ketat yang menuntut lulus suara bulat, any() adalah pemeriksaan longgar yang puas dengan satu kecocokan.
| Fungsi | Mengembalikan True ketika | Mengembalikan False ketika | Pada list kosong |
|---|---|---|---|
| all() | Setiap elemen True | Setidaknya satu elemen False | True |
| any() | Setidaknya satu elemen True | Setiap elemen False | False |
# List bool: True jika setidaknya satu True
print(any([False, False, True])) # True
print(any([False, False, False])) # False
# Coba ulang jika setidaknya satu flag error muncul
error_flags = [False, False, True, False]
if any(error_flags):
print("Perlu coba ulang")
else:
print("Semua sukses")
# Output: Perlu coba ulang
Perilaku ketika diberi koleksi kosong
Ketika kamu meneruskan list kosong, all([]) mengembalikan True dan any([]) mengembalikan False. Ini berlawanan dengan intuisi, jadi hati-hati ketika data sah-sah saja punya nol elemen.
print(all([])) # True <- tidak ada "yang False" untuk ditemukan, jadi True
print(any([])) # False <- tidak ada "yang True" untuk ditemukan, jadi False
# Contoh: keranjang yang belum punya item terdaftar
cart = []
if all(cart):
print("Semua item dicek") # berjalan walaupun keranjang berisi 0 item
# Ini mungkin tidak sesuai maksudmu, jadi cek kosong dulu
Putuskan dulu cara menangani list kosong
Ketika kamu memakai all() dengan semangat "jika setiap anggota memenuhi kondisi…", 0 anggota tetap mengembalikan True. Untuk mencegah lulus dini yang tidak diinginkan, cek dulu bahwa list-nya tidak kosong, seperti if members and all(...):.
Gabungkan dengan kondisi untuk pemeriksaan massal
all() / any() benar-benar bersinar **ketika digabungkan dengan ekspresi perbandingan. Untuk mengecek "apakah semua berusia 18 atau lebih?", buat list hasil >= 18` dari usia dan teruskan — seluruh pemeriksaan muat dalam satu baris.
ages = [19, 20, 18, 25, 57]
# Buat dulu list bool, lalu teruskan ke all (versi 2 langkah yang lebih mudah)
checks = [age >= 18 for age in ages]
print(checks) # [True, True, True, True, True]
print(all(checks)) # True
# Atau tulis inline (list comprehension / generator expression — dibahas berikutnya)
print(all(age >= 18 for age in ages)) # True
print(any(age >= 65 for age in ages)) # False
Kita akan membahas list comprehension seperti [age >= 18 for age in ages] secara detail di bab for. Untuk sekarang, cukup rasakan bahwa "kamu bisa mengevaluasi sebuah kondisi di seluruh list dan langsung meneruskan hasilnya ke all() / any()".
Di artikel ini, kita belajar all() dan any() untuk memeriksa isi list atau tuple secara massal.
all() mensyaratkan semua lulus, any() puas dengan setidaknya satu, dan pada input kosong all adalah True sementara any adalah False. Di artikel berikutnya, kita akan menggali lebih dalam loop for itu sendiri — mesin di balik ekspresi [... for ... in ...] yang muncul diam-diam di sini sebagai "list hasil".
Cek Pemahaman
Jawab setiap pertanyaan satu per satu.
Soal 2Apa yang dicetak kode ini?print(any([False, False, False]))
Soal 3Ketika diteruskan list kosong [], kombinasi nilai kembalian dari all([]) dan any([]) mana yang benar?