# 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*** 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 x.x.x*** 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 Fungsi Simbolis Kita dapat bekerja dengan fungsi secara simbolis dalam Python. Untuk bekerja dengan fungsi bentuk simbol dalam Python, kita menggunakan module `sympy` dan `numpy`. Module `sympy` adalah library yang digunakan untuk matematika simbolis, dan module `numpy` adalah library yang digunakan untuk bekerja dengan array dan juga memiliki fungsi yang bekerja dalam domain aljabar linier, transformasi fourier, dan matriks. Ikuti langkah-langkah berikut untuk menginstalasi kedua module tersebut. Pertama kita harus menginstalasi module `pip` terlebih dahulu: 1. Download `get-pip.py` pada https://bootstrap.pypa.io/get-pip.py ![](https://i.imgur.com/V4b0DTQ.png) 2. Pada command prompt pindah ke directory tempat `get-pip.py` disimpan (dalam contoh ini kita menyimpannya pada folder Downloads) 3. Pada windows, klik Start dan ketikkan "Manage App Execution Aliases", klik icon tersebut dan matikan Python. ![](https://i.imgur.com/mixPcjM.png) 4. Tutup command prompt. 5. Ketikkan `pip install sympy numpy` pada command prompt. ![](https://i.imgur.com/a2f19N5.png) Anda akan mendapatkan pesan "Sucessfully installed numpy-x.xx.x sympy-x.xx.x" jika berhasil menginstalasi `sympy` dan `numpy`. Berikut adalah contoh-contoh program yang bekerja dengan fungsi. :::info ***Contoh 1. Mencari Domain dan Range dari Suatu Fungsi*** ::: ### Mencari domain, range dari suatu fungsi #### Contoh 1. Mencari domain, range Diketahui Himpunan A = {1, 2, 3, 4, 5, 6, 7} dan B = {4, 5, 6, 7, 8, 9, 10}, membentuk suatu relasi fungsi dengan F = {(1,4), (2,5), (3,6), (4,7), (5,8), (6,9), (7,10)}, carilah domain dan range dari relasi fungsi F tersebut ```python #Pendefinisian himpunan A,B,F serta variabel Domain, Range dan Invers berupa list A = [1, 2, 3, 4, 5, 6, 7] B = [4, 5, 6, 7, 8, 9, 10] F = [[1,4],[2,5],[3,6],[4,7],[5,4],[6,5],[7,7]] Domain = [] Range = [] #Domain for i in range(len(F)): hasil = F[i][0] Domain.append(hasil) #fromkeys()Returns a dictionary with the specified keys and value Domain = list(dict.fromkeys(Domain)) #Mencetak Domain dengan mengganti tipedata menjadi set print("Domain = ",set(Domain)) #Range for j in range(len(F)): hasil1 = A[j] for i in range(len(B)): hasil2 = B[i] Range.append(hasil2) #Mencetak Range dengan mengganti tipedata menjadi set print("Range = ",set(Range)) ``` OUTPUT ``` Domain = {1, 2, 3, 4, 5, 6, 7} Range = {4, 5, 6, 7} ``` ### Membuat Grafik fungsi dengan python #### Contoh 2.Membuat grafik fungsi y = 2x+1 1. Grafik fungsi 2x+1 dimana x={-5,0,1,2,3,4,5} ```python import numpy as np import matplotlib.pyplot as plt x = np.linspace(-5,5,100) y = x*2+1 plt.plot(x,y) plt.xlabel('koordinat x') plt.ylabel('koordinat y') plt.title("diagram 2x-5") plt.show() ``` Penjelasan program * Baris 1 Import library `numpy` untuk membuat data imaginer dan menamakan ulang dengan `np` * Baris 2 mengimport fungsi `pyplot` yang berada dalam module library `matplotlib.pyplot` dan menamakan ulang fungsi tersebut sebagai `plt` digunakan untuk impor fungsi pyplot * Baris 4 membuat data imaginer yang dibentuk menggunakan `np.linspace()` digunakan untuk membuat array dengan nilai dalam interval. * Baris 5 mendefinisikan nilai "y" dimana "y" adalah 2x+1 * Baris 7 untuk memvisualisasikan datanya dengan fungsi `Plt.plot` * Baris 8 memberikan keterangan pada visualisasi diagram untuk koordinat x * Baris 9 memberikan keterangan pada visualisasi diagram untuk koordinat y * Baris 10 memberikan keterangan pada visualisasi judul diagram * Baris 11 menampilkan diagram pada data yang divisualisasikan. OUTPUT ![](https://i.imgur.com/17KlrZE.png) #### Contoh 3. Membuat grafik fungsi $y = x^2 - 5$ 2. Misal carilah grafik fungsi dari $f(x)=x^2-5$ dimana x={-5,0,1,2,3,4,5} ```python import numpy as np import matplotlib.pyplot as plt x = np.linspace(-5,5,100) y = x**2-5 plt.plot(x,y) plt.xlabel('koordinat x') plt.ylabel('koordinat y') plt.title("diagram x^2-5") plt.show() ``` Penjelasan program * Baris 1 Import library `numpy` untuk membuat data imaginer dan menamakan ulang dengan `np` * Baris 2 mengimport fungsi `pyplot` yang berada dalam module library `matplotlib.pyplot` dan menamakan ulang fungsi tersebut sebagai `plt` digunakan untuk impor fungsi pyplot * Baris 4 membuat data imaginer yang dibentuk menggunakan `np.linspace()` digunakan untuk membuat array dengan nilai dalam interval. * Baris 5 mendefinisikan nilai "y" dimana "y" adalah x pangkat 2 dikurangi 5 * Baris 7 untuk memvisualisasikan datanya dengan fungsi `Plt.plot` * Baris 8 memberikan keterangan pada visualisasi diagram untuk koordinat x * Baris 9 memberikan keterangan pada visualisasi diagram untuk koordinat y * Baris 10 memberikan keterangan pada visualisasi judul diagram * Baris 11 menampilkan diagram pada data yang divisualisasikan. OUTPUT ![](https://i.imgur.com/f5wthKx.png) #### Contoh 4. Membuat grafik fungsi $y=x^2$ 2. Grafik fungsi $y = x^2$ dimana x={2, 3, 4, 5, 6, 7, 8, 9, 10} ```python= import numpy as np import matplotlib.pyplot as plt x = np.linspace(2,10,10) y = x**2 plt.plot(x,y) plt.xlabel('ini koordinat x') plt.ylabel('ini koordinat y') plt.title("diagram x^2") plt.show() ``` Penjelasan program * Baris 1 Import library `numpy` untuk membuat data imaginer dan menamakan ulang dengan `np` * Baris 2 mengimport fungsi `pyplot` yang berada dalam module library `matplotlib.pyplot` dan menamakan ulang fungsi tersebut sebagai `plt` digunakan untuk impor fungsi pyplot * Baris 4 membuat data imaginer yang dibentuk menggunakan `np.linspace()` digunakan untuk membuat array dengan nilai dalam interval. * Baris 5 mendefinisikan nilai "y" dimana "y" adalah pangkat 2 dari X * Baris 7 untuk memvisualisasikan datanya dengan fungsi `Plt.plot` * Baris 8 memberikan keterangan pada visualisasi diagram untuk koordinat x * Baris 9 memberikan keterangan pada visualisasi diagram untuk koordinat y * Baris 10 memberikan keterangan pada visualisasi judul diagram * Baris 11 menampilkan diagram pada data yang divisualisasikan. **OUTPUT** ![](https://i.imgur.com/DJgSYws.png) sumber = https://alvinburhani.wordpress.com/2020/10/06/membuat-grafik-fungsi-dengan-python/ https://www.dqlab.id/belajar-python-untuk-hasilkan-visualisasi-data ## Komposisi Fungsi #### Contoh 5. Produk 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(sympy.compose(f,g)) // Memberikan output f(g(x)) print(sympy.compose(g,f)) // Memberikan output g(f(x)) ``` Output dari kode di atas: ``` x**2 + 6*x + 9 x**2 + 3 ``` Penjelasan kode: - 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$ ## Fungsi Invers #### Contoh 6. Fungsi Invers 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: ``` [{x: y/2 - 3}] ``` #### Contoh 7. Fungsi Invers dengan `Eq` dan `solve` Selain menggunakan ```python print(sympy.solve(sympy.Eq(y, (4*x - 7)/(7*x + 3)), x)) [(-3*y - 7)/(7*y - 4)] ``` #### Fungsi floor() dan ceil() pada python Program dibawah ini mencari bilangan bulat dari 1.4 #### Contoh 9. Mencari bilangan bulat dengan floor() ```python #Import library matematika import math #Bulatkan angka ke bawah ke bilangan bulat terdekat y = math.floor(1.4) print(y) ``` OUTPUT ``` 1 ``` #### Contoh 8. Mencari bilangan bulat dengan ceil() ```python #Import library matematika import math #Bulatkan angka ke atas ke bilangan bulat terdekat x = math.ceil(1.4) print(x) ``` OUTPUT ``` 2 ``` sumber = https://dosenit.com/python/fungsi-matematika-di-python ### Fungsi Faktorial #### Contoh 10. Mencari nilai faktorial program dibawah ini mencari nilai faktorial dari 6! ```python # Mendefinisikan fungsi def hitungFaktorial(n): if n == 1: return 1 else: return n * hitungFaktorial(n-1) # Mencari Faktorial 2 print(hitungFaktorial(6)) ``` output ``` 720 ``` ::: Jika sudah mengikuti langkah-langkah pada video tutorial install dan konfigurasi Python3.10 selanjutnya lakukan install untuk library `numpy` 1. Pertama buka folder Python3.10 : ![](https://i.imgur.com/Ey41cav.png) 2. Pada *Address bar* ketikan cmd untuk membuka jendela command prompt ![](https://i.imgur.com/boVRUPn.png) ![](https://i.imgur.com/94XakNX.png) 3. Selanjutnya, ketikan `pip install sympy numpy` pada jendela command prompt untuk menginstall library `simpy` dan `numpy`. ![](https://i.imgur.com/a2f19N5.png)