# Bab 5P. Aljabar Boolean
## Aljabar Boolean
Python mempunyai tipe data Boolean pada Python yaitu tipe data `bool` yang hanya bernilai `True` dan `False`. Jika nilai-nilai Boolean ini dikonversi ke integer menggunakan fungsi built-in `int()`, nilai `False` bernilai `0` dan nilai `True` bernilai `1`.
```python
>>> int(False)
0
>>> int(True)
1
```
Sebaliknya, jika kita mengonversi nilai integer ke nilai Boolean menggunakan fungsi built-in `bool`, nilai `0` akan dikonversi menjadi `False` dan nilai selain `0` akan dikonversi menjadi `True`.
```python
>>> bool(0)
False
>>> bool(1)
True
>>> bool(3)
True
```
### Operator Boolean
Operator-operator Boolean pada Python:
- Operator `&` digunakan untuk melakukan operasi perkalian Boolean.
- Operator `|` digunakan untuk melakukan operasi penjumlahan Boolean.
- Operator `not` digunakan untuk melakukan operasi komplemen.
:::info
***Contoh 5.1 Tabel Operasi Perkalian***
Kode berikut mencetak tabel perkalian Boolean.
```python
print(f'|{"a":^4s}|{"b":^4s}|{"a.b":^4s}|')
for a in [0, 1]:
for b in [0, 1]:
c = a & b
# cetak tabel
print(f'|{a!s:^4}|{b!s:^4}|{c!s:^4}|')
```
Output dari kode di atas:
```
| a | b |a.b |
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
```
:::
:::info
***Contoh 5.2 Tabel Operasi Penjumlahan***
Kode berikut mencetak tabel penjumlahan Boolean.
```python
print(f'|{"a":^4s}|{"b":^4s}|{"a+b":^4s}|')
for a in [0, 1]:
for b in [0, 1]:
c = a | b
# cetak tabel
print(f'|{a!s:^4}|{b!s:^4}|{c!s:^4}|')
```
Output dari kode di atas:
```
| a | b |a+b |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
```
:::
:::info
***Contoh 5.3 Tabel Operasi Komplemen***
Kode berikut mencetak tabel penjumlahan Boolean.
```python
print(f'|{"a":^4s}|{"~a":^4s}|')
for a in [0, 1]:
c = not a
# karena operator not menghasilkan nilai True atau False
# kita harus mengonversinya ke integer.
c = int(c)
# cetak tabel
print(f'|{a!s:^4}|{c!s:^4}|')
```
Output dari kode di atas:
```
| a | ~a |
| 0 | 1 |
| 1 | 0 |
```
:::
### Ekspresi Boolean dan Fungsi Boolean
:::info
***Contoh 5.4 Evaluasi Ekspresi Boolean***
Evaluasi ekspresi Boolean $a' \cdot (b + c))$ jika $a = 0$, $b =1$ dan $c = 0$.
***Solusi:***
Kode berikut mengevaluasi ekspresi Boolean di atas.
```python
a = 0
b = 1
c = 0
x = (not(a))&(b|c)
print(x)
```
Output dari kode di atas:
```
1
```
:::
:::info
***Contoh 5.5 Fungsi Boolean***
Diketahui fungsi Boolean: $f(x,y,z) = xyz + x'y + y'z$.
Cari nilai fungsi pada $x = 1, y = 0$ dan $z = 1$.
```python=
def f(x, y, z):
return x&y&z | (not x)&y | (not y)&z
x = 1
y = 0
z = 1
f = f(x, y, z)
print('f(1, 0, 1) =', f)
```
Output dari kode di atas:
```
f(1, 0, 1) = 1
```
:::