Belajar Matematika Diskrit Live #4
Surjection (surjektive) dan Bijection (bijektive)
Fungsi (function) adalah aturan atau rules yang memungkinkan setiap element dari suatu himpunan (domain) ke tepat suatu element dari sebuah himpunan (kodomain)
f : A -> B
keterangan: f (fungsi), a (domain), b (kodomain)
contoh: A = {1,2,3}, B = {x,y,z}
f(1) = x, f(2) = y, f(3) = z
Surjection (fungsi surjektif / onto function)
Fungsi surjektif adalah fungsi yang semua anggota kodomainnya memiliki pasangan di domain.
Contoh 1 : 5 orang (A) dan 5 kursi (B), F siapa yang duduk di kursi yang mana
1 -> e
2 -> r
3 -> t
4 -> y
5 -> uContoh 2 : 3 orang (A) A = {1,2,3} dan 2 kursi (B) B = {x,y}
f(1) = x
f(2) = y
f(3) = y , kodomain double tidak masalah, yang penting surjektif lah pokoknya.
Bijection (fungsi bijektif / on-to-one correspondence function)
Fungsi bijektif adalah fungsi yang bersifat satu-satu (injektif) dan onto (surjektif) secara bersamaan
Injektif (Satu-satu / One-to-one)Artinya: Setiap elemen di domain (input) dipetakan ke elemen yang berbeda di kodomain (output). Tidak ada dua elemen berbeda di domain yang punya hasil sama.
contoh injektif: A = {1,2}, B = {x,y,z}
f(1) = x, f(2) = y, kodomain z tidak digunakan, yang penting injektif lah pokoknya.
contoh bijektif: A = {1,2,3}, B = {x,y,z}
f(1) = x, f(2) = y, f(3) = z,
Setiap input menghasilkan output yang unik (injektif).
Semua kemungkinan output terpakai (surjektif).
Contoh Soal:
1. Dikasih nilai
A = {1,2,3,4}
B = {a,b,c}
f = A -> B
f(1) = a
f(2) = b
f(3) = c
f(4) = b
Tentukan:
a. apakah injekrif?
b. apakah surjektif?
c. apakah bijektif?
Jawaban:
a. false: bukan injektif karena injektif output ke kodomain nya tidak boleh ada yang sama (unik)
b. true: surjektif, karena output di kodomain semua terisi, walaupun double tidak masalah
c. false: bukan bijektif karena unsur injektifnya tidak terpenuhi alias false. bijektif harus memenuhi injektif dan surjektif.
Contoh code python nya:
def apakah_injektif(mapping) -> bool: output = list(mapping.values()) return len(output) == len(set(output)) def apakah_surjektif(mapping, kodomain) -> bool: output = set(mapping.values()) return output == set(kodomain) if __name__ == "__main__": A = [1, 2, 3, 4] B = ["a", "b", "c"] f = {1: 'a', 2: 'b', 3: 'c', 4: 'b'} print(f"apakah injektif: {apakah_injektif(f)}") print(f"apakah surjektif: {apakah_surjektif(f, B)}") print(f"apakah bijektif: {apakah_injektif(f) and apakah_surjektif(f, B)}")