<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: ![](https://i.imgur.com/rk5Q63L.png#center =500x) ::: :::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> ![](https://i.imgur.com/OL4UXQ5.png) <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$ :::