Operator Logika Bagian 4
Termasuk bagian Dasar-Dasar dalam perjalanan Python di Coddy. Pelajaran 19 dari 77.
Saat bekerja dengan ekspresi logika, terkadang kita perlu menyederhanakan atau menyusunnya ulang. Ini sangat berguna saat menangani kondisi kompleks yang menggabungkan beberapa operator and dan or.
Hukum De Morgan memberikan aturan untuk mengubah ekspresi logika. Perubahan ini membantu membuat kode lebih mudah dibaca dan dipahami.
Hukum Pertama: not (A and B) sama dengan (not A) or (not B)
Perhatikan dua hal yang terjadi saat kamu mendistribusikan not ke dalam ekspresi: setiap operand dinegasikan (A menjadi not A, B menjadi not B), dan operatornya berubah: and menjadi or. not tidak hanya menegasikan nilai, tetapi juga mengganti operator penghubung di antara keduanya.
Sebagai contoh:
# Mari kita periksa apakah suatu angka TIDAK (berada di antara 1 dan 10)
number = 15
# Kedua ekspresi ini setara:
result1 = not (number >= 1 and number <= 10)
result2 = (not number >= 1) or (not number <= 10)
print(result1) # True
print(result2) # TrueHukum Kedua: not (A or B) sama dengan (not A) and (not B)
Aturan dua langkah yang sama berlaku di sini: setiap operand dinegasikan, dan operatornya berubah. Kali ini or menjadi and. Anggap saja seperti ini: menyebarkan not selalu membalik and ↔ or sambil menegasikan setiap bagian.
Misalnya:
# Memeriksa apakah seseorang BUKAN (pelajar atau pekerja)
is_student = False
is_employed = False
# Kedua ekspresi ini setara:
result1 = not (is_student or is_employed)
result2 = (not is_student) and (not is_employed)
print(result1) # True
print(result2) # TrueContoh Kompleks dengan AND dan OR: Terkadang kamu memerlukan kondisi yang menggabungkan kedua operator. Berikut contoh praktisnya:
# Memeriksa apakah kita TIDAK BISA menerima lamaran kerja
# Kita menolak jika: (tidak punya pengalaman AND tidak punya gelar) OR tidak memenuhi syarat usia
has_experience = False
has_degree = False
meets_age = True
# Kondisi kompleks yang menggunakan AND dan OR
reject_application = (not has_experience and not has_degree) or not meets_age
print(reject_application) # True (ditolak karena tidak punya pengalaman AND tidak punya gelar)# Ini juga bisa kamu tulis menggunakan Hukum De Morgan:
# accept = (experience OR degree) AND meets age; reject = not accept
accept_application = (has_experience or has_degree) and meets_age
reject_application2 = not accept_application
print(reject_application2) # True (hasil sama, logika berbeda)Kapan menggunakan Hukum De Morgan:
- Untuk membuat kondisi negatif lebih mudah dibaca
- Untuk menyederhanakan ekspresi logika yang kompleks
- Untuk mengonversi berbagai representasi dari logika yang sama
Tantangan
PemulaKamu membantu toko hewan peliharaan membuat sistem untuk menentukan apakah mereka dapat menjual hewan peliharaan kepada pelanggan.
Inisialisialisasi variabel berikut:
has_licensedengan nilaiTruehas_spacedengan nilaiTruehas_experiencedengan nilaiFalse
Tulis ekspresi logika untuk menentukan apakah:
can_sell_regular_pet: Pelanggan dapat membeli hewan peliharaan biasa jika mereka memiliki lisensi ATAU pengalaman, DAN mereka harus memiliki ruangcan_sell_exotic_pet: Pelanggan dapat membeli hewan peliharaan eksotis jika mereka memiliki lisensi DAN pengalaman, DAN mereka harus memiliki ruangcannot_sell_any_pet: Toko TIDAK DAPAT menjual hewan peliharaan apa pun jika pelanggan TIDAK memiliki lisensi DAN TIDAK memiliki pengalaman, ATAU mereka TIDAK memiliki ruang
Hasil yang diharapkan dengan nilai yang diberikan:
can_sell_regular_pet:True(memiliki lisensi dan ruang)can_sell_exotic_pet:False(tidak memiliki pengalaman)cannot_sell_any_pet:False(memiliki lisensi dan ruang)
Coba sendiri
# Inisialisasi variabel
# Hitung kondisi
# Ganti setiap nilai sementara di bawah ini dengan ekspresi logika yang benar
can_sell_regular_pet = False
can_sell_exotic_pet = False
cannot_sell_any_pet = False
# Jangan hapus baris-baris di bawah ini
print("Can sell regular pet:", can_sell_regular_pet)
print("Can sell exotic pet:", can_sell_exotic_pet)
print("Cannot sell any pet:", cannot_sell_any_pet)Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator Bagian 2
Operator Logika Bagian 1Operator Logika Bagian 2Rangkuman, Logika SederhanaOperator Logika Bagian 3Operator Logika Bagian 47Kalkulator Pembagi Tagihan
Pesan Selamat DatangMenerima Input10FizzBuzz dengan Sentuhan Unik
Ikhtisar PermainanFungsi FizzBuzz8Perulangan
For loopWhile loopBreakContinueRingkasan: FaktorialFungsi rangeLoop BersarangRingkasan: Input Dinamis3Operator Bagian 1
Operator AritmetikaOperator ModuloPintasan AritmetikaRangkuman: Matematika SederhanaOperator Perbandingan6Input dan Output Dasar
OutputOutput dengan VariabelInputKonversi TipeUlasan: Sampai 120Ulasan: Benar atau Salah9Fungsi
Deklarasikan FungsiArgumenNilai KembaliUlasan, Fungsi SigmaUlasan, Fungsi ValidasiNilai Default12Melakukan Perulangan pada Urutan
Melakukan Perulangan pada ElemenFungsi EnumerateMelakukan Perulangan pada String Bagian 1Melakukan Perulangan pada String Bagian 2Latihan sendiri: Compiler Python online