Tema
MODUL PRAKTIKUM MATA KULIAH
KOMPUTASI NUMERIK
MODUL 2: EKSPANSI DERET TAYLOR, FOURIER, DAN KONVERGENSI
JURUSAN TEKNIK KOMPUTER DAN INFORMATIKA
POLITEKNIK NEGERI BANDUNG
2026
LEMBAR PERSETUJUAN
EKSPANSI DERET TAYLOR, FOURIER, DAN KONVERGENSI
| Proses | Jabatan | Nama | Tanda Tangan |
|---|---|---|---|
| Disusun oleh | Pengampu Praktikum Mata Kuliah Komputasi Numerik | ||
| Diperiksa oleh | Ketua Kelompok Bidang Keahlian (KBK) Multimedia | ||
| Disahkan oleh | Ketua Program Sarjana Terapan Teknik Informatika |
PUBLISHED BY
Jurusan Teknik Komputer & Informatika Politeknik Negeri Bandung
Jl. Gegerkalong Hilir, Desa Ciwaruga, Kecamatan Parongpong, Kabupaten Bandung Barat, Jawa Barat 40559
Copyright © 2026 by JTK POLBAN
All rights reserved. No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written permission of the publisher.
| Penanggung jawab | : Iwan Awaludin |
| Penanggung jawab | : Muhammad Rizqi Sholahuddin |
| Tim Penulis | : Tim Praktikum Komputasi Numerik |
KATA PENGANTAR
Puji syukur ke hadirat Tuhan Yang Maha Esa, karena berkat karunia dan rida-Nya "EKSPANSI DERET TAYLOR, FOURIER, DAN KONVERGENSI" telah selesai disusun.
Penyusunan "EKSPANSI DERET TAYLOR, FOURIER, DAN KONVERGENSI" ini bertujuan untuk memberikan petunjuk dan prosedur operasional baku (POB) mengenai proses kegiatan praktikum, mulai dari tahap persiapan, pelaksanaan, pelaporan, dan evaluasi untuk penilaian. Melalui modul ini diharapkan proses praktikum dapat mudah dipahami, baik oleh mahasiswa dan dosen di lingkungan Jurusan Teknik Komputer dan Informatika Politeknik Negeri Bandung.
Jika Modul 1 membahas berapa besar galat yang dihasilkan komputer, Modul 2 ini membahas bagaimana galat tersebut sengaja "direkayasa" agar terkendali. Secara sederhana, matematika menyediakan fungsi mulus seperti
Semoga modul ini bermanfaat untuk memperkuat pelaksanaan pengajaran di Jurusan Teknik Komputer & Informatika Politeknik Negeri Bandung, sehingga transparansi dan akuntabilitas kinerja bidang akademik dapat tercapai.
Bandung, 2026
DAFTAR ISI
| Judul | Halaman |
|---|---|
| LEMBAR PERSETUJUAN | i |
| KATA PENGANTAR | iii |
| DAFTAR ISI | iv |
| DAFTAR GAMBAR | v |
| DAFTAR TABEL | vi |
| IDENTITAS MATA KULIAH, PROGRAM STUDI DAN KURIKULUM | vii |
| CAPAIAN PEMBELAJARAN | viii |
| BAGIAN I. BAHAN KAJIAN | 1 |
| I.1. Penggunaan Pedoman | 1 |
| I.2. Ruang Lingkup | 1 |
| I.3. Teknologi | 1 |
| I.4. Studi Kasus | 2 |
| I.5. Konsep yang Digunakan | 2 |
| BAGIAN II. PENYIAPAN PELAKSANAAN PRAKTIKUM (PREPARATION) | 3 |
| II.1. Peralatan Praktikum | 3 |
| II.2. Keamanan & Keselamatan Kerja | 4 |
| BAGIAN III. PROSEDUR PELAKSANAAN PRAKTIKUM (STEP BY STEP) | 6 |
| III.1. Teori Singkat: Deret Taylor, Fourier, dan Konvergensi | 6 |
| III.2. Environment & Setup Praktikum | 8 |
| III.3. Task I: Implementasi Deret Taylor sin(x) | 9 |
| III.4. Task II: Analisis Laju Konvergensi | 11 |
| III.5. Task III: Deret Fourier Gelombang Persegi & Fenomena Gibbs | 13 |
| III.6. Task IV: Komputasi Koefisien Fourier Secara Numerik | 15 |
| III.7. Kesimpulan Praktikum | 17 |
| III.8. Tugas Praktikum | 18 |
| III.9. Soal Latihan HOTS (Pengayaan) | 19 |
| BAGIAN IV. MEDIA DAN MEKANISME PENGUMPULAN | 21 |
| BAGIAN V. PEMBAHASAN DAN EVALUASI HASIL PRAKTIKUM | 22 |
| DAFTAR PUSTAKA | 23 |
| LAMPIRAN | 24 |
DAFTAR GAMBAR
Gambar 1. Aproksimasi Deret Taylor sin(x) pada Titik Ekspansi x₀ = 0
Gambar 2. Laju Konvergensi Deret Taylor e^x pada x = 1 dan x = 2
Gambar 3. Rekonstruksi Gelombang Persegi dengan Deret Fourier
Gambar 4. Fenomena Gibbs di Sekitar Diskontinuitas
DAFTAR TABEL
Tabel 1. Pemetaan Capaian Pembelajaran Mata Kuliah (CPMK) Terhadap Modul Praktikum Komputasi Numerik
Tabel 2. Suku-suku Deret Maclaurin Fungsi Dasar
Tabel 3. Galat Absolut Aproksimasi sin(x) untuk Beberapa Titik dan Orde
Tabel 4. Rasio Galat Antar Iterasi Deret e^x di x = 1
Tabel 5. Nilai Maksimum Rekonstruksi Fourier (Overshoot Gibbs)
Tabel 6. Ringkasan Perbandingan Deret Taylor dan Deret Fourier
Tabel 7. Standar Penamaan Proyek dan Berkas Pengumpulan Praktikum Komputasi Numerik
Tabel 8. Rubrik dan Matriks Kriteria Penilaian Evaluasi Praktikum
IDENTITAS MATA KULIAH, PROGRAM STUDI DAN KURIKULUM
| Atribut | Keterangan |
|---|---|
| Mata Kuliah | : Komputasi Numerik (Praktikum) |
| Mata Kuliah (Inggris) | : Numerical Computing (Practicum) |
| Kode Mata Kuliah | : 25TI3101 |
| SKS | : 3 (2 Teori, 1 Praktikum) |
| Sifat Pengambilan | : Wajib |
| Bentuk Pembelajaran | : Tutorial, Praktik |
| Metode Pembelajaran | : Problem Based Learning, Project Based Learning |
| Media | : Offline / Daring (Google Colab) |
| Semester | : V |
| Kelompok Mata Kuliah | : Mata Kuliah KBK Multimedia |
| Program Pendidikan | : Sarjana Terapan (D-4) Prodi Teknik Informatika |
| Jurusan | : Teknik Komputer & Informatika |
| Penyusun | : Iwan Awaludin |
CAPAIAN PEMBELAJARAN
Tabel 1. Pemetaan Capaian Pembelajaran Mata Kuliah (CPMK) Terhadap Modul Praktikum Komputasi Numerik
| CAPAIAN PEMBELAJARAN MATA KULIAH | INTEGRASI DENGAN MODUL PRAKTIKUM |
|---|---|
| CPMK 1 Mahasiswa mampu menjelaskan konsep galat numerik, galat pemotongan, dan galat pembulatan dalam komputasi. | MODUL 1 |
| CPMK 2 Mahasiswa mampu menerapkan algoritma numerik untuk menyelesaikan masalah matematika yang kompleks. | MODUL 3, 4, 5, 6 |
| CPMK 3 Mahasiswa mampu menganalisis kestabilan, akurasi, dan konvergensi suatu metode numerik. | MODUL 2, 3, 5, 6 |
| CPMK 4 Mahasiswa mampu mengimplementasikan metode numerik menggunakan bahasa pemrograman. | MODUL 2, 4, 5, 8 |
| CPMK 5 Mahasiswa mampu menyelesaikan permasalahan rekayasa dan sains secara numerik dengan pendekatan yang sistematis dan kritis. | MODUL 7, 9, 10, 11 |
BAGIAN I. BAHAN KAJIAN
I.1. Penggunaan Pedoman
Pedoman ini memberikan instruksi sistematis mengenai tata cara persiapan, pengoperasian, penyelesaian tugas praktikum ekspansi deret Taylor dan Fourier untuk mata kuliah Komputasi Numerik, hingga mekanisme evaluasi. Baca BAGIAN II sebelum praktikum dimulai, kerjakan BAGIAN III secara berurutan dari Task I, lalu kumpulkan hasil pekerjaan sesuai BAGIAN IV.
I.2. Ruang Lingkup
Kegiatan mencakup implementasi deret Taylor/Maclaurin (Taylor/Maclaurin series) untuk fungsi eksponensial dan trigonometri, pengukuran laju konvergensi (rate of convergence) melalui rasio galat (error ratio) antar iterasi, pengaruh jarak titik evaluasi terhadap titik ekspansi (expansion point), rekonstruksi gelombang persegi (square wave) dengan deret Fourier beserta fenomena Gibbs (Gibbs phenomenon), dan komputasi numerik koefisien Fourier (Fourier coefficients) menggunakan jumlah Riemann (Riemann sum).
I.3. Teknologi
Berikut adalah teknologi yang digunakan pada modul praktikum ini:
- Bahasa Pemrograman Python (versi 3.10 atau 3.11).
- Google Colaboratory (Google Colab), yaitu lingkungan komputasi berbasis cloud yang tampilannya seperti Jupyter Notebook, atau Jupyter Notebook / JupyterLab yang terinstal lokal.
- Library NumPy, terpasang otomatis pada Google Colab atau via
pip install numpy. - Library Matplotlib untuk visualisasi hasil (
pip install matplotlib). - Peramban modern (Google Chrome / Mozilla Firefox) untuk mengakses Google Colab.
I.4. Studi Kasus
Mahasiswa diminta membangun sebuah notebook pembangkit sinyal (signal generator): fungsi
I.5. Konsep yang Digunakan
Deret Taylor (Taylor Series): Setiap fungsi yang cukup mulus dapat diperluas menjadi deret pangkat (power series) di sekitar titik
Laju Konvergensi (Rate of Convergence): Kecepatan galat mengecil saat jumlah suku ditambah. Konvergensi deret pangkat untuk
Deret Fourier (Fourier Series): Fungsi periodik (periodic function)
Fenomena Gibbs (Gibbs Phenomenon): Pada rekonstruksi fungsi dengan diskontinuitas lompat (jump discontinuity), misalnya gelombang persegi, deret Fourier selalu menunjukkan overshoot (lonjakan lebih) sekitar ±8.95% dari tinggi lompatan di kedua sisi titik diskontinuitas, berapa pun jumlah harmonik. Ibarat melipat kawat yang kaku: berapa pun halusnya tangan Anda, di tepi lipatan selalu tersisa kelebihan lengkung kecil yang menolak hilang; yang bisa dipersempit hanyalah lebarnya, bukan tingginya. Konvergensi tetap terjadi di setiap titik kontinu.
BAGIAN II. PENYIAPAN PELAKSANAAN PRAKTIKUM (PREPARATION)
II.1. Peralatan Praktikum
Kebutuhan peralatan praktikum dapat dilihat pada daftar berikut:
Perangkat Keras (Hardware):
- PC/Laptop (Processor Dual-Core 2.0 GHz+, RAM minimal 4 GB, Ruang Disk minimal 2 GB).
- Koneksi internet yang stabil (wajib apabila menggunakan Google Colab).
Perangkat Lunak Sistem (System Software):
- Sistem Operasi Windows 10/11 64-bit, Linux, atau macOS.
Development Tools:
- Akun Google (Gmail) aktif untuk mengakses Google Colab, atau instalasi Python 3.10/3.11 beserta Jupyter Notebook/JupyterLab untuk penggunaan lokal.
- Library NumPy dan Matplotlib (terpasang otomatis di Colab;
pip install numpy matplotlibuntuk penggunaan lokal). - Peramban modern (Google Chrome / Mozilla Firefox).
II.2. Keamanan & Keselamatan Kerja
Komputer merupakan perangkat teknologi komunikasi dan informasi yang sering digunakan dewasa ini. Pada saat bekerja dengan komputer ada beberapa hal yang harus diperhatikan agar tidak berdampak buruk bagi kesehatan bahkan keselamatan kita. Komputer dapat menyebabkan penggunanya menderita nyeri otot dan tulang terutama bahu, pergelangan tangan, leher, punggung, pinggang bagian bawah, mata merah berair, bahkan gangguan penglihatan.
Beberapa hal yang bisa dilakukan untuk menghindari efek negatif dari bekerja dengan komputer:
- Aturlah posisi tubuh saat bekerja dengan komputer sehingga merasa nyaman.
- Aturlah posisi perangkat komputer dan ruangan sehingga memberi rasa nyaman.
- Makan, minum, dan istirahatlah yang cukup.
- Gerakkan badan untuk mengurangi ketegangan otot dan pikiran, dan olahragalah secara teratur.
- Sesekali alihkan pandangan ke luar ruangan untuk menyegarkan mata.
Mengatur posisi tubuh:
- Posisi Kepala & Leher harus tegak lurus dengan wajah menghadap langsung ke komputer, jangan menengadah atau membungkuk.
- Posisi Punggung yang baik adalah tegak, tidak miring ke kanan/kiri, tidak membungkuk dan tidak menyandar terlalu ke belakang.
- Posisi Pundak tidak terlalu terangkat dan tidak terlalu ke bawah, pastikan otot pundak tidak tegang.
- Posisi Lengan & Siku yang baik adalah apabila mengetik dan menggunakan mouse dengan nyaman.
- Posisi Kaki harus bebas, diluruskan sesekali agar aliran darah lancar.
Mengatur Posisi Komputer:
- Monitor harus diletakkan di tempat yang tidak memantulkan cahaya lain.
- Letakkan monitor lebih rendah dari garis horizontal mata.
- Aturlah cahaya monitor (kontras/kecerahan) agar tidak terlalu gelap dan terang.
- Sering-seringlah mengedipkan mata (minimal 5 detik setiap 10 menit).
Istirahat Mata: Terapkan aturan 20-20-20, yaitu setiap 20 menit alihkan pandangan ke objek yang berjarak 20 kaki (±6 meter) selama 20 detik, untuk mencegah kelelahan mata akibat paparan monitor visual.
BAGIAN III. PROSEDUR PELAKSANAAN PRAKTIKUM (STEP BY STEP)
III.1. Teori Singkat: Deret Taylor, Fourier, dan Konvergensi
Deret Taylor memperluas fungsi
dengan
Tabel 2. Suku-suku Deret Maclaurin Fungsi Dasar
| Fungsi | Deret Maclaurin | Pola suku ke- |
|---|---|---|
Tabel di atas layak dihafal karena polanya sangat reguler: pangkat naik dua-dua, tanda berganti-ganti (alternating), dan faktorial selalu mengikuti pangkatnya. Kegunaan deret Taylor dalam metode numerik sangat sentral: aproksimasi
Laju konvergensi (rate of convergence) diukur dari seberapa cepat galat
Deret Fourier (Fourier series) mendekomposisi fungsi periodik (periodic function) menjadi frekuensi-frekuensi dasar. Untuk gelombang persegi dengan nilai
Hanya harmonik ganjil (odd harmonic) yang muncul, dengan amplitudo menurun sebagai
III.2. Environment & Setup Praktikum
Praktikum menggunakan Google Colab (direkomendasikan) atau Jupyter Notebook lokal dengan Python 3.10/3.11. Prosedur pembuatan notebook, anatomi sel notebook, dan verifikasi environment identik dengan Modul 1 (BAGIAN III.2). Pastikan import numpy as np, import matplotlib.pyplot as plt, dan import math dapat dijalankan tanpa galat sebelum memulai task.
III.3. Task I: Implementasi Deret Taylor sin(x)
TASK I: POLINOM TAYLOR sin(x) PADA BERBAGAI ORDE
Pada task ini kita membangun fungsi aproksimasi sin(x) sendiri dari deret Taylor, lalu menguji seberapa jauh ia dapat dipercaya.
- Implementasikan deret Maclaurin
:
python
import math
def taylor_sin(x, n):
"""Aproksimasi sin(x) dengan deret Taylor hingga suku x^(2n+1)."""
s = 0.0
for i in range(n + 1):
s += (-1) ** i * x ** (2 * i + 1) / math.factorial(2 * i + 1)
return sCara membaca kode (bahasa awam):
def taylor_sin(x, n):= membuat fungsi buatan sendiri bernamataylor_sindengan dua masukan: titikxtempat sin dihitung, dannyaitu orde (derajat) suku tertinggi yang dipakai (hingga ) (makin besarn, makin teliti tetapi makin lama dihitung).s = 0.0= menyiapkan variabel penampung (akumulator) yang mula-mula berisi nol.for i in range(n + 1):= mengulang untuk i = 0, 1, 2, ..., n. Catatan:range(n + 1)berhenti sebelum angka n + 1, makanya kita menambah satu agar suku ke-n ikut terhitung.s += (-1) ** i * x ** (2 * i + 1) / math.factorial(2 * i + 1)= inti deretnya: tambahkan satu suku ke variabel penampung. Bagian(-1) ** imemberi tanda berganti-ganti (positif-negatif),x ** (2 * i + 1)adalah pangkat ganjil dari x, danmath.factorial(...)menghitung faktorial (1×2×...×n) sebagai penyebut.return s= mengirim isi variabel penampung keluar dari fungsi supaya bisa dicetak atau dipakai perhitungan lain.
- Uji akurasi pada tiga titik evaluasi dan empat orde:
python
for x in [0.5, 1.0, 2.0]:
print(f"x = {x}")
for n in [0, 1, 2, 4]:
ap = taylor_sin(x, n)
ex = math.sin(x)
print(f" n={n} aproks={ap:.10f} eksak={ex:.10f} Ea={abs(ex-ap):.2e}")Cara membaca kode (bahasa awam):
for x in [0.5, 1.0, 2.0]:= menguji tiga titik yang jaraknya makin jauh dari titik ekspansi (expansion point) ; dengan begitu efek "jarak terhadap keakuratan" bisa terlihat.for n in [0, 1, 2, 4]:= mencoba empat jumlah suku, dari satu suku saja hingga lima suku.ap = taylor_sin(x, n)= hasil hampiran dari mesin buatan kita;ex = math.sin(x)= nilai rujukan resmi Python yang kita perlakukan sebagai nilai eksak (exact).f"...{ap:.10f}...{abs(ex-ap):.2e}"= teknik mencetak rapi:.10fmenampilkan 10 digit di belakang titik, sedangkan.2emenampilkan galat dalam notasi ilmiah (scientific notation) 2 angka penting, misalnya2.06e-02berarti .
Output:
x = 0.5
n=0 aproks=0.5000000000 eksak=0.4794255386 Ea=2.06e-02
n=1 aproks=0.4791666667 eksak=0.4794255386 Ea=2.59e-04
n=2 aproks=0.4794270833 eksak=0.4794255386 Ea=1.54e-06
n=4 aproks=0.4794255386 eksak=0.4794255386 Ea=1.22e-11
x = 1.0
n=0 aproks=1.0000000000 eksak=0.8414709848 Ea=1.59e-01
n=1 aproks=0.8333333333 eksak=0.8414709848 Ea=8.14e-03
n=2 aproks=0.8416666667 eksak=0.8414709848 Ea=1.96e-04
n=4 aproks=0.8414710097 eksak=0.8414709848 Ea=2.49e-08
x = 2.0
n=0 aproks=2.0000000000 eksak=0.9092974268 Ea=1.09e+00
n=1 aproks=0.6666666667 eksak=0.9092974268 Ea=2.43e-01
n=2 aproks=0.9333333333 eksak=0.9092974268 Ea=2.40e-02
n=4 aproks=0.9093474427 eksak=0.9092974268 Ea=5.00e-05Tabel 3. Galat Absolut Aproksimasi sin(x) untuk Beberapa Titik dan Orde
| n (orde 2n+1) | x = 0.5 | x = 1.0 | x = 2.0 |
|---|---|---|---|
| 0 (orde 1) | |||
| 1 (orde 3) | |||
| 2 (orde 5) | |||
| 4 (orde 9) |
- Visualisasikan kualitas aproksimasi pada rentang
:
python
import numpy as np
import matplotlib.pyplot as plt
xs = np.linspace(-np.pi, np.pi, 400)
plt.figure(figsize=(8, 4.5))
plt.plot(xs, np.sin(xs), color="k", lw=2.2, label="sin(x) eksak")
for n, warna in [(0, "tab:red"), (1, "tab:orange"), (4, "tab:blue")]:
plt.plot(xs, [taylor_sin(x, n) for x in xs], ls="--", color=warna,
label=f"polinom Taylor orde {2 * n + 1}")
plt.ylim(-2.6, 3.6)
plt.axhline(0, color="0.6", lw=0.8, ls=":")
plt.xlabel("x")
plt.ylabel("f(x)")
plt.title("Aproksimasi Deret Taylor sin(x) pada Titik Ekspansi x₀ = 0")
plt.legend()
plt.grid(True)
plt.show()Cara membaca kode (bahasa awam):
xs = np.linspace(-np.pi, np.pi, 400)= membuat 400 titik rapat dari −π sampai π sebagai "kanvas" kurva; makin banyak titik, makin halus garis yang tergambar.plt.plot(...)= menggambar satu kurva; argumenlabelmemberi nama garis untuk kotak keterangan (legend),ls="--"membuat garis putus-putus, danplt.show()menampilkan kanvas ke layar.

- Tuliskan Lesson Learnt: polinom Taylor hanya akurat di sekitar titik ekspansi (expansion point): makin jauh dari
, makin banyak suku yang diperlukan (perhatikan kolom selalu terburuk). Jelaskan kaitannya dengan suku sisa .
Penjelasan: Polinom orde 1 (garis
III.4. Task II: Analisis Laju Konvergensi
TASK II: MENGUKUR LAJU KONVERGENSI DERET e^x
Kali ini fokusnya bukan lagi "berapa akurat", melainkan "seberapa cepat menuju akurat", dan kita menagih buktinya dari data.
- Gunakan deret Maclaurin
dari Modul 1, lalu ukur rasio galat (error ratio) antar iterasi:
python
def taylor_exp(x, n):
s = 0.0
for k in range(n + 1):
s += x ** k / math.factorial(k)
return s
prev = None
for n in range(1, 12):
err = abs(math.exp(1) - taylor_exp(1, n))
ratio = prev / err if prev else float("nan")
print(f"n={n:2d} Ea={err:.6e} rasio={ratio:.3f}")
prev = errCara membaca kode (bahasa awam):
def taylor_exp(x, n):= deret Maclaurin yang dipinjam dari Modul 1, dipotong setelah suku ke- .prev = None= mendeklarasikan variabel penyimpan galat iterasi sebelumnya;Noneberarti "belum ada".err = abs(math.exp(1) - taylor_exp(1, n))= galat absolut pada titik x = 1 dibandingkan nilai resmimath.exp(1).ratio = prev / err if prev else float("nan")= membagi galat kemarin dengan galat hari ini. Pada iterasi pertamaprevmasihNone, sehingga rasio diisi NaN (not a number) karena memang belum ada pembanding. Angka rasio inilah indikator laju konvergensi: makin cepat membesar, makin cepat galat menyusut.prev = err= galat hari ini dicatat menjadi "galat kemarin" untuk dipakai iterasi berikutnya.
Output:
n= 1 Ea=7.182818e-01 rasio=nan
n= 2 Ea=2.182818e-01 rasio=3.291
n= 3 Ea=5.161516e-02 rasio=4.229
n= 4 Ea=9.948495e-03 rasio=5.188
n= 5 Ea=1.615162e-03 rasio=6.159
n= 6 Ea=2.262729e-04 rasio=7.138
n= 7 Ea=2.786021e-05 rasio=8.122
n= 8 Ea=3.058618e-06 rasio=9.109
n= 9 Ea=3.028859e-07 rasio=10.098
n=10 Ea=2.731266e-08 rasio=11.090
n=11 Ea=2.260552e-09 rasio=12.082Tabel 4. Rasio Galat Antar Iterasi Deret e^x di x = 1
| n | Galat | Rasio | Prediksi teori |
|---|---|---|---|
| 2 | 3.291 | 3 | |
| 4 | 5.188 | 5 | |
| 8 | 9.109 | 9 | |
| 11 | 12.082 | 12 |
- Bandingkan konvergensi pada dua titik evaluasi:
python
ns = np.arange(1, 16)
g1 = [abs(math.exp(1.0) - taylor_exp(1.0, n)) for n in ns]
g2 = [abs(math.exp(2.0) - taylor_exp(2.0, n)) for n in ns]
plt.figure(figsize=(8, 4.5))
plt.semilogy(ns, g1, "o-", label="x = 1")
plt.semilogy(ns, g2, "s-", label="x = 2")
plt.xlabel("orde deret (n)")
plt.ylabel("galat absolut $E_n$")
plt.title("Laju Konvergensi Deret Taylor $e^x$")
plt.xticks(ns)
plt.legend()
plt.grid(True)
plt.show()Plot memakai skala logaritmik pada sumbu tegak (plt.semilogy) agar penurunan galat yang berlipat sepuluh setiap beberapa suku tetap tampak sebagai kurva yang rapi dan dapat dibandingkan.

- Tuliskan Lesson Learnt: rasio galat yang terus membesar menandakan konvergensi lebih cepat daripada geometrik; kurva
selalu "di belakang" kurva ; butuh ±2–3 suku ekstra untuk galat yang sama.
Penjelasan: Karena galat setelah deret dipotong pada orde
III.5. Task III: Deret Fourier Gelombang Persegi & Fenomena Gibbs
TASK III: REKONSTRUKSI GELOMBANG PERSEGI
Task ini memindahkan panggung dari dunia pangkat ke dunia frekuensi: kita merakit gelombang persegi dari harmonik sinus, lalu mengamati lonjakan (overshoot) yang persisten di dekat lompatannya.
- Implementasikan deret Fourier gelombang persegi (periode 1 detik,
pada dan pada ):
python
import numpy as np
import math
def fourier_square(t, N):
"""Rekonstruksi gelombang persegi hingga harmonik ke-N (k <= N)."""
t = np.asarray(t, dtype=float)
s = np.zeros_like(t)
for k in range(1, N + 1, 2): # hanya harmonik ganjil
s += (4 / math.pi) * np.sin(2 * math.pi * k * t) / k
return sCara membaca kode (bahasa awam):
t = np.asarray(t, dtype=float)= mengubah masukan menjadi larik (array) NumPy agar seluruh titik waktu bisa dihitung sekaligus.s = np.zeros_like(t)= menyiapkan larik nol yang sama panjang dengantsebagai penampung rekonstruksi.for k in range(1, N + 1, 2):= melompat dua-dua (1, 3, 5, 7, ...) karena hanya harmonik ganjil (odd harmonic) yang menyusun gelombang persegi; harmonik genap amplitudonya nol. Perhatikan bahwa adalah batas atas nomor harmonik, bukan banyaknya suku: untuk rekonstruksi tersusun dari (tiga suku).s += (4 / math.pi) * np.sin(2 * math.pi * k * t) / k= menambahkan satu harmonik sinus beramplitudo ke penampung. Berbeda dengan Task I yang menghitung titik demi titik, di sininp.sin(...)sekaligus menghitung semua titikt; inilah yang disebut vektorisasi operasi (vectorized operation).return s= rekonstruksi hasil penjumlahan seluruh harmonik.
- Ukur nilai puncak rekonstruksi untuk harmonik maksimum
yang meningkat:
python
t = np.linspace(0, 1, 200001)
for N in [1, 5, 21, 101, 1001]:
print(f"N={N:4d} max|f|={np.max(fourier_square(t, N)):.6f}")Cara membaca kode (bahasa awam):
t = np.linspace(0, 1, 200001)= kisi waktu yang sangat rapat (200.001 titik dalam satu periode) supaya puncak sempit overshoot tidak lolos dari pengukuran, ibarat memotret kilat dengan mode burst agar momen puncaknya tidak terlewat.np.max(...)= nilai puncak rekonstruksi, dibandingkan dengan batas atas gelombang persegi sejati yaitu 1.0; selisihnya itulah overshoot.
Output:
N= 1 max|f|=1.273240
N= 5 max|f|=1.188357
N= 21 max|f|=1.179669
N= 101 max|f|=1.179012
N=1001 max|f|=1.178976Tabel 5. Nilai Maksimum Rekonstruksi Fourier (Overshoot Gibbs)
| Harmonik maksimum (N) | max|f| | Overshoot di atas 1.0 |
|---|---|---|
| 1 | 1.2732 | 27.32% |
| 5 | 1.1884 | 18.84% |
| 21 | 1.1797 | 17.97% |
| 101 | 1.1790 | 17.90% |
| 1001 | 1.1790 | 17.90% |
| 1.17898... | 17.90% (= 8.95% × tinggi lompatan 2) |
- Plot rekonstruksi:
python
t = np.linspace(0, 2, 4000)
eksak = np.where((t % 1) < 0.5, 1.0, -1.0)
fig, axes = plt.subplots(3, 1, figsize=(8, 7), sharex=True)
for ax, N in zip(axes, [1, 7, 35]):
ax.plot(t, eksak, color="0.4", ls="--", lw=1.2, label="eksak")
ax.plot(t, fourier_square(t, N), color="tab:blue", lw=1.4,
label=f"N = {N}")
ax.set_ylim(-1.7, 1.7)
ax.set_ylabel("f(t)")
ax.legend(loc="upper right", fontsize=9)
axes[-1].set_xlabel("t (detik)")
plt.tight_layout()
plt.show()
- Perbesar area di sekitar diskontinuitas (discontinuity)
:
python
t = np.linspace(0.35, 0.65, 6000)
plt.figure(figsize=(8, 4.5))
plt.plot(t, np.where((t % 1) < 0.5, 1.0, -1.0), color="0.4", ls="--",
label="eksak")
for N, warna in [(5, "tab:green"), (21, "tab:orange"), (101, "tab:blue")]:
plt.plot(t, fourier_square(t, N), color=warna, lw=1.3, label=f"N = {N}")
plt.axhline(1.0, color="0.4", lw=0.8, ls=":")
plt.axhline(1.179, color="tab:red", lw=0.9, ls=":")
plt.axvline(0.5, color="0.6", lw=0.8, ls=":")
plt.ylim(-1.7, 1.7)
plt.xlabel("t (detik)")
plt.ylabel("f(t)")
plt.title("Fenomena Gibbs di Sekitar Diskontinuitas t = 0.5")
plt.legend()
plt.grid(True)
plt.show()Garis bantu horizontal pada 1.179 menandai batas atas overshoot Gibbs; nilai puncak rekonstruksi tidak pernah turun di bawahnya hanya dengan menambah

- Tuliskan Lesson Learnt: menambah harmonik maksimum
membuat rekonstruksi semakin dekat ke bentuk persegi di setiap titik kontinu, tetapi puncak overshoot di dekat lompatan tidak pernah turun di bawah ±1.179; hanya lebarnya yang menyempit. Jelaskan mengapa Gibbs bukan bug kode melainkan sifat matematis konvergensi deret trigonometri (trigonometric series).
Penjelasan: Fenomena Gibbs (Josiah Willard Gibbs, 1899) menyatakan rekonstruksi Fourier fungsi berkarakter lompat selalu overshoot
III.6. Task IV: Komputasi Koefisien Fourier Secara Numerik
TASK IV: KOEFISIEN FOURIER DARI DEFINISI INTEGRALNYA
Koefisien Fourier pada Task III dipakai mentah dari rumus analitik. Sekarang kita buktikan bahwa koefisien itu dapat diekstrak langsung dari definisi integralnya: tanpa rumus analitik, cukup aturan jumlah Riemann (Riemann sum).
- Alih-alih memakai rumus analitik
, hitung koefisien dari definisi integralnya menggunakan jumlah Riemann (modul integrasi numerik akan memperdalam ini):
python
import numpy as np
import math
def koef_bk(f, T, k, n=100000):
"""b_k = (2/T) * integral f(t) sin(2*pi*k*t/T) dt, dihitung dengan jumlah Riemann."""
ts = np.linspace(0, T, n, endpoint=False)
dt = T / n
integrand = f(ts) * np.sin(2 * math.pi * k * ts / T)
return (2 / T) * np.sum(integrand) * dt
f_persegi = lambda ts: np.where(ts < 0.5, 1.0, -1.0) # periode T = 1 (sama dengan Task III)
print(f"{'k':>3} {'b_k numerik':>14} {'b_k analitik':>14} {'Er (%)':>10}")
for k in [1, 3, 5, 7, 9]:
bk_num = koef_bk(f_persegi, 1.0, k)
bk_ana = 4 / (math.pi * k)
print(f"{k:>3} {bk_num:>14.10f} {bk_ana:>14.10f} "
f"{abs(bk_num - bk_ana) / bk_ana * 100:>10.6f}")Cara membaca kode (bahasa awam):
def koef_bk(f, T, k, n=100000):= fungsi penghitung koefisien: menerima sinyalf, periodeT, nomor harmonikk, dan banyaknya pias (partisi)n(default 100.000 pias).ts = np.linspace(0, T, n, endpoint=False)= titik sampel kiri tiap pias;endpoint=Falsememastikan pias terakhir tidak melewati batas periode (titik T milik periode berikutnya).dt = T / n= lebar tiap persegi panjang Riemann.integrand = f(ts) * np.sin(...)= nilai integrand, yaitu sinyal dikali sinus harmonik ke- , dihitung di semua titik sekaligus.(2 / T) * np.sum(integrand) * dt= inti jumlah Riemann: luas semua persegi panjang (tinggi × lebar) dijumlahkan lalu dikalikan faktor 2/T sesuai definisi koefisien. Semakin banyak pias, semakin dekat hasilnya ke nilai integral sejati.f_persegi = lambda ts: ...= fungsi anonim (anonymous function) satu baris;np.where(ts < 0.5, 1.0, -1.0)memberi nilai +1 pada paruh pertama periode dan −1 pada paruh kedua (periode T = 1, konsisten dengan Task III).
Output:
k b_k numerik b_k analitik Er (%)
1 1.2732395443 1.2732395447 0.000000
3 0.4244131803 0.4244131816 0.000000
5 0.2546479069 0.2546479089 0.000001
7 0.1818913606 0.1818913635 0.000002
9 0.1414710568 0.1414710605 0.000003- Amati bahwa hasil numerik cocok dengan analitik hingga galat relatif lebih kecil dari
%, dan galat membesar ringan untuk tinggi karena osilasi integrand makin rapat. - Tuliskan Lesson Learnt: koefisien Fourier dapat diekstrak langsung dari data/sinyal apa pun tanpa rumus analitik; prinsip yang sama dengan DFT/FFT (Discrete/Fast Fourier Transform) yang digunakan pada pemrosesan sinyal modern.
III.7. Kesimpulan Praktikum
Tabel 6. Ringkasan Perbandingan Deret Taylor dan Deret Fourier
| Aspek | Deret Taylor | Deret Fourier |
|---|---|---|
| Wilayah pendekatan | Lokal, di sekitar titik ekspansi | Global, pada seluruh periode fungsi |
| Fungsi basis | Pangkat | Sinus dan kosinus (harmonik) |
| Cocok untuk | Fungsi mulus (smooth) non-periodik | Fungsi periodik / sinyal |
| Perilaku galat | Menurun cepat dekat | Menurun di titik kontinu; tetap ±8.95% dari tinggi lompatan (Gibbs) |
| Kegunaan khas | Turunan numerik, Runge-Kutta, pustaka matematika | Pemrosesan sinyal, analisis frekuensi, kompresi |
Dari seluruh task dapat disimpulkan bahwa: (1) deret Taylor adalah alat aproksimasi lokal: akurasinya tinggi dekat titik ekspansi dan menurun seiring menjauh; (2) laju konvergensi dapat diukur eksperimental melalui rasio galat antar iterasi, dan deret berfaktorial (seperti
III.8. Tugas Praktikum
Kerjakan soal berikut pada notebook yang sama, kemudian kumpulkan sesuai mekanisme pada BAGIAN IV. Kunci jawaban tersedia pada dosen/tim praktikum dan dibahas pada pertemuan berikutnya.
- Deret Taylor cos(x). Implementasikan
taylor_cos(x, n)menggunakan pola . Hitung aproksimasi untuk dan bandingkan denganmath.cos(0.3). Berapa digit benar yang diperoleh pada ? - Jumlah suku minimum. Dengan
taylor_sin(x, n)dari Task I, carilah minimum agar aproksimasi memiliki galat relatif (relative error) lebih kecil dari . Tuliskan program pencariannya. - Gelombang segitiga (triangle wave). Deret Fourier gelombang segitiga (amplitudo 1, periode 2) memuat hanya harmonik ganjil dengan koefisien
. Implementasikanfourier_triang(t, N), plot hasilnya untuk , dan ukur amplitudo maksimum rekonstruksi , apakah terdapat overshoot serupa Gibbs? - Kualitas rekonstruksi persegi. Menggunakan
fourier_square(t, N)dari Task III dan sinyal eksaknp.where((t % 1) < 0.5, 1.0, -1.0)padat = np.linspace(0, 3, 9000), hitung akar galat kuadrat rata-rata (root mean square error, RMSE) untuk , lalu tentukan minimum agar RMSE < 10%. (Catatan: pada nilai RMSE masih sekitar 8%; target yang lebih ketat seperti RMSE < 5% baru tercapai pada ; buatlah program pencarian tambahan bila ingin membuktikannya.)
III.9. Soal Latihan HOTS (Pengayaan)
Soal-soal berikut melatih kemampuan berpikir tingkat tinggi (Higher Order Thinking Skills, HOTS): menganalisis (C4), mengevaluasi (C5), dan mencipta (C6). Kerjakan mandiri atau berkelompok kecil. Soal ini tidak wajib dikumpulkan, tetapi akan dibahas bersama pada pertemuan berikutnya. Petunjuk: mulailah dari percobaan kecil di notebook, catat hasilnya, lalu tarik kesimpulan.
- [C4 Analisis] Polinom Taylor jauh dari titik ekspansi. Dengan
taylor_sin(x, n)dari Task I, hitung galat aproksimasi untuk . Amati bahwa galat mula-mula justru membesar sebelum akhirnya mengecil. Analisislah penyebabnya dengan mengaitkan magnitudo suku individual dan suku sisa , lalu jelaskan mengapa pustaka matematika tidak pernah memakai Taylor "polos" jauh dari titik ekspansi. - [C4 Analisis] Ringing pada JPEG. Gambar hasil kompresi JPEG yang dikompresi kuat sering menampakkan bayangan bergelombang di sekitar tepi kontras tinggi, yang dikenal sebagai artefak dering (ringing artifact). Pelajari fenomena tersebut dari sumber tepercaya, kemudian jelaskan kaitannya dengan fenomena Gibbs pada Task III: mengapa membuang koefisien frekuensi tinggi (aksi kompresi) sejajar dengan memotong deret Fourier, dan mengapa artefak muncul di tepi tajam, bukan di area halus. Tuliskan kesimpulan satu paragraf.
- [C5 Evaluasi] Menilai saran teman. Seorang teman berpendapat: "Supaya rekonstruksi gelombang persegi sempurna, tambahkan saja
hingga ribuan; overshoot pasti lama-lama hilang." Evaluasilah klaim itu: ukur tinggi dan lebar overshoot untuk (petunjuk: lebar dapat diukur sebagai jarak dari titik lompatan tempat rekonstruksi pertama kali turun di bawah 1.0). Tentukan bagian klaim yang benar dan yang keliru, lalu rekomendasikan apa yang seharusnya dilakukan bila overshoot benar-benar harus ditekan (petunjuk: perataan/smoothing pada koefisien). - [C5 Evaluasi] Taylor atau Fourier? Empat masalah berikut akan ditangani salah satu dari kedua representasi: (a) menghitung
di dalam pustaka matematika untuk kecil; (b) mengompresi lagu menjadi MP3; (c) menganalisis harmonik gelombang listrik PLN 50 Hz; (d) menurunkan metode Runge-Kutta orde 4. Evaluasilah representasi mana yang tepat untuk masing-masing beserta alasannya, lalu rumuskan kriteria umum kapan pendekatan lokal (Taylor) mengalahkan pendekatan frekuensi (Fourier), dan sebaliknya. - [C5 Evaluasi] Batas akurasi deret berganti tanda. Untuk
besar (misalnya ), suku-suku deret tumbuh sangat besar sebelum saling menggugurkan (deret berganti tanda / alternating series). Lakukan eksperimen: cari suku terbesar , prediksi galat terbaik yang mungkin dicapai komputer (petunjuk: kaitkan dengan epsilon mesin × suku terbesar, ingat Modul 1), lalu bandingkan dengan galat eksperimentaltaylor_sin(25, n)yang optimal. Evaluasilah mengapa menambah suku justru memperburuk hasil setelah titik tertentu, dan usulkan solusi praktisnya (petunjuk: reduksi argumen / argument reduction, ). - [C6 Mencipta] Deret tanpa faktorial berulang. Buatlah fungsi
taylor_exp_cepat(x, n)yang menghitung suku berikutnya dari suku sebelumnya lewat relasisuku = suku * x / k, alih-alih memanggilmath.factorialdanx ** kdi setiap iterasi. Bandingkan waktu eksekusi kedua versi untuk , (gunakantime.perf_counter), pastikan hasilnya identik, dan jelaskan dengan bahasa awam mengapa matematika yang sama bisa dieksekusi dengan kecepatan yang berbeda. - [C6 Mencipta] Ekstraksi spektrum frekuensi dari data. Bangkitkan sinyal campuran
pada , tambahkan derau (noise) kecil dengannp.random, lalu ekstrak koefisien untuk memakaikoef_bkdari Task IV. Sajikan grafik batang amplitudo terhadap (spektrum frekuensi / frequency spectrum), tandai frekuensi dominan, dan jelaskan prinsip kerja yang sama pada DFT/FFT pemrosesan sinyal modern.
BAGIAN IV. MEDIA DAN MEKANISME PENGUMPULAN
IV.1. Media Pengumpulan
Media pengumpulan menggunakan Microsoft Teams (MS Teams) yang dapat diakses pada link berikut:
https://teams.microsoft.com
Kemudian masuk ke dalam Tim (Team) khusus untuk mata kuliah Komputasi Numerik.
IV.2. Mekanisme Pengumpulan
Mekanisme proses pengumpulan untuk modul praktikum ini mengikuti tahapan berikut:
Format penamaan notebook/berkas: gunakan format standar berikut.
Tabel 7. Standar Penamaan Proyek dan Berkas Pengumpulan Praktikum Komputasi Numerik
Kode Penjelasan KN2026Komputasi Numerik tahun 2026 5A/5BKelas D4Prodi D-4 Sarjana Terapan 2024Angkatan Modul2Nomor Modul 0013 Digit NIM Terakhir Format berkas:
[KN2026_5A_D4_2024]_Modul2_001.ipynbEkspor notebook Google Colab/Jupyter menjadi berkas
.ipynb(File → Download → Download .ipynb). Apabila diperlukan, lampirkan juga hasil output dalam format.pdfatau.html.Susun Laporan Praktikum (.pdf) yang mencakup:
- Tangkapan layar (screenshot) notebook dan output yang dihasilkan.
- Potongan kode (code snippet) Python (Task I, II, III, IV) beserta penjelasan fungsinya.
- Analisis hasil eksekusi (Lesson Learnt) untuk tiap task.
- Jawaban Tugas Praktikum (III.8).
Kompresi seluruh berkas menjadi satu arsip
.zipdengan nama[KN2026_5A_D4_2024]_Modul2_001.zip.Unggah arsip tersebut pada slot Tugas (Assignment) "Pengumpulan Praktikum Modul 2" di Microsoft Teams sebelum batas waktu berakhir.
BAGIAN V. PEMBAHASAN DAN EVALUASI HASIL PRAKTIKUM
Penilaian pada praktikum berdasarkan kriteria berikut:
Tabel 8. Rubrik dan Matriks Kriteria Penilaian Evaluasi Praktikum
| Kriteria Penilaian | Skor ≥ 80 (A) | Skor 70–79.99 (AB/B) | Skor 60–69.99 (BC/C) | Skor < 60 (D/E) |
|---|---|---|---|---|
| Deret Taylor (25%) | Fungsi taylor_sin benar, tabel galat lengkap, interpretasi lokalitas aproksimasi tajam. | Implementasi benar namun interpretasi kurang lengkap. | Implementasi berjalan tetapi ada suku deret yang keliru. | Gagal mengimplementasikan deret. |
| Analisis Konvergensi (25%) | Rasio galat dihitung benar, kaitannya dengan pola faktorial dijelaskan. | Rasio dihitung benar tanpa penjelasan teoretis. | Rasio keliru pada sebagian iterasi. | Tidak menganalisis konvergensi. |
| Deret Fourier & Gibbs (30%) | Rekonstruksi benar, overshoot 17.9% ditemukan, penjelasan Gibbs tepat. | Rekonstruksi benar, penjelasan Gibbs permukaan. | Rekonstruksi sebagian benar / tanpa pengukuran overshoot. | Gagal merekonstruksi gelombang. |
| Pelaporan & Lesson Learnt (20%) | Laporan sangat lengkap: screenshot, analisis kode, lesson learnt mendalam, jawaban tugas benar semua. | Laporan lengkap dengan screenshot dan penjelasan kode standar. | Laporan kurang detail, sebagian lesson learnt tidak dicantumkan. | Tidak mengumpulkan laporan / tidak sesuai format. |
DAFTAR PUSTAKA
Bracewell, R. N. (2000). The Fourier Transform and Its Applications (3rd ed.). McGraw-Hill.
Burden, R. L., & Faires, J. D. (2011). Numerical Analysis (9th ed.). Brooks/Cole, Cengage Learning.
Chapra, S. C., & Canale, R. P. (2015). Numerical Methods for Engineers (7th ed.). McGraw-Hill Education.
Gerald, C. F., & Wheatley, P. O. (2004). Applied Numerical Analysis (7th ed.). Pearson.
Munir, R. (2021). Metode Numerik (Edisi Revisi). Informatika, Bandung.
LAMPIRAN
Jika Ada