Apa itu Truth Table?
Truth table adalah pemetaan dari semua kemungkinan nilai kebenaran (*truth value*) yang dihasilkan oleh suatu ekspresi logika. Nilai kebenaran ini biasanya berupa *true* atau *false*, atau bisa juga berupa angka 1 atau 0. Dalam beberapa kasus, nilai ini juga bisa berasal dari sistem binary lain, seperti “on” dan “off” atau “open” dan “closed”, walaupun ini tidak terlalu umum. Truth table banyak digunakan dalam Boolean algebra dan berbagai bidang matematika serta sains lain yang bergantung pada logika Boolean, untuk menunjukkan semua kemungkinan hasil dari suatu ekspresi atau operasi dalam bentuk benar atau salah.
Ekspresi logika sendiri berisi satu atau lebih fungsi Boolean yang menentukan logika yang digunakan untuk mengevaluasi benar atau salahnya ekspresi tersebut. Fungsi Boolean paling umum adalah AND, OR, dan NOT, yang dijelaskan dalam tabel berikut:
Fungsi | Tipe | Logika | Simbol yang digunakan dalam perhitungan |
AND | Logical conjunction | Bernilai true jika kedua pernyataan bernilai true | · Ascending wedge (∧) · Asterisk (*) · Dot (⋅) |
OR | Logical inclusive disjunction | Bernilai true jika salah satu atau kedua pernyataan bernilai true | · Descending wedge (∨) · Plus sign (+) · Vertical bar (|) |
NOT | Logical negation | Bernilai true jika pernyataan bernilai false, dan bernilai false jika pernyataan bernilai true | · Dash dengan ekor sebelum pernyataan (¬x) · Tilde sebelum pernyataan (~x) · Tanda seru sebelum pernyataan (!x) · Tanda kutip tunggal setelah pernyataan (x’) · Overline di atas pernyataan (x̅) |
Fungsi-fungsi Boolean ini bisa dikombinasikan untuk membentuk logika dari sebuah ekspresi. Ada aturan prioritas dalam evaluasinya: fungsi NOT dieksekusi lebih dulu dibandingkan fungsi lainnya, lalu diikuti fungsi AND, dan terakhir fungsi OR. Untuk mengubah urutan evaluasi ini, kita bisa menggunakan tanda kurung, supaya ekspresi dievaluasi sesuai dengan urutan yang kita inginkan.
Selain fungsi Boolean, sebuah ekspresi logika juga melibatkan variabel yang mewakili nilai kebenaran. Fungsi-fungsi tersebut diterapkan langsung ke variabel-variabel tersebut untuk membentuk logika ekspresi. Misalnya, dengan variabel A dan B, kita bisa punya logika seperti ini:
- A ∧ B = false, kecuali kalau A = true dan B = true
- A ∧ B = true kalau A = true dan B = true
- A ∨ B = true, kecuali kalau A = false dan B = false
- A ∨ B = false kalau A = false dan B = false
- Kalau A = false, maka ¬A = true
- Kalau A = true, maka ¬A = false
Truth table membantu kita memetakan semua kemungkinan kombinasi nilai kebenaran dari suatu ekspresi, sekaligus menentukan hasil akhirnya. Dalam sebuah truth table, biasanya ada kolom untuk tiap variabel, baris untuk setiap kombinasi kemungkinan nilai, dan kolom untuk hasil akhirnya.
Contohnya untuk ekspresi A ∧ B. Ekspresi ini menggunakan fungsi Boolean AND untuk menghubungkan variabel A dan B. Berikut ini bentuk truth table-nya, dengan T untuk true (1) dan F untuk false (0). Lihat tabel berikut:
A | B | A ∧ B |
T | T | T |
T | F | F |
F | T | F |
F | F | F |
Pada ekspresi ini, hanya kombinasi A = true dan B = true yang menghasilkan nilai true. Sisanya, hasilnya false, karena fungsi AND mensyaratkan kedua variabel harus sama-sama true supaya hasil akhirnya juga true.
Kalau kita ganti fungsi Booleannya jadi OR, hasilnya berbeda. Misal pada ekspresi A ∨ B. Kali ini, ekspresi hanya akan menghasilkan false kalau kedua variabel false. Ini bisa dilihat pada tabel berikut:
A | B | A ∨ B |
T | T | T |
T | F | T |
F | T | T |
F | F | F |
Kamu juga bisa menggunakan truth table saat bekerja dengan operator NOT. Misalnya, ekspresi ¬A menunjukkan negasi logis dari A. Karena hanya ada satu variabel, truth table-nya cukup butuh satu kolom untuk variabel tersebut dan satu kolom lagi untuk hasil akhirnya. Lihat truth table 3 berikut ini:
A | ¬A |
T | F |
F | T |
Tabel ini hanya butuh dua baris nilai karena memang hanya ada dua kemungkinan: true dan false. Karena menggunakan operator NOT, ekspresinya akan menghasilkan false jika A itu true, dan menghasilkan true jika A itu false.
A | B | C | D | ¬(A ∨ B) ∧ (¬C ∨ D) |
Kamu bisa menghitung jumlah baris nilai yang dibutuhkan dengan menggunakan rumus 2ⁿ, di mana n adalah jumlah variabel dalam ekspresi tersebut.
Dalam kasus ini, ada empat variabel, jadi ada 16 baris nilai (2⁴ = 16).
Setelah kamu membuat kerangka dasar (shell) dari tabelnya, langkah selanjutnya adalah mengisi semua kombinasi nilai kemungkinan untuk setiap baris berdasarkan keempat variabel tersebut.
Lihat truth table 5 berikut ini:
A | B | C | D | ¬(A ∨ B) ∧ (¬C ∨ D) |
T | T | T | T | |
T | T | T | F | |
T | T | F | T | |
T | T | F | F | |
T | F | T | T | |
T | F | T | F | |
T | F | F | T | |
T | F | F | F | |
F | T | T | T | |
F | T | T | F | |
F | T | F | T | |
F | T | F | F | |
F | F | T | T | |
F | F | T | F | |
F | F | F | T | |
F | F | F | F |
Lihat truth table 6:
A | B | C | D | ¬(A ∨ B) ∧ (¬C ∨ D) |
T | T | T | T | F |
T | T | T | F | F |
T | T | F | T | F |
T | T | F | F | F |
T | F | T | T | F |
T | F | T | F | F |
T | F | F | T | F |
T | F | F | F | F |
F | T | T | T | F |
F | T | T | F | F |
F | T | F | T | F |
F | T | F | F | F |
F | F | T | T | T |
F | F | T | F | F |
F | F | F | T | T |
F | F | F | F | T |
Dari hasil tabel kebenaran, kamu bisa melihat bahwa ekspresi hanya mengembalikan nilai true dalam tiga kondisi berikut:
- A = false, B = false, C = true, D = true
- A = false, B = false, C = false, D = true
- A = false, B = false, C = false, D = false
Membuat kerangka awal tabel kebenaran biasanya merupakan proses yang cukup mudah. Sebagian besar pekerjaan yang sesungguhnya datang saat menghitung ekspresi untuk setiap baris nilai. Untuk alasan ini, terkadang bisa berguna untuk memperluas tabel kebenaran dengan memasukkan rincian perhitungan individu dari ekspresi tersebut, seperti yang ada dalam tanda kurung atau yang dinyatakan dengan fungsi NOT. Sebagai contoh, tabel kebenaran berikut menambahkan empat kolom ke dalam tabel, satu untuk setiap perhitungan individu dari ekspresi. Lihat truth table 7 berikut ini:
A | B | C | D | A ∨ B | ¬(A ∨ B) | ¬C | (¬C ∨ D) | ¬(A ∨ B) ∧ (¬C ∨ D) |
T | T | T | T | T | F | F | T | F |
T | T | T | F | T | F | F | F | F |
T | T | F | T | T | F | T | T | F |
T | T | F | F | T | F | T | T | F |
T | F | T | T | T | F | F | T | F |
T | F | T | F | T | F | F | F | F |
T | F | F | T | T | F | T | T | F |
T | F | F | F | T | F | T | T | F |
F | T | T | T | T | F | F | T | F |
F | T | T | F | T | F | F | F | F |
F | T | F | T | T | F | T | T | F |
F | T | F | F | T | F | T | T | F |
F | F | T | T | F | T | F | T | T |
F | F | T | F | F | T | F | F | F |
F | F | F | T | F | T | T | T | T |
F | F | F | F | F | T | T | T | T |
Kolom-kolom baru digarisbawahi dengan border yang lebih tebal. Setiap kolom ini menunjukkan hasil perhitungan untuk masing-masing kalkulasi, berdasarkan kombinasi nilai yang mungkin. Sebagai contoh, kolom A ∨ B untuk baris pertama menunjukkan nilai true ketika baik A maupun B bernilai true, namun kolom ¬(A ∨ B) (kolom pertama yang disorot dengan warna kuning) menunjukkan nilai false karena kalkulasi tersebut menggunakan fungsi NOT.
Perhitungan yang ada di kolom ¬C juga menggunakan fungsi NOT, sehingga nilai variabel C akan dibalik. (True menjadi false, dan false menjadi true.) Hasil ini kemudian digunakan dalam perhitungan yang ada di kolom (¬C ∨ D) (kolom kedua yang disorot dengan warna kuning).
Kedua kolom yang disorot dengan warna kuning mewakili dua perhitungan utama yang ada di dalam tanda kurung pada ekspresi luar. Kamu bisa menggunakan kolom-kolom ini untuk menghitung ekspresi akhir. Meskipun kamu tidak harus menyorot kolom-kolom tersebut, cara ini bisa mempermudah perhitungan nilai ekspresi akhir. Karena ekspresi tersebut menghubungkan kedua perhitungan ini dengan fungsi AND, maka kedua kolom harus menunjukkan nilai true agar ekspresi keseluruhan bernilai true.
Lihat juga: simbol negasi logis, implikasi logis,peta Karnaugh (K-map),bilangan desimal terkode biner,kebenaran mutlak, dan tabel dalam pemrograman komputer.