Materi
Hasil kali Kartesius A × B adalah himpunan semua pasangan berurut (a, b) dengan a anggota A dan b anggota B. Relasi dari A ke B adalah himpunan bagian dari A × B: pasangan yang dipilih karena memenuhi suatu aturan, misalnya “a lebih kecil daripada b”. Fungsi adalah relasi khusus yang memasangkan setiap input dengan tepat satu output. Himpunan input disebut domain, himpunan output yang diizinkan disebut kodomain, dan output dari sebuah input disebut bayangannya.
Dua sifat fungsi ditentukan dengan melihat kodomainnya. Fungsi injektif (satu-satu): setiap anggota kodomain menjadi bayangan paling banyak satu input, jadi tidak ada output yang dipakai dua kali. Fungsi surjektif (pada): setiap anggota kodomain menjadi bayangan paling sedikit satu input, jadi tidak ada output yang terlewat. Fungsi yang injektif sekaligus surjektif disebut bijektif, dan itulah pemasangan satu lawan satu yang sempurna. Sifat ini dipakai saat memeriksa apakah nomor kursi, kode barang, atau nomor induk tidak pernah dipakai ganda dan tidak ada yang tersisa.
Contoh: fungsi dari penonton {Rudi, Sinta, Tomi} ke kursi {1, 2, 3, 4} dengan Rudi → 2, Sinta → 4, Tomi → 1. Fungsi ini injektif karena tidak ada kursi yang dipakai dua orang, tetapi tidak surjektif karena kursi 3 tidak menjadi bayangan siapa pun. Di Python, fungsi berhingga dapat disimpan sebagai dict dengan input sebagai kunci:
kursi = {"Rudi": 2, "Sinta": 4, "Tomi": 1}
print(len(set(kursi.values()))) # 3 kursi berbeda terpakai
print(set(kursi.values()) == {1, 2, 3, 4}) # False