Komputer menggunakan berbagai sistem bilangan untuk merepresentasikan data. Sistem bilangan utama yang digunakan:
| Sistem | Basis | Digit yang Digunakan | Contoh |
|---|---|---|---|
| Decimal | 10 | 0-9 | 125₁₀ |
| Binary | 2 | 0-1 | 1111101₂ |
| Octal | 8 | 0-7 | 175₈ |
| Hexadecimal | 16 | 0-9, A-F | 7D₁₆ |
Sistem bilangan yang hanya menggunakan 2 digit: 0 dan 1
Binary: 1 0 1 1 0 1
Posisi: 2⁵ 2⁴ 2³ 2² 2¹ 2⁰
Nilai: 32 16 8 4 2 1Konversi 101101₂ ke Decimal
1 0 1 1 0 1
↓ ↓ ↓ ↓ ↓ ↓
2⁵ 2⁴ 2³ 2² 2¹ 2⁰
32 + 0 + 8 + 4 + 0 + 1 = 45₁₀Jawaban: 101101₂ = 45₁₀
Konversi 75₁₀ ke Binary
Metode: Bagi dengan 2, catat sisanya dari bawah ke atas
75 ÷ 2 = 37 sisa 1 ←─┐
37 ÷ 2 = 18 sisa 1 │
18 ÷ 2 = 9 sisa 0 │ Baca dari
9 ÷ 2 = 4 sisa 1 │ bawah ke atas
4 ÷ 2 = 2 sisa 0 │
2 ÷ 2 = 1 sisa 0 │
1 ÷ 2 = 0 sisa 1 ──┘Jawaban: 75₁₀ = 1001011₂
Decimal: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Hex: 0 1 2 3 4 5 6 7 8 9 A B C D E FKonversi 2A3₁₆ ke Decimal
2 A 3
↓ ↓ ↓
16² 16¹ 16⁰
256 16 1
= (2 × 256) + (10 × 16) + (3 × 1)
= 512 + 160 + 3
= 675₁₀Konversi 11010110₂ ke Hex
Metode: Kelompokkan 4 bit dari kanan
Binary: 1101 0110
↓ ↓
Decimal: 13 6
↓ ↓
Hex: D 6
Jawaban: D6₁₆Konversi F4₁₆ ke Binary
F 4
↓ ↓
15 4
↓ ↓
1111 0100
Jawaban: 11110100₂#FF5733 (Orange)Konversi 101110011₂ ke Octal
Kelompokkan 3 bit dari kanan:
Binary: 101 110 011
↓ ↓ ↓
Decimal: 5 6 3
↓ ↓ ↓
Octal: 5 6 3
Jawaban: 563₈8-bit: X XXX XXXX
↑ ↑______↑
│ │
│ └── Magnitude (nilai absolut)
└── Sign bit (0=positif, 1=negatif)
Contoh:
+25 = 0 0011001
-25 = 1 0011001Positif: sama seperti biasa
Negatif: invert bits + 1
Contoh: -25 dalam 8-bit
1. +25 = 00011001
2. Invert = 11100110
3. +1 = 11100111 ← ini adalah -25Tentukan nilai 11011010₂ (8-bit Two's Complement)
Bit pertama = 1, berarti negatif
1. Invert: 11011010 → 00100101
2. +1: 00100101 → 00100110
3. Konversi ke decimal: 32+4+2 = 38
4. Tambah tanda: -38
Jawaban: 11011010₂ = -38₁₀| Tipe | 8-bit Range | 16-bit Range |
|---|---|---|
| Unsigned | 0 hingga 255 | 0 hingga 65,535 |
| Signed (2's comp) | -128 hingga 127 | -32,768 hingga 32,767 |
Setiap digit decimal dikodekan dengan 4 bit
Contoh 8: BCD
Decimal: 295
↓
BCD: 0010 1001 0101
(2) (9) (5)7-bit code untuk karakter
Karakter │ ASCII (Binary) │ Hex
─────────────────────────────────
'A' │ 1000001 │ 41
'B' │ 1000010 │ 42
'a' │ 1100001 │ 61
'0' │ 0110000 │ 30
'9' │ 0111001 │ 39Contoh 9: Encode "Hi"
'H' = 1001000 = 0x48
'i' = 1101001 = 0x69
"Hi" dalam binary: 1001000 1101001Truth Table:
A B │ A·B
─────────────
0 0 │ 0
0 1 │ 0
1 0 │ 0
1 1 │ 1
Hasil 1 hanya jika SEMUA input 1Truth Table:
A B │ A+B
─────────────
0 0 │ 0
0 1 │ 1
1 0 │ 1
1 1 │ 1
Hasil 1 jika SALAH SATU input 1Truth Table:
A │ Ā
────────
0 │ 1
1 │ 0
Membalik nilai inputA B │ A⊕B
──────────────
0 0 │ 0
0 1 │ 1
1 0 │ 1
1 1 │ 0
Hasil 1 jika input BERBEDAA B │ A↑B (NAND)
────────────────────
0 0 │ 1
0 1 │ 1
1 0 │ 1
1 1 │ 0
NAND adalah Universal Gate!A B │ A↓B (NOR)
───────────────────
0 0 │ 1
0 1 │ 0
1 0 │ 0
1 1 │ 0
NOR juga Universal Gate!1. Identity Law (Identitas)
A + 0 = A
A · 1 = A
2. Null Law
A + 1 = 1
A · 0 = 0
3. Idempotent Law
A + A = A
A · A = A
4. Complement Law
A + Ā = 1
A · Ā = 0
5. Involution (Double Negation)
(Ā̄) = A6. Commutative (Komutatif)
A + B = B + A
A · B = B · A
7. Associative (Asosiatif)
(A + B) + C = A + (B + C)
(A · B) · C = A · (B · C)
8. Distributive
A · (B + C) = (A · B) + (A · C)
A + (B · C) = (A + B) · (A + C)9. De Morgan's Theorems
(A + B)̄ = Ā · B̄
(A · B)̄ = Ā + B̄
Dalam kata:
- NOT dari OR = AND dari NOT
- NOT dari AND = OR dari NOTSederhanakan: F = AB + AB̄
F = AB + AB̄
= A(B + B̄) [Distributive]
= A · 1 [Complement Law: B + B̄ = 1]
= A [Identity Law]
Jawaban: F = ASederhanakan: F = (A + B)̄ · (Ā · B̄)̄
Langkah 1: Aplikasikan De Morgan pada (A + B)̄
(A + B)̄ = Ā · B̄
Langkah 2: Aplikasikan De Morgan pada (Ā · B̄)̄
(Ā · B̄)̄ = A + B
Langkah 3: Substitusi
F = (Ā · B̄) · (A + B)
Langkah 4: Ekspansi (Distributive)
F = Ā·B̄·A + Ā·B̄·B
F = 0 + 0 [A·Ā = 0 dan B·B̄ = 0]
F = 0
Jawaban: F = 0 (selalu false)Sederhanakan: F = ABC + AB̄C + ĀBC
F = ABC + AB̄C + ĀBC
= AC(B + B̄) + ĀBC [Faktorkan AC dari 2 term pertama]
= AC·1 + ĀBC [B + B̄ = 1]
= AC + ĀBC
= C(A + ĀB) [Faktorkan C]
= C(A + Ā)(A + B) [Distributive]
= C·1·(A + B) [A + Ā = 1]
= C(A + B)
Jawaban: F = AC + BCAND Gate:
A ──┐
│╲
╲──── A·B
│╱
B ──┘
OR Gate:
A ──┐
│)
)──── A+B
│)
B ──┘
NOT Gate (Inverter):
A ───▷○── Ā
NAND Gate:
A ──┐
│╲
╲○──── (AB)̄
│╱
B ──┘
NOR Gate:
A ──┐
│)
)○──── (A+B)̄
│)
B ──┘
XOR Gate:
A ──┐
│)
)──── A⊕B
│)
B ──┘
XNOR Gate:
A ──┐
│)
)○──── (A⊕B)̄
│)
B ──┘Semua gate bisa dibuat dari NAND!
NOT dari NAND:
A ──NAND── Ā (kedua input dihubungkan)
─┘
AND dari NAND:
A ─┐ ┌─ NOT
NAND─────┤ ── A·B
B ─┘ └─
OR dari NAND:
A ── NOT ─┐
NAND── A+B
B ── NOT ─┘Implementasikan F = AB + C dengan NAND saja
Langkah 1: Aplikasikan De Morgan dua kali
F = AB + C
= (AB + C)̄̄
= ((AB)̄ · C̄)̄ [De Morgan]
Implementasi:
A ─┐
NAND─┐
B ─┘ │
NAND── F
C ─NOT──┘
(3 NAND gate total: 2 untuk input, 1 untuk output)Diberikan: F = A·B + C
Timing Diagram:
┌───┐ ┌───────┐
A │ │ │ │
──┘ └───────┘ └──
┌───────┐
B │ │
──────┘ └──────────
┌───┐ ┌───┐
C│ │ │ │
┘ └───────────────┘ └─
┌───────┐ ┌───┐
F │ │ │ │
──────┘ └───┘ └─
(F aktif saat AB=1 atau C=1)Combinational Circuit: Output hanya bergantung pada input SAAT INI, tidak ada memori/storage.
Karakteristik:
✓ Tidak ada feedback loop
✓ Tidak ada elemen penyimpanan
✓ Output = f(Input saat ini)Contoh 15: Dari Truth Table ke SOP
Truth Table:
A B C │ F
──────────────
0 0 0 │ 0
0 0 1 │ 1 ← minterm m₁
0 1 0 │ 0
0 1 1 │ 1 ← minterm m₃
1 0 0 │ 1 ← minterm m₄
1 0 1 │ 0
1 1 0 │ 1 ← minterm m₆
1 1 1 │ 0
SOP Form:
F = Ā·B̄·C + Ā·B·C + A·B̄·C̄ + A·B·C̄
F = m₁ + m₃ + m₄ + m₆
F = Σ(1,3,4,6)Contoh 16: Dari Truth Table ke POS
Gunakan baris dimana F = 0
F = (A+B+C)·(A+B̄+C)·(A+B̄+C̄)·(Ā+B̄+C)
F = M₀·M₂·M₅·M₇
F = Π(0,2,5,7) B
0 1
┌────────
A 0│ m₀ m₁
1│ m₂ m₃Contoh 17: Simplifikasi dengan K-Map 3 variabel
F(A,B,C) = Σ(1,3,4,6)
BC
00 01 11 10
┌──────────────
A 0│ 0 1 1 0
1│ 1 0 0 1
Grouping:
- Grup 1: BC (posisi 01 dan 11 di baris A=0) → Ā·C
- Grup 2: AC̄ (posisi 00 dan 10 di baris A=1) → A·C̄
F = Ā·C + A·C̄ = A⊕CContoh 18: K-Map 4 Variabel
F(A,B,C,D) = Σ(0,1,2,5,8,9,10)
CD
00 01 11 10
┌──────────────
AB 00│ 1 1 0 1
01│ 0 1 0 0
11│ 0 0 0 0
10│ 1 1 0 1
Grouping (catat: boleh wrap around!)
- Grup 1 (size 4): Ā·C̄ (pojok kiri)
- Grup 2 (size 2): Ā·B·D̄
F = Ā·C̄ + Ā·B·D̄
= Ā(C̄ + B·D̄)1. Grouping harus 1, 2, 4, 8, 16... (power of 2)
2. Makin besar grup, makin sederhana
3. Boleh overlap
4. Boleh wrap around (edge ke edge)
5. Pilih minimal jumlah grupMenjumlahkan 2 bit
Input: A, B
Output: Sum (S), Carry (C)
Truth Table:
A B │ S C
─────────────
0 0 │ 0 0
0 1 │ 1 0
1 0 │ 1 0
1 1 │ 0 1
Equations:
Sum (S) = A ⊕ B
Carry (C) = A · B
Circuit:
A ──┬──XOR── S
│
B ──┼──┐
│ AND── C
└──┘Menjumlahkan 3 bit (A + B + Cᵢₙ)
Truth Table:
A B Cᵢₙ │ S Cₒᵤₜ
─────────────────────
0 0 0 │ 0 0
0 0 1 │ 1 0
0 1 0 │ 1 0
0 1 1 │ 0 1
1 0 0 │ 1 0
1 0 1 │ 0 1
1 1 0 │ 0 1
1 1 1 │ 1 1
Equations:
S = A ⊕ B ⊕ Cᵢₙ
Cₒᵤₜ = AB + BCᵢₙ + ACᵢₙ = AB + Cᵢₙ(A⊕B)Memilih 1 dari N input
Contoh 19: MUX 4-to-1
Input: I₀, I₁, I₂, I₃
Select: S₁, S₀
Output: Y
S₁ S₀ │ Y
──────────
0 0 │ I₀
0 1 │ I₁
1 0 │ I₂
1 1 │ I₃
Logic:
Y = S̄₁S̄₀I₀ + S̄₁S₀I₁ + S₁S̄₀I₂ + S₁S₀I₃Mengkonversi n bit menjadi 2ⁿ output
Contoh 20: Decoder 2-to-4
Input: A₁, A₀
Output: Y₀, Y₁, Y₂, Y₃
A₁ A₀ │ Y₃ Y₂ Y₁ Y₀
───────────────────
0 0 │ 0 0 0 1
0 1 │ 0 0 1 0
1 0 │ 0 1 0 0
1 1 │ 1 0 0 0
Equations:
Y₀ = Ā₁·Ā₀
Y₁ = Ā₁·A₀
Y₂ = A₁·Ā₀
Y₃ = A₁·A₀Kebalikan Decoder: 2ⁿ input → n bit
Contoh 21: Priority Encoder 4-to-2
Input: I₀, I₁, I₂, I₃ (priority: I₃ > I₂ > I₁ > I₀)
Output: A₁, A₀, V (valid)
I₃ I₂ I₁ I₀ │ A₁ A₀ V
─────────────────────
0 0 0 0 │ X X 0
0 0 0 1 │ 0 0 1
0 0 1 X │ 0 1 1
0 1 X X │ 1 0 1
1 X X X │ 1 1 1Combinational:
Input → [Logic] → Output
Sequential:
Input → [Logic] ⇄ [Memory] → Output
↑_______↓
Feedback/StateSequential Circuit: Output bergantung pada input SAAT INI + STATE sebelumnya
Truth Table:
S R │ Q Q̄ │ Action
───────────────────────────
0 0 │ Q Q̄ │ Hold (no change)
0 1 │ 0 1 │ Reset
1 0 │ 1 0 │ Set
1 1 │ X X │ Invalid!
Circuit (NOR-based):
┌───NOR───┐
S ──┤ ├── Q
│ ┌────┘
└────┼───┐
│ │
┌────┼───┤
R ──┤ │ ├── Q̄
└───NOR──┘Eliminasi kondisi invalid SR
Input: D (Data), En (Enable)
Output: Q
En D │ Q
────────────
0 X │ Q (hold)
1 0 │ 0
1 1 │ 1
"When Enable=1, Q follows D"
Circuit:
D ──┬─────────── S
│ │
│ ┌───SR Latch──── Q
│ │ │
En─AND─────┘ │
│ │
└──NOT─AND── RPaling umum digunakan!
Symbol:
──┐
D ────┤D Q├──── Q
│ │
Clk ─▷│> │
│ Q̄├──── Q̄
──┘
Truth Table:
Clk D │ Q(next)
─────────────────
↑ 0 │ 0
↑ 1 │ 1
─ X │ Q (hold)
↑ = positive edge (rising edge)Universal flip-flop
Truth Table:
Clk J K │ Q(next) │ Action
─────────────────────────────────
─ X X │ Q │ No change
↑ 0 0 │ Q │ Hold
↑ 0 1 │ 0 │ Reset
↑ 1 0 │ 1 │ Set
↑ 1 1 │ Q̄ │ Toggle
Characteristic Equation:
Q(next) = JQ̄ + K̄QTruth Table:
Clk T │ Q(next)
──────────────────
─ X │ Q
↑ 0 │ Q
↑ 1 │ Q̄
"T=1 untuk toggle"
Dari JK: J=K=TContoh 22: 4-bit Register
Circuit:
┌─────┐
D₀ ────┤D Q├──── Q₀
│ │
├─────┤
D₁ ────┤D Q├──── Q₁
│ │
Clk ──▷│> │
├─────┤
D₂ ────┤D Q├──── Q₂
│ │
├─────┤
D₃ ────┤D Q├──── Q₃
└─────┘
Saat clock edge: D₀D₁D₂D₃ → Q₀Q₁Q₂Q₃Contoh 23: 4-bit Shift Register (Kanan)
┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐
Din ───┤D Q├──┤D Q├──┤D Q├──┤D Q├─── Qout
│ │ │ │ │ │ │ │
Clk ──▷│> │ ▷│> │ ▷│> │ ▷│> │
└─────┘ └─────┘ └─────┘ └─────┘
FF₃ FF₂ FF₁ FF₀
Operasi:
Clock 0: Din=1 → [1 0 0 0]
Clock 1: Din=1 → [1 1 0 0]
Clock 2: Din=0 → [0 1 1 0]
Clock 3: Din=0 → [0 0 1 1]Contoh 24: 3-bit Ripple Counter
Circuit:
┌──┐ ┌──┐ ┌──┐
Clk ──▷│T │Q──▷│T │Q──▷│T │Q
│ │ │ │ │ │
└──┘ └──┘ └──┘
Q₀ Q₁ Q₂
Sequence (0-7):
Count │ Q₂ Q₁ Q₀
──────┼─────────
0 │ 0 0 0
1 │ 0 0 1
2 │ 0 1 0
3 │ 0 1 1
4 │ 1 0 0
5 │ 1 0 1
6 │ 1 1 0
7 │ 1 1 1
0 │ 0 0 0 (repeat)Contoh 25: 3-bit Synchronous Up Counter
Design menggunakan JK FF:
Q₂ Q₁ Q₀ │ Q₂⁺ Q₁⁺ Q₀⁺ │ J₂ K₂ J₁ K₁ J₀ K₀
─────────┼────────────┼──────────────────
0 0 0 │ 0 0 1 │ 0 X 0 X 1 X
0 0 1 │ 0 1 0 │ 0 X 1 X X 1
0 1 0 │ 0 1 1 │ 0 X X 0 1 X
0 1 1 │ 1 0 0 │ 1 X X 1 X 1
1 0 0 │ 1 0 1 │ X 0 0 X 1 X
1 0 1 │ 1 1 0 │ X 0 1 X X 1
1 1 0 │ 1 1 1 │ X 0 X 0 1 X
1 1 1 │ 0 0 0 │ X 1 X 1 X 1
Equations (dari K-Map):
J₀ = 1, K₀ = 1
J₁ = Q₀, K₁ = Q₀
J₂ = Q₁Q₀, K₂ = Q₁Q₀Contoh 26: Counter 0-9
Modulo-10 counter
Hanya count: 0000 → 1001 (0-9)
Clear saat mencapai 10 (1010)
Logic tambahan:
Clear = Q₃·Q₁
(aktif saat 1010, reset ke 0000)Contoh 27: Sequence Detector "101"
Deteksi urutan 101 dalam bitstream
State Diagram:
0
┌──────────┐
↓ │
S0 ─1→ S1 ─0→ S2 ─1→ S3 (output=1)
↑ │ │
│ └─1───────┘
└──────0─────────┘
State Table:
Present │ Input │ Next │ Output
State │ │ State │
────────┼───────┼───────┼────────
S0 │ 0 │ S0 │ 0
S0 │ 1 │ S1 │ 0
S1 │ 0 │ S2 │ 0
S1 │ 1 │ S1 │ 0
S2 │ 0 │ S0 │ 0
S2 │ 1 │ S3 │ 1
S3 │ 0 │ S2 │ 0
S3 │ 1 │ S1 │ 0
State Assignment (2-bit):
S0 = 00
S1 = 01
S2 = 10
S3 = 11Implementasi dengan D FF:
State Encoding:
Q₁ Q₀ = State
Next State Equations (dari K-map):
D₁ = Q₁Q₀X̄ + Q̄₁QX
D₀ = Q̄₁Q̄₀X + Q₁QX̄
Output Equation:
Z = Q₁Q₀XSederhanakan:
Minimalisasi F(A,B,C,D) = Σ(0,1,3,7,8,9,11,15)
Desain Full Subtractor (A - B - Borrow_in)
Desain modulo-6 synchronous counter menggunakan JK flip-flops
Desain FSM untuk vending machine:
✓ Hafalkan powers of 2: 2⁰=1, 2¹=2, 2²=4, ..., 2¹⁰=1024 ✓ Binary ↔ Hex: kelompokkan 4 bit ✓ Praktik konversi setiap hari
✓ Hafalkan hukum dasar + De Morgan ✓ Latih simplifikasi bertahap ✓ Gunakan K-Map untuk 3+ variabel
✓ Pahami perbedaan Latch vs Flip-Flop ✓ Pahami timing: level vs edge triggered ✓ Untuk counter: mulai dari T-FF, JK-FF untuk kontrol lebih
✓ Mulai dari truth table ✓ Buat SOP/POS ✓ Simplifikasi dengan K-Map ✓ Implementasi dengan gates
Selamat Belajar Digital Logic! 🔌⚡
Practice makes perfect - Kerjakan banyak soal!