Menu
CoddyTech

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)  # True

Hukum 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)  # True

Contoh 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
challenge icon

Tantangan

Pemula

Kamu membantu toko hewan peliharaan membuat sistem untuk menentukan apakah mereka dapat menjual hewan peliharaan kepada pelanggan.

Inisialisialisasi variabel berikut:

  • has_license dengan nilai True
  • has_space dengan nilai True
  • has_experience dengan nilai False

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 ruang
  • can_sell_exotic_pet: Pelanggan dapat membeli hewan peliharaan eksotis jika mereka memiliki lisensi DAN pengalaman, DAN mereka harus memiliki ruang
  • cannot_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)
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler Python online