Grup: Simetri dan Struktur Dasar Alam Semesta
Definisi Formal dan Eksistensi Unik:
Sebuah grup $(G, *)$ memenuhi empat aksioma di atas. Teorema Eksistensi dan Ketunggalan:
- Identitas tunggal: $\exists! e \in G$ (bukti: anggap $e_1, e_2$ identitas, maka $e_1 = e_1*e_2 = e_2$)
- Invers tunggal: $\forall a \in G, \exists! a^{-1} \in G$ (bukti: anggap $b, c$ invers dari $a$, maka $b = be = b(ac) = (ba)c = ec = c$)
Subgrup dan Teorema Lagrange:
Definisi: $H \subseteq G$ adalah subgrup $(H, *)$ jika memenuhi aksioma grup.
Teorema Lagrange (1770): Jika $G$ grup berhingga dan $H$ subgrup $G$, maka $|H|$ membagi $|G|$.
Bukti: Definisikan koset kiri $gH = {gh : h \in H}$. Semua koset memiliki ukuran $|H|$ dan membentuk partisi $G$. Maka $|G| = [G:H] \cdot |H|$ di mana $[G:H]$ adalah indeks.
Konsekuensi Penting:
- Order elemen membagi order grup: $|a| \mid |G|$
- Grup dengan order prima: Pasti siklik dan sederhana
- Persamaan klasifikasi: $|G| = \sum_{i=1}^k [G : C_G(g_i)]$ (kelas konjugasi)
Grup Berhingga yang Penting:
| Grup | Order | Struktur | Sifat | Aplikasi |
|---|---|---|---|---|
| Grup Siklik $C_n$ | $n$ | $\langle a \mid a^n = e \rangle$ | Abelian, sederhana jika $n$ prima | Rotasi diskrit, aritmatika modular |
| Grup Dihidral $D_n$ | $2n$ | $\langle r,s \mid r^n = s^2 = e, srs = r^{-1} \rangle$ | Non-abelian untuk $n>2$ | Simetri poligon |
| Grup Simetri $S_n$ | $n!$ | Permutasi ${1,\dots,n}$ | Non-abelian untuk $n>2$ | Teori penyandian, kombinatorika |
| Grup Alternating $A_n$ | $n!/2$ | Permutasi genap | Sederhana untuk $n>4$ | Teori Galois, mekanika kuantum |
| Grup Kuaternion $Q_8$ | $8$ | ${\pm1,\pm i,\pm j,\pm k}$ | Non-abelian, Hamiltonian | Rotasi 3D, fisika partikel |
Teorema Struktur Grup Abelian Berhingga:
Fundamental Theorem: Setiap grup Abelian berhingga isomorfik dengan produk langsung grup siklik:
G≅Cd1×Cd2×⋯×Cdk
dengan $d_1 \mid d_2 \mid \cdots \mid d_k$ (divisibility condition).
Contoh: Grup Abelian order 12:
- $C_{12} \cong C_3 \times C_4$
- $C_2 \times C_6 \cong C_2 \times C_2 \times C_3$
Representation Theory (Awal):
Untuk grup berhingga $G$, representasi adalah homomorfisme $\rho: G \to GL(V)$ dengan $V$ ruang vektor.
Teorema Maschke: Jika karakteristik tidak membagi $|G|$, setiap representasi tereduksi sempurna.
Contoh: Representasi $S_3$:
- Trivial: $\rho(g) = 1$
- Sign: $\rho(g) = \text{sign}(g)$
- Standar 2D: Permutasi vektor basis
Gelanggang: Struktur dengan Dualitas Penjumlahan-Perkalian 💍
Struktur Ideal dan Gelanggang Faktor:
Definisi Ideal: $I \subseteq R$ adalah ideal jika:
- $(I, +)$ subgrup dari $(R, +)$
- $\forall r \in R, \forall i \in I: r \cdot i \in I$ dan $i \cdot r \in I$
Gelanggang Faktor: $R/I = {r + I : r \in R}$ dengan operasi:
- $(r+I) + (s+I) = (r+s) + I$
- $(r+I) \cdot (s+I) = (r \cdot s) + I$
Teorema Isomorfisme Pertama: Jika $\phi: R \to S$ homomorfisme gelanggang, maka:
Im(ϕ)≅R/Ker(ϕ)
Gelanggang Polinomial dan Aljabar Komutatif:
Gelanggang Polinomial: $R[x] = {a_0 + a_1x + \cdots + a_nx^n : a_i \in R}$
Teorema Hilbert Basis: Jika $R$ gelanggang Noetherian, maka $R[x]$ juga Noetherian.
Gelanggang Lokal: Gelanggang dengan tepat satu ideal maksimal. Sangat penting dalam geometri aljabar.
Gelanggang Matriks dan Aljabar Non-komutatif:
$M_n(R)$: Gelanggang matriks $n \times n$ atas gelanggang $R$.
Sifat: Non-komutatif untuk $n>1$, kecuali $R$ trivial.
Teorema Wedderburn-Artin: Klasifikasi gelanggang Artinian sederhana:
R≅Mn1(D1)×⋯×Mnk(Dk)
dengan $D_i$ gelanggang pembagian.
Lapangan: Kesempurnaan Sistem Aljabar 🌾
Ekstensi Lapangan dan Teori Galois:
Definisi: $F \subseteq E$ adalah ekstensi lapangan, dinotasikan $E/F$.
Derajat: $[E:F] = \dim_F E$ sebagai ruang vektor.
Ekstensi Aljabar: Setiap elemen $E$ adalah akar polinomial atas $F$.
Contoh Penting:
- $\mathbb{C}/\mathbb{R}$: derajat 2, $\mathbb{C} = \mathbb{R}(i)$
- $\mathbb{Q}(\sqrt{2})/\mathbb{Q}$: derajat 2
Teori Galois Klasik:
Grup Galois: $\text{Gal}(E/F) = {\sigma: E \to E \mid \sigma|_F = id, \sigma$ automorfisme$}$
Teorema Fundamental Teori Galois: Untuk ekstensi Galois $E/F$, terdapat korespondensi bijektif:
{Subgrup H⊆Gal(E/F)}↔{Mediatekstensi F⊆L⊆E}
dengan $H \leftrightarrow E^H = {x \in E : \forall h \in H, h(x) = x}$.
Aplikasi Sejarah: Menunjukkan ketidakterselesaian persamaan kuintik dengan radikal (Abel, Galois).
Lapangan Hingga (Galois Fields):
Konstruksi: $\text{GF}(p^n) = \mathbb{F}_{p^n} \cong \mathbb{F}_p[x]/\langle f(x)\rangle$ dengan $f$ irreducibel berderajat $n$.
Struktur Multiplikatif: $\mathbb{F}{p^n}^\times \cong C{p^n-1}$ (grup siklik).
Teorema: Untuk setiap $p^n$, terdapat tepat satu lapangan hingga hingga isomorfisme.
Aplikasi Praktis:
- AES Encryption: Menggunakan $\mathbb{F}_{2^8}$ untuk SubBytes
- Reed-Solomon Codes: $\mathbb{F}_{2^m}$ untuk koreksi error
- Elliptic Curve Cryptography: Kurva atas $\mathbb{F}p$ atau $\mathbb{F}{2^m}$
Aplikasi Kriptografi Modern Secara Mendalam
RSA: Implementasi Lengkap dengan Teori Bilangan:
Teorema Euler: $a^{\phi(n)} \equiv 1 \pmod{n}$ untuk $a$ relatif prima dengan $n$.
Algoritma:
- Pilih prima besar $p, q$ (2048-bit masing-masing)
- $n = pq$, $\phi(n) = (p-1)(q-1)$
- Pilih $e$ dengan $1 < e < \phi(n)$, $\gcd(e, \phi(n)) = 1$
- Hitung $d = e^{-1} \mod \phi(n)$
- Kunci publik: $(n, e)$, Kunci privat: $(n, d)$
Keamanan: Berdasarkan masalah RSA: diberikan $n, e, m^e \mod n$, cari $m$.
Generalization: Multi-prime RSA: $n = p_1 p_2 \cdots p_k$
Elliptic Curve Cryptography (ECC): Matematika Lengkap:
Kurva Eliptik: $y^2 = x^3 + ax + b$ atas lapangan $\mathbb{F}_p$ dengan $4a^3 + 27b^2 \neq 0$.
Grup Titik: $E(\mathbb{F}_p) = {(x,y) \in \mathbb{F}_p^2 : y^2 = x^3 + ax + b} \cup {\mathcal{O}}$
Penjumlahan Titik: Untuk $P = (x_1, y_1)$, $Q = (x_2, y_2)$:
- Jika $P \neq Q$: $\lambda = \frac{y_2 – y_1}{x_2 – x_1}$
- Jika $P = Q$: $\lambda = \frac{3x_1^2 + a}{2y_1}$ (doubling)
- $x_3 = \lambda^2 – x_1 – x_2$, $y_3 = \lambda(x_1 – x_3) – y_1$
Keamanan ECC: Berdasarkan masalah ECDLP: diberikan $P, kP$, cari $k$.
Perbandingan Keamanan:
text
RSA 2048-bit ≈ ECC 224-bit RSA 3072-bit ≈ ECC 256-bit RSA 7680-bit ≈ ECC 384-bit
Kriptografi Berbasis Pasangan (Pairing-Based Cryptography):
Bilinear Pairing: $e: G_1 \times G_2 \to G_T$ dengan:
- Bilinear: $e(aP, bQ) = e(P, Q)^{ab}$
- Non-degenerate: $e(P, Q) \neq 1$ untuk $P, Q \neq 0$
- Computable: Efisien dihitung
Aplikasi: Identity-Based Encryption (IBE), Short signatures, Zero-knowledge proofs.
10.5 Implementasi Komputasional Lanjutan dengan Python
python
import random
from math import gcd
from typing import Tuple, List
import numpy as np
# === GRUP DAN TEORI GRUP ===
class FiniteGroup:
"""Implementasi grup berhingga umum"""
def __init__(self, elements, operation, identity, inverse_func):
self.elements = elements
self.op = operation
self.e = identity
self.inv = inverse_func
self.order = len(elements)
def cayley_table(self) -> np.ndarray:
"""Tabel Cayley untuk grup berhingga kecil"""
n = self.order
table = np.zeros((n, n), dtype=int)
elem_to_idx = {elem: i for i, elem in enumerate(self.elements)}
for i, a in enumerate(self.elements):
for j, b in enumerate(self.elements):
result = self.op(a, b)
table[i, j] = elem_to_idx[result]
return table
def is_abelian(self) -> bool:
"""Cek apakah grup Abelian"""
for a in self.elements:
for b in self.elements:
if self.op(a, b) != self.op(b, a):
return False
return True
def subgroup_generated_by(self, g) -> List:
"""Subgrup siklik dihasilkan oleh g"""
current = g
subgroup = [self.e]
while current != self.e:
subgroup.append(current)
current = self.op(current, g)
# Hitung lagi untuk mendapatkan semua
full_subgroup = []
for i in range(len(subgroup)):
full_subgroup.append(subgroup[i % len(subgroup)])
return sorted(set(full_subgroup), key=lambda x: self.elements.index(x))
# === TEORI BILANGAN UNTUK KRIPTOGRAFI ===
class ModularArithmetic:
"""Aritmatika modular untuk kriptografi"""
@staticmethod
def mod_inverse(a: int, m: int) -> int:
"""Mencari invers modular menggunakan extended Euclidean"""
def extended_gcd(a, b):
if b == 0:
return a, 1, 0
d, x1, y1 = extended_gcd(b, a % b)
x = y1
y = x1 - (a // b) * y1
return d, x, y
d, x, _ = extended_gcd(a, m)
if d != 1:
raise ValueError("Invers tidak ada")
return x % m
@staticmethod
def miller_rabin(n: int, k: int = 5) -> bool:
"""Test primalitas Miller-Rabin"""
if n < 2:
return False
if n in (2, 3):
return True
if n % 2 == 0:
return False
# Tulis n-1 = 2^s * d
s = 0
d = n - 1
while d % 2 == 0:
s += 1
d //= 2
for _ in range(k):
a = random.randint(2, n - 2)
x = pow(a, d, n)
if x in (1, n - 1):
continue
for _ in range(s - 1):
x = pow(x, 2, n)
if x == n - 1:
break
else:
return False
return True
@staticmethod
def generate_large_prime(bits: int = 512) -> int:
"""Generate bilangan prima besar untuk RSA"""
while True:
# Pastikan bilangan ganjil dan bit tertinggi = 1
p = random.getrandbits(bits)
p |= (1 << (bits - 1)) | 1 # Set bit tertinggi dan terendah
if ModularArithmetic.miller_rabin(p):
return p
# === IMPLEMENTASI RSA LENGKAP ===
class RSA:
"""Implementasi lengkap RSA dengan padding"""
def __init__(self, key_size: int = 2048):
self.key_size = key_size
self.p = ModularArithmetic.generate_large_prime(key_size // 2)
self.q = ModularArithmetic.generate_large_prime(key_size // 2)
self.n = self.p * self.q
self.phi = (self.p - 1) * (self.q - 1)
self.e = 65537 # Fermat prime ke-4, umum digunakan
self.d = ModularArithmetic.mod_inverse(self.e, self.phi)
def public_key(self) -> Tuple[int, int]:
return (self.n, self.e)
def private_key(self) -> Tuple[int, int]:
return (self.n, self.d)
def encrypt(self, m: int) -> int:
"""Enkripsi: c = m^e mod n"""
return pow(m, self.e, self.n)
def decrypt(self, c: int) -> int:
"""Dekripsi: m = c^d mod n"""
return pow(c, self.d, self.n)
def sign(self, message_hash: int) -> int:
"""Sign: s = hash(m)^d mod n"""
return pow(message_hash, self.d, self.n)
def verify(self, message_hash: int, signature: int) -> bool:
"""Verify: hash(m) == s^e mod n"""
return message_hash == pow(signature, self.e, self.n)
# === GRUP ELIPTIK DAN ECC ===
class EllipticCurve:
"""Implementasi kurva eliptik untuk ECC"""
def __init__(self, p: int, a: int, b: int):
self.p = p
self.a = a
self.b = b
# Pastikan kurva non-singular
if (4 * pow(a, 3, p) + 27 * pow(b, 2, p)) % p == 0:
raise ValueError("Kurva singular")
def is_on_curve(self, point) -> bool:
"""Cek apakah titik ada di kurva"""
if point is None: # Titik tak hingga
return True
x, y = point
return (y * y) % self.p == (pow(x, 3, self.p) + self.a * x + self.b) % self.p
def add(self, P, Q):
"""Penjumlahan titik pada kurva eliptik"""
if P is None:
return Q
if Q is None:
return P
x1, y1 = P
x2, y2 = Q
if x1 == x2 and y1 != y2:
return None # Titik tak hingga
if P != Q:
# λ = (y2 - y1) * inv(x2 - x1)
m = (y2 - y1) * ModularArithmetic.mod_inverse(x2 - x1, self.p)
else:
# λ = (3x1² + a) * inv(2y1)
m = (3 * pow(x1, 2, self.p) + self.a) * \
ModularArithmetic.mod_inverse(2 * y1, self.p)
m %= self.p
x3 = (m * m - x1 - x2) % self.p
y3 = (m * (x1 - x3) - y1) % self.p
return (x3, y3)
def scalar_mult(self, k: int, P):
"""Perkalian skalar: kP menggunakan double-and-add"""
result = None
addend = P
while k:
if k & 1:
result = self.add(result, addend)
addend = self.add(addend, addend)
k >>= 1
return result
# === DEMONSTRASI KRIPTOGRAFI ===
def demonstrate_crypto():
print("=== DEMONSTRASI KRIPTOGRAFI BERBASIS ALJABAR ===")
# 1. RSA Demonstration
print("\n1. RSA ENCRYPTION (Key size: 1024-bit)")
rsa = RSA(1024)
message = 123456789
encrypted = rsa.encrypt(message)
decrypted = rsa.decrypt(encrypted)
print(f"Pesan asli: {message}")
print(f"Terenkripsi: {encrypted}")
print(f"Didekripsi: {decrypted}")
print(f"Berhasil: {message == decrypted}")
# 2. Elliptic Curve Demonstration
print("\n2. ELLIPTIC CURVE CRYPTOGRAPHY")
# Gunakan kurva standar secp256k1 (Bitcoin curve)
p = 2**256 - 2**32 - 977
a = 0
b = 7
curve = EllipticCurve(p, a, b)
# Generator point untuk secp256k1
G = (
0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798,
0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8
)
# Private key (random)
private_key = random.randint(1, p-1)
# Public key = private_key * G
public_key = curve.scalar_mult(private_key, G)
print(f"Private key: {hex(private_key)[:20]}...")
print(f"Public key: ({hex(public_key[0])[:20]}..., {hex(public_key[1])[:20]}...)")
# 3. Group Theory Demonstration
print("\n3. GROUP THEORY IN ACTION")
# Grup simetri segitiga sama sisi (D3 ≅ S3)
print("Grup simetri segitiga (D3) memiliki 6 elemen:")
print("Rotasi: 0°, 120°, 240°")
print("Refleksi: 3 sumbu simetri")
if __name__ == "__main__":
demonstrate_crypto()
Aljabar Homologi dan Topologi Aljabar (Advanced)
Complexes dan Homology:
Complex Rantai: $\cdots \to C_{n+1} \xrightarrow{\partial_{n+1}} C_n \xrightarrow{\partial_n} C_{n-1} \to \cdots$ dengan $\partial_n \circ \partial_{n+1} = 0$
Grup Homologi: $H_n = \text{Ker}(\partial_n)/\text{Im}(\partial_{n+1})$
Aplikasi: Mengklasifikasikan ruang topologi, menghitung jumlah “lubang” dimensi-n.
K-Theory:
Grup K: Untuk gelanggang $R$, $K_0(R)$ adalah grup Grothendieck dari modul proyektif hingga.
Aplikasi: Teori indeks Atiyah-Singer, klasifikasi ruang vektor bundel.
Roadmap Pembelajaran 6 Bulan
Bulan 1-2: Fondasi Grup
- Minggu 1-2: Definisi grup, contoh, subgrup
- Minggu 3-4: Koset, teorema Lagrange, grup faktor
- Minggu 5-6: Homomorfisme, isomorfisme, teorema isomorfisme
- Minggu 7-8: Grup permutasi, grup dihedral, produk langsung
Bulan 3-4: Gelanggang dan Modul
- Minggu 1-2: Definisi gelanggang, contoh, homomorfisme
- Minggu 3-4: Ideal, gelanggang faktor, domain integral
- Minggu 5-6: Gelanggang polinomial, gelanggang Euklidean
- Minggu 7-8: Modul, modul bebas, rank
Bulan 5-6: Lapangan dan Aplikasi
- Minggu 1-2: Definisi lapangan, ekstensi lapangan
- Minggu 3-4: Lapangan hingga, teori Galois dasar
- Minggu 5-6: Aplikasi kriptografi (RSA, ECC)
- Minggu 7-8: Aplikasi teori coding, proyek akhir
Sumber Belajar Rekomendasi
Teksbook Standar:
- Pemula: A Book of Abstract Algebra – Charles Pinter
- Menengah: Algebra – Michael Artin
- Lanjutan: Abstract Algebra – David Dummit & Richard Foote
Online Resources:
- MIT OpenCourseWare: 18.701 Algebra I
- Harvard Extension: Abstract Algebra (Benedict Gross)
- Visual Group Theory – Nathan Carter (buku dengan visualisasi luar biasa)
Software dan Tools:
- SageMath: Untuk komputasi aljabar abstrak
- GAP: Group, Algorithms, Programming
- Magma: Sistem aljabar komputasional
Kesimpulan: Aljabar Abstrak sebagai Fondasi Sains Modern
Aljabar abstrak bukan hanya matematika murni, tetapi bahasa universal untuk memahami struktur dalam:
- Kriptografi: Mengamankan komunikasi digital
- Fisika Kuantum: Menggambarkan simetri partikel elementer
- Ilmu Komputer: Teori automata, kompleksitas komputasional
- Kimia: Simetri molekul, kristalografi
- Biologi: Struktur protein, analisis filogenetik
Kata Penutup dari Para Matematikawan:
“The study of algebra is not only the study of x’s and y’s; it is the study of the structure of thought itself.” – Israel Gelfand
Pertanyaan Reflektif untuk Anda:
- Struktur aljabar apa yang paling menarik bagi Anda?
- Apakah Anda melihat pola aljabar dalam bidang studi/pekerjaan Anda?
- Bagaimana aljabar abstrak dapat membantu memecahkan masalah dunia nyata?
Saya siap memandu Anda lebih dalam ke topik tertentu atau membantu Anda memulai proyek implementasi praktis!
