<style>
img[src*='#center'] {
display: block;
margin: auto;
}
</style>
# Bab 3P. Fungsi
## 3.1 Menuliskan Fungsi dalam Python
### Menuliskan Fungsi dalam Bentuk Relasi
Contoh berikut adalah kode Python untuk membuat tabel pemetaan dan mencari range dari suatu fungsi yang didefinisikan dalam himpunan pasangan terurut seperti halnya sebuah relasi.
:::info
***Contoh 1. Mencari Range dari Fungsi***
Misalkan $A = \{1, 2, 3, ..., 7\}$ dan $B = \{4, 5, 6, ..., 10\}$ dan $f: A \rightarrow B$ didefinisikan dengan $f = \{(1, 4), (2, 5), (3, 6), (4, 7), (5, 4), (6, 5), (7, 7)\}$. Buat tabel pemetaan $f$ dan tentukan range dari $f$.
***Solusi:***
```python
A = {1, 2, 3, 4, 5, 6, 7} # Domain
B = {4, 5, 6, 7, 8, 9, 10} # Kodomain
# Fungsi f
f = {(1, 4), (2, 5), (3, 6), (4, 7), (5, 4), (6, 5), (7, 7)}
# Buat tabel pemetaan
print(f'| {"x":^5s} | {"f(x)":^5s} |')
for elm in sorted(f):
print(f'| {elm[0]:5d} | {elm[1]:5d} |')
print()
# Cari himpunan jelajah (range)
Range = set()
for elm in sorted(f):
Range.add(elm[1])
print('Range =', Range)
```
Kode di atas akan memberikan output:
```shell
| x | f(x) |
| 1 | 4 |
| 2 | 5 |
| 3 | 6 |
| 4 | 7 |
| 5 | 4 |
| 6 | 5 |
| 7 | 7 |
Range = {4, 5, 6, 7}
```
:::
### Menuliskan Fungsi dalam Bentuk Formula
Fungsi didefinisikan dalam Python menggunakan format syntax berikut:
```python
def <nama_fungsi>(x):
return <rumus_dari_f(x)>
```
Sebagai contoh, misalkan $f(x) = x + 1$, kita dapat mendefinisikan fungsi tersebut dalam Python seperti berikut:
```python
def f(x):
return x + 1
```
:::info
***Contoh 2. Membuat Tabel Pemetaan dari Fungsi***
Fungsi $f: \{1, 2, 3, 4, 5\} \mapsto \mathbb{N}$ mempunyai rumus:
$$
f(x) = x^2
$$
Sajikan $f$ dalam tabel!
***Solusi:***
```python
# Definisi fungsi f
def f(x):
return x ** 2
A = {1, 2, 3, 4, 5} # Domain
# Buat tabel pemetaan
print(f'| {"x":^5s} | {"f(x)":^5s} |')
for x in A:
y = f(x)
print(f'| {x:5d} | {y:5d} |')
print()
```
Output dari kode di atas:
```shell
| x | f(x) |
| 1 | 1 |
| 2 | 4 |
| 3 | 9 |
| 4 | 16 |
| 5 | 25 |
```
:::
## 3.2 Grafik Fungsi
Untuk membuat plot atau menggambar grafik suatu fungsi dalam Python, kita memerlukan module `numpy` dan `matplotlib`. Kedua module tersebut harus diinstall terlebih dahulu menggunakan `pip`. Pastikan komputer Anda sudah terinstalasi `pip`.
Untuk menginstalasi module `numpy` dan `matplotlib`, ketikkan perintah berikut pada command prompt:
```
pip install numpy matplotlib
```
:::info
***Contoh 3. Membuat Grafik Fungsi***
Kode berikut membuat grafik fungsi $f(x) = x^2$.
```python=
import numpy as np
import sympy
import matplotlib.pyplot as plt
# Definisi fungsi f
def f(x):
return x ** 2
x = np.linspace(-10, 10) # Subset dari domain untuk cakupan sumbu x grafik
y = f(x)
plt.figure()
plt.plot(x, y, label='f(x)')
plt.title('Grafik Fungsi f(x) = x^2') # Judul grafik
plt.xlabel('x') # Label sumbu x
plt.ylabel('f(x)') # Label sumbu y
plt.show()
```
Penjelasan kode di atas:
- Baris 1 mengimpor module `numpy` dan menamainya dengan alias `np`.
- Baris 2 mengimpor module `sympy`.
- Baris 3 mengimpor submodule `matplotlib.pylot` dan menamainya dengan alias `plt`.
- Baris 5 s.d 7 adalah definisi fungsi $f(x) = x^2$.
- Baris 9 membuat rentang sumbu `x` dari -10 s.d 10.
- Baris 10 menetapkan variabel `y` dengan nilai-nilai bayangan dari fungsi f untuk nilai-nilai pada rentang sumbu `x`.
- Baris 12 membuat object gambar.
- Baris 13 meng-plot nilai-nilai`x` dan `y` pada grafik.
- Baris 14 memberikan judul plot.
- Baris 15 melabeli sumbu x dengan `'x'.
- Baris 16 melabeli sumbu y dengan `'f(x)'`
- Baris 17 manempilkan grafik.
Output dari kode di atas:

:::
:::info
***Contoh 4. Membuat grafik fungsi $f(x) = 2x+1$***
Grafik fungsi $2x+1$ dimana untuk $-5 \leq x \leq 5$.
```python=
import numpy as np
import matplotlib.pyplot as plt
# Definisi fungsi f
def f(x):
return 2*x + 1
x = np.linspace(-5,5,100)
y = f(x)
plt.plot(x,y)
plt.xlabel('x')
plt.ylabel('f(x)')
plt.title("Grafik fungsi 2x + 1")
plt.show()
```
Output dari kode di atas
<br>

<br>
:::
## 3.3 Fungsi-fungsi Khusus
### Fungsi Floor dan Ceiling pada Python
Pada module standard `math` telah tersedia fungsi `floor` dan fungsi `ceil`.
:::info
***Contoh 5. Menggunakan Fungsi `floor()`***
```python
# Import library math
import math
# Fungsi floor untuk sejumlah bilangan
print('f(0.3) =', math.floor(0.3))
print('f(1.4) =', math.floor(1.4))
print('f(2.8) =', math.floor(2.8))
print('f(3.7) =', math.floor(3.7))
```
Output dari kode di atas:
```
f(0.3) = 0
f(1.4) = 1
f(2.8) = 2
f(3.7) = 3
```
:::
:::info
***Contoh 6. Menggunakan Fungsi `ceil()`***
```python
# Import library math
import math
# Fungsi ceil untuk sejumlah bilangan
print('f(0.3) =', math.ceil(0.3))
print('f(1.4) =', math.ceil(1.4))
print('f(2.8) =', math.ceil(2.8))
print('f(3.7) =', math.ceil(3.7))
```
Output dari kode di atas:
```
f(0.3) = 1
f(1.4) = 2
f(2.8) = 3
f(3.7) = 4
```
:::
### Fungsi Faktorial
Fungsi faktorial dapat dituliskan definisinya dalam Python seperti berikut:
```python
def faktorial(n):
if n == 1:
return 1
else:
return n * faktorial(n-1)
```
:::info
***Contoh 7. Menggunakan Fungsi Faktorial***
Kode di bawah mencontohkan fungsi faktorial:
```python
# Definisi Fungsi Faktorial
def faktorial(n):
if n == 1:
return 1
else:
return n * faktorial(n-1)
# Mencari Faktorial
print('1! =', faktorial(1))
print('2! =', faktorial(2))
print('3! =', faktorial(3))
print('4! =', faktorial(4))
print('5! =', faktorial(5))
print('6! =', faktorial(6))
```
Output dari kode di atas:
```
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
```
:::
## 3.5 Bekerja dengan Fungsi secara Simbolis
Kita dapat bekerja dengan fungsi secara simbolis dalam Python. Untuk bekerja dengan fungsi dalam bentuk simbol dalam Python, kita menggunakan module `sympy`.
Untuk menginstalasi module `numpy`, ketikkan perintah berikut pada command prompt:
```
pip install sympy
```
Berikut adalah contoh penggunaan module `sympy` untuk mendefinisikan sebuah fungsi secara simbolis:
```python=
import sympy
x = sympy.Symbol('x')
f = x**2 + 1
```
Penjelasan kode di atas:
- Baris 1: mengimpor module `sympy`.
- Baris 3: menggunakan fungsi `Symbol` pada module `sympy` untuk mendefinisikan variabel `x` yang akan kita akan gunakan untuk mendefinisikan fungsi `f`.
- Baris 4: mendefinisikan fungsi $f(x) = x^2 + 1$ secara simbolis.
Untuk mendapatkan nilai $f(x)$ dari suatu nilai $x$ kita dapat menggunakan method `subs` pada fungsi yang didefinisikan secara simbolis. Kode berikut menggunakan method `subs` untuk menampilkan nilai $f(1)$, $f(2)$, dan $f(3)$ dari fungsi yang didefinisikan sebelumnya:
```python=
print(f.subs(x, 1)) # Output nilai f(1)
print(f.subs(x, 2)) # Output nilai f(2)
print(f.subs(x, 3)) # Output nilai f(3)
```
Penjelasan kode di atas:
- Baris 1: `f.subs(x, 1)` mensubtitusi simbol `x` pada fungsi `f` dengan nilai 1 dan mengevaluasi `f`.
- Baris 1: `f.subs(x, 2)` mensubtitusi simbol `x` pada fungsi `f` dengan nilai 2 dan mengevaluasi `f`.
- Baris 1: `f.subs(x, 3)` mensubtitusi simbol `x` pada fungsi `f` dengan nilai 3 dan mengevaluasi `f`.
:::info
***Contoh 8. Bekerja dengan Fungsi secara Simbolis***
Fungsi $f: \{1, 2, 3, 4, 5\} \mapsto \mathbb{N}$ mempunyai rumus:
$$
f(x) = x^2
$$
Cari $f(1)$, $f(2)$, ..., $f(5)$.
***Solusi:***
Kode Python untuk menyelesaikan persoalan di atas dengan mendefinisikan fungsi $f$ secara simbolis:
```python
import sympy
# Tetapkan x sebagai sebuah simbol
x = sympy.Symbol('x')
# Definisikan f dengan formula yang mengandung simbol x
f = x**2
# Tetapkan Domain
A = {1, 2, 3, 4, 5}
# Print nilai-nilai f
for i in A:
y = f.subs(x, i)
print(f'f({i})= {y}')
print()
```
Output dari kode di atas:
```shell
f(1)= 1
f(2)= 4
f(3)= 9
f(4)= 16
f(5)= 25
```
:::
### Mencari Fungsi Invers Secara Simbolis
Kita dapat menggunakan fungsi `solve` pada module `sympy` untuk mencari fungsi invers dari suatu fungsi.
:::info
***Contoh 9. Fungsi Invers Simbolis***
Kode berikut mencari fungsi invers dari $f(x) = 2x + 6$.
```python
import sympy
x, y = sympy.symbols('x y')
print(sympy.solve(2*x + 6 - y))
```
Output dari kode di atas:
```
[{x: y/2 - 3}]
```
Dari output dapat kita lihat $f^{-1}(x) = {x \over 2} -3$.
:::
### Komposisi Fungsi
Fungsi `compose` pada module `sympy` dapat digunakan untuk mencari komposisi dari dua buah fungsi.
:::info
***Contoh 10. Komposisi Fungsi***
Kode berikut mencontohkan hasil kali fungsi $f \circ g$ dan $g \circ f$ dimana $f(x) = x^2$ dan $g(x) = x + 3$.
```python=
import sympy
x = sympy.symbols('x')
f = x**2
g = x + 3
print('f(g(x)) =', sympy.compose(f,g)) # (f o g)(x) atau f(g(x))
print('g(f(x)) =', sympy.compose(g,f)) # (g o f)(x) atau g(f(x))
```
Output dari kode di atas:
```
f(g(x)) = x**2 + 6*x + 9
g(f(x)) = x**2 + 3
```
Penjelasan kode di atas:
- Baris 1: mengimpor module `sympy`
- Baris 3: menyatakan bahwa `'x'` adalah simbol yang ditugaskan ke variabel `x`
- Baris 4: mendefinisikan `f` adalah fungsi $x^2$
- Baris 5: mendefinisikan `g` adalah fungsi $x + 3$
- Baris 6: mencetak hasil $f \circ g$
- Baris 7: mencetak hasil $g \circ f$
:::