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 -> u

Contoh 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)}")
Previous Post
No Comment
Add Comment
comment url