Tema
MODUL PRAKTIKUM MATA KULIAH
KOMPUTASI NUMERIK
MODUL 3: SOLUSI PERSAMAAN NIRLANJAR (METODE TERTUTUP DAN TERBUKA)
JURUSAN TEKNIK KOMPUTER DAN INFORMATIKA
POLITEKNIK NEGERI BANDUNG
2026
LEMBAR PERSETUJUAN
SOLUSI PERSAMAAN NIRLANJAR (METODE TERTUTUP DAN TERBUKA)
| 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 "SOLUSI PERSAMAAN NIRLANJAR (METODE TERTUTUP DAN TERBUKA)" telah selesai disusun.
Penyusunan "SOLUSI PERSAMAAN NIRLANJAR (METODE TERTUTUP DAN TERBUKA)" 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.
Banyak persoalan rekayasa dan sains bermuara pada satu pertanyaan: di mana suatu fungsi bernilai nol? Titik setimbang reaksi kimia, tenggang balik investasi, hingga analisis rangkaian nonlinear semuanya menuntut pencarian root (akar) dari sebuah nonlinear equation (persamaan nirlanjar). Sayangnya, berdasarkan teorema Abel-Ruffini, polinom berderajat lima ke atas umumnya tidak memiliki rumus akar analitik, sehingga pendekatan numerik menjadi satu-satunya jalan praktis. Modul 3 ini melatih lima metode klasik: bisection (bagi dua), regula falsi, fixed-point iteration (iterasi titik tetap), Newton-Raphson, dan secant, lengkap dengan analisis convergence (konvergensi) masing-masing: metode mana yang cepat, dan metode mana yang selalu selamat. Pekan ini berformat self-directed learning (belajar mandiri): tanpa kelas pleno dan tanpa pengumpulan tugas, sehingga modul sengaja ditulis setebal dan sedetail ini agar dapat diikuti sendirian, selangkah demi selangkah, layaknya ada dosen yang mendampingi di samping Anda.
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: Pencarian Akar Persamaan Nirlanjar | 6 |
| III.2. Environment & Setup Praktikum | 8 |
| III.3. Task I: Metode Bisection | 9 |
| III.4. Task II: Metode Regula Falsi | 11 |
| III.5. Task III: Newton-Raphson dan Secant | 13 |
| III.6. Task IV: Fixed Point dan Perbandingan Konvergensi | 15 |
| III.7. Kesimpulan Praktikum | 17 |
| III.8. Tugas Praktikum (Mandiri) | 18 |
| III.9. Soal Latihan HOTS: Pemrograman Gaya ICPC (Kumulatif Modul 1 sampai 3) | 19 |
| BAGIAN IV. MEDIA DAN MEKANISME PENGUMPULAN | 22 |
| BAGIAN V. PEMBAHASAN DAN EVALUASI HASIL PRAKTIKUM | 23 |
| DAFTAR PUSTAKA | 24 |
| LAMPIRAN | 25 |
DAFTAR GAMBAR
Gambar 1. Root (Akar) Persamaan Nirlanjar sebagai Titik Potong Kurva dengan Sumbu-x
Gambar 2. Bisection: Interval Pengurung Akar Menyusut Separuh Setiap Iterasi
Gambar 3. Newton-Raphson: Garis Singgung Mengarahkan Lompatan Menuju Akar
Gambar 4. Perbandingan Laju Convergence (Konvergensi) Lima Metode
DAFTAR TABEL
Tabel 1. Pemetaan Capaian Pembelajaran Mata Kuliah (CPMK) Terhadap Modul Praktikum Komputasi Numerik
Tabel 2. Klasifikasi Metode Pencarian Akar
Tabel 3. Iterasi Lengkap Metode Bisection (Toleransi 10⁻⁶)
Tabel 4. Iterasi Regula Falsi pada f(x) = x³ − x − 2
Tabel 5. Iterasi Newton-Raphson dan Secant
Tabel 6. Perbandingan Jumlah Iterasi Lima Metode (Toleransi 10⁻⁸)
Tabel 7. Panduan Memilih Metode Pencarian Akar
Tabel 8. Standar Penamaan Proyek dan Berkas Pengumpulan Praktikum Komputasi Numerik
Tabel 9. 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 pencarian akar persamaan nirlanjar untuk mata kuliah Komputasi Numerik, hingga mekanisme evaluasi.
Pekan ini adalah pekan self-directed learning (belajar mandiri): tidak ada kelas pleno dan tidak ada pengumpulan tugas. Alur yang disarankan: (1) baca BAGIAN II untuk memastikan perangkat siap; (2) kerjakan BAGIAN III secara berurutan dari Task I sambil menyalin dan menjalankan setiap potongan kode di Google Colab; (3) uji diri dengan Tugas Praktikum (III.8); (4) tantang kemampuan dengan soal pemrograman gaya ICPC (III.9). Alokasikan sekitar dua kali 50 menit untuk BAGIAN III, ditambah waktu latihan sesuai selera.
I.2. Ruang Lingkup
Kegiatan mencakup implementasi lima metode pencarian root (akar) persamaan nonlinear (nirlanjar): dua bracketing method (metode tertutup), yaitu bisection (bagi dua) dan regula falsi (false position), serta tiga open method (metode terbuka), yaitu fixed-point iteration (iterasi titik tetap), Newton-Raphson, dan secant; pencatatan iteration table (tabel iterasi), pemilihan stopping criterion (kriteria penghentian) dan tolerance (toleransi), analisis rate of convergence (laju konvergensi), kasus kegagalan Newton-Raphson, serta pemilihan metode yang tepat untuk suatu persoalan.
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
Studi kasus utama adalah persamaan kubik
I.5. Konsep yang Digunakan
Root (Akar): Nilai
Bracketing Methods (Metode Tertutup): Selalu menjaga akar terkurung dalam interval yang menyusut, sehingga convergence (konvergensi) terjamin meskipun lambat. Bisection membagi dua interval setiap iterasi (galat menurun faktor ½ per iterasi); regula falsi memanfaatkan garis potong (interpolasi linier) sehingga biasanya lebih cepat. Ibarat permainan tebak angka 1 sampai 100: setiap jawaban "terlalu besar" atau "terlalu kecil" memangkas tepat setengah kemungkinan, dan tujuh pertanyaan selalu cukup.
Open Methods (Metode Terbuka): Hanya butuh satu atau dua initial guess (tebakan awal) dan melompat bebas menuju akar lewat rumus iterasi. Jauh lebih cepat (Newton-Raphson konvergen quadratic atau kuadratik: jumlah digit benar berlipat dua setiap iterasi) tetapi tidak dijamin konvergen: gagal bila derivative (turunan) dekat nol atau tebakan awal jauh dari akar. Ibarat menuruni lereng dalam kabut: ikuti kemiringan tanah dan melangkah sejauh garis singgung memotong lembah; begitu kemiringan nyaris datar, langkah menjadi kacau.
Fixed-Point Iteration (Iterasi Titik Tetap): Menulis ulang
Stopping Criterion (Kriteria Penghentian):
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: Pencarian Akar Persamaan Nirlanjar
Nonlinear equation (persamaan nirlanjar) adalah persamaan yang tidak dapat ditulis sebagai kombinasi linier variabelnya, misalnya
Tabel 2. Klasifikasi Metode Pencarian Akar
| Kelompok | Metode | Kebutuhan awal | Jaminan konvergen | Laju |
|---|---|---|---|---|
| Bracketing (tertutup) | Bisection | Interval | Ya | Linear (galat × ½ per iterasi) |
| Bracketing (tertutup) | Regula falsi | Interval | Ya | Linear sampai superlinear |
| Open (terbuka) | Fixed point | Rumus | Hanya jika | Linear |
| Open (terbuka) | Newton-Raphson | Tidak dijamin | Quadratic (kuadratik) | |
| Open (terbuka) | Secant | Dua tebakan | Tidak dijamin | Orde 1.618 (golden ratio, rasio emas) |
Rumus iterasi (update rule) masing-masing metode:
- Bisection:
; pertahankan setengah interval yang mengandung akar. - Regula falsi:
; titik potong garis hubung melalui dan dengan sumbu- . - Fixed point:
dengan . - Newton-Raphson:
; perpotongan garis singgung (tangent line) dengan sumbu- . - Secant:
; Newton dengan kemiringan diaproksimasi dari dua titik terakhir (tanpa perlu ).
Cara membaca tabel di atas: dua metode pertama menerima syarat lebih berat (harus punya interval pengurung) tetapi dibayar dengan jaminan; tiga metode terakhir lebih serbaguna dan cepat, tetapi hasilnya bisa meleset bila tebakan awal buruk. Ketegangan "jaminan versus kecepatan" inilah benang merah seluruh modul.
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.
III.3. Task I: Metode Bisection
TASK I: BISECTION PADA f(x) = x³ − x − 2
Pada task ini kita mencoba metode paling tua dan paling aman: menebak akar dengan membelah interval, persis seperti permainan tebak angka.
- Fungsi uji yang dipakai sepanjang modul:
. Periksa dulu bahwa interval mengurung akar:
python
import math
f = lambda x: x**3 - x - 2
print(f(1), f(2)) # harus beda tandaCara membaca kode (bahasa awam):
f = lambda x: x**3 - x - 2= membuat fungsi anonim (anonymous function) satu baris: masukanx, keluaran .print(f(1), f(2))= mengintip nilai fungsi di kedua ujung interval; hasil beda tanda berarti kurva menyeberang sumbu- di antaranya.
Output:
-2 4Karena
python
import numpy as np
import matplotlib.pyplot as plt
xs = np.linspace(0.4, 2.6, 400)
plt.figure(figsize=(8, 4.5))
plt.plot(xs, f(xs), lw=2, label="f(x) = x^3 - x - 2")
plt.axhline(0, color="0.3", lw=1)
plt.plot([1, 2], [f(1), f(2)], "s", color="0.35")
plt.plot([1.5213797], [0], "o", ms=9, color="tab:red", label="root (akar)")
plt.xlabel("x")
plt.ylabel("f(x)")
plt.title("Akar sebagai Titik Potong Kurva dengan Sumbu-x")
plt.legend()
plt.grid(True)
plt.show()
- Implementasikan bisection lengkap dengan tabel iterasi:
python
def bisection(f, a, b, tol=1e-6, max_iter=100):
if f(a) * f(b) > 0:
raise ValueError("f(a) dan f(b) harus beda tanda")
print(f"{'i':>3} {'a':>12} {'c':>12} {'b':>12} {'f(c)':>13} {'lebar':>11}")
for i in range(1, max_iter + 1):
c = (a + b) / 2
fc = f(c)
print(f"{i:>3} {a:>12.7f} {c:>12.7f} {b:>12.7f} {fc:>13.3e} {b-a:>11.7f}")
if fc == 0: # titik tengah tepat menginjak akar
return c
if (b - a) / 2 < tol: # kriteria: lebar interval
return c
if f(a) * fc < 0:
b = c # akar di kiri
else:
a = c # akar di kanan
return c
akar = bisection(f, 1, 2, tol=1e-6)
print("akar =", akar)
print("f(akar) =", f(akar))Cara membaca kode (bahasa awam):
if f(a) * f(b) > 0: raise ValueError= penjaga syarat: jika kedua ujung interval sama tanda, akar tidak terkurung dan program menolak melanjutkan.c = (a + b) / 2= titik tengah interval, kandidat akar pada iterasi ini.if fc == 0: return c= keberuntungan langka: titik tengah tepat menginjak akar sehingga program berhenti seketika.if (b - a) / 2 < tol= stopping criterion (kriteria penghentian) versi bracketing: jika setengah lebar interval sudah di bawah toleransi, titik tengah dijamin berjarak kurang daritoldari akar sejati.if f(a) * fc < 0: b = c ... else: a = c= jantung bisection: buang setengah interval yang tidak mengandung akar; akar selalu tetap terkurung di dalam[a, b].- Kolom
lebarmencetakb - asebelum pembaruan; perhatikan nilainya terpangkas setengah secara sempurna: 1.0, 0.5, 0.25, 0.125, ...
Output (dipangkas: 6 iterasi pertama dan 3 terakhir):
i a c b f(c) lebar
1 1.0000000 1.5000000 2.0000000 -1.250e-01 1.0000000
2 1.5000000 1.7500000 2.0000000 1.609e+00 0.5000000
3 1.5000000 1.6250000 1.7500000 6.660e-01 0.2500000
4 1.5000000 1.5625000 1.6250000 2.522e-01 0.1250000
5 1.5000000 1.5312500 1.5625000 5.911e-02 0.0625000
6 1.5000000 1.5156250 1.5312500 -3.405e-02 0.0312500
...
18 1.5213776 1.5213814 1.5213852 9.934e-06 0.0000076
19 1.5213776 1.5213795 1.5213814 -1.403e-06 0.0000038
20 1.5213795 1.5213804 1.5213814 4.266e-06 0.0000019
akar = 1.5213804244995117
f(akar) = 4.265829404825894e-06Tabel 3. Iterasi Lengkap Metode Bisection (Toleransi 10⁻⁶): kolom lebar menunjukkan pemangkasan setengah yang sempurna, dari 1.0 sampai 1.9×10⁻⁶; program berhenti pada iterasi ke-20 karena setengah lebar interval sudah turun di bawah 10⁻⁶.
Visualisasikan mekanisme pengurungan akar:
python
xs = np.linspace(0.9, 2.1, 400)
plt.figure(figsize=(8, 4.8))
plt.plot(xs, f(xs), lw=2, label="f(x) = x^3 - x - 2")
a, b = 1.0, 2.0
for i in range(8):
c = (a + b) / 2
plt.axvspan(a, b, color="tab:orange", alpha=0.08 + 0.02 * i)
if f(a) * f(c) < 0:
b = c
else:
a = c
plt.axvline(1.5213797, color="tab:red", ls=":", label="akar")
plt.xlabel("x")
plt.ylabel("f(x)")
plt.title("Bisection: interval mengurung akar menyusut separuh")
plt.legend()
plt.grid(True)
plt.show()Setiap pita jingga adalah interval

- Tuliskan Lesson Learnt: lebar interval berkurang tepat separuh setiap iterasi; convergence (konvergensi) linear yang sepenuhnya bisa diprediksi. Setelah
iterasi galat maksimum adalah , sehingga jumlah iterasi dapat dihitung sebelum eksekusi: .
Penjelasan: Untuk toleransi
III.4. Task II: Metode Regula Falsi
TASK II: REGULA FALSI (FALSE POSITION)
Bisection selalu melompat ke titik tengah, padahal nilai fungsi sebenarnya berbisik ke mana akar berada. Regula falsi mendengarkan bisikan itu.
- Regula falsi mengganti titik tengah dengan perpotongan garis hubung antara
dan :
python
def regula_falsi(f, a, b, tol=1e-6, max_iter=100):
print(f"{'i':>3} {'c':>14} {'f(c)':>13}")
for i in range(1, max_iter + 1):
c = b - f(b) * (b - a) / (f(b) - f(a))
fc = f(c)
print(f"{i:>3} {c:>14.9f} {fc:>13.3e}")
if abs(fc) < tol: # kriteria: nilai fungsi
return c
if f(a) * fc < 0:
b = c
else:
a = c
return c
akar = regula_falsi(f, 1, 2, tol=1e-6)
print("akar =", akar)Cara membaca kode (bahasa awam):
c = b - f(b) * (b - a) / (f(b) - f(a))= rumus garis hubung (straight line): tarik garis lurus dari titik ke , lalu ambil titik potongnya dengan sumbu- ; jika satu sisi kurva jauh lebih dekat ke nol, tebakan otomatis "condong" ke sana, berbeda dengan titik tengah bisection yang buta arah.if abs(fc) < tol= stopping criterion versi nilai fungsi (function value): berhenti ketika nilai sudah cukup dekat ke nol.- Dua baris terakhir sama dengan bisection: buang setengah interval yang tidak memuat akar; bedanya posisi titik potongnya saja.
Output:
i c f(c)
1 1.333333333 -9.630e-01
2 1.462686567 -3.333e-01
3 1.504019004 -1.018e-01
4 1.516330565 -2.989e-02
5 1.519918550 -8.675e-03
6 1.520957481 -2.509e-03
7 1.521257749 -7.248e-04
8 1.521344484 -2.093e-04
9 1.521369535 -6.046e-05
10 1.521376769 -1.746e-05
11 1.521378858 -5.043e-06
12 1.521379462 -1.456e-06
13 1.521379636 -4.206e-07
akar = 1.5213796360454928Tabel 4. Iterasi Regula Falsi pada f(x) = x³ − x − 2: 13 iterasi untuk
- Tuliskan Lesson Learnt: amati bahwa semua
bernilai negatif; ujung kanan interval ( ) tidak pernah berpindah. Regula falsi bisa "malas" memperkecil interval karena salah satu batas menempel; inilah sebabnya varian modern (Illinois, Brent) mengombinasikannya dengan bisection.
Penjelasan: Garis hubung selalu memotong sumbu-
III.5. Task III: Newton-Raphson dan Secant
TASK III: METODE TERBUKA (NEWTON-RAPHSON DAN SECANT)
Metode terbuka membuang jangkar interval dan melompat bebas mengikuti bentuk kurva: berikut dua pelompat andalannya.
- Newton-Raphson membutuhkan turunan analitik
:
python
df = lambda x: 3 * x**2 - 1
def newton(f, df, x0, tol=1e-8, max_iter=50):
print("Newton-Raphson:")
print(f"{'i':>3} {'x':>16} {'f(x)':>13}")
x = x0
for i in range(1, max_iter + 1):
fx = f(x)
print(f"{i:>3} {x:>16.10f} {fx:>13.3e}")
if abs(fx) < tol:
break
x = x - fx / df(x)
return x
akar = newton(f, df, 1.5)
print("akar =", akar)Cara membaca kode (bahasa awam):
df = lambda x: 3 * x**2 - 1= turunan analitik dari ; Newton menuntut ketersediaan , dan inilah "tiket masuk"-nya.x = x - fx / df(x)= inti Newton: dari titik sekarang, tarik garis singgung (tangent line), lalu meluncurlah sepanjang garis itu sampai memotong sumbu- ; titik potong itulah tebakan berikutnya.- Baris pertama output mencetak tebakan awal
sebelum digeser, jadi jumlah pembaruan = jumlah baris − 1.
Output:
Newton-Raphson:
i x f(x)
1 1.5000000000 -1.250e-01
2 1.5217391304 2.137e-03
3 1.5213798060 5.894e-07
4 1.5213797068 4.530e-14
akar = 1.5213797068045751Visualisasikan lompatan garis singgung:
python
xs = np.linspace(1.30, 1.85, 400)
plt.figure(figsize=(8, 4.8))
plt.plot(xs, f(xs), lw=2, label="f(x) = x^3 - x - 2")
plt.axhline(0, color="0.3", lw=1)
x0 = 1.5
x1 = x0 - f(x0) / df(x0)
tang = np.linspace(1.38, 1.62, 50)
plt.plot(tang, f(x0) + df(x0) * (tang - x0), "--", color="tab:green",
label="tangent di x0")
plt.plot([x0, x1], [f(x0), 0], "o", color="tab:green")
plt.plot([x1], [f(x1)], "o", color="tab:orange", label="tebakan berikutnya x1")
plt.xlabel("x")
plt.ylabel("f(x)")
plt.title("Newton-Raphson: garis singgung mengarahkan lompatan")
plt.legend()
plt.grid(True)
plt.show()Dua lompatan saja membawa tebakan dari 1.5 ke 1.5213798, hampir menyentuh akar; bandingkan dengan bisection yang butuh 20 iterasi untuk akurasi lebih rendah.

- Secant: Newton tanpa turunan:
python
def secant(f, x0, x1, tol=1e-8, max_iter=50):
print("Secant:")
print(f"{'i':>3} {'x':>16} {'f(x)':>13}")
for i in range(1, max_iter + 1):
fx0, fx1 = f(x0), f(x1)
x2 = x1 - fx1 * (x1 - x0) / (fx1 - fx0)
print(f"{i:>3} {x2:>16.10f} {f(x2):>13.3e}")
if abs(f(x2)) < tol:
return x2
x0, x1 = x1, x2
return x2
akar = secant(f, 1.0, 2.0)
print("akar =", akar)Cara membaca kode (bahasa awam):
x2 = x1 - fx1 * (x1 - x0) / (fx1 - fx0)= kemiringan tidak dihitung dari turunan, tetapi diperkirakan dari garis potong (secant line) yang menembus dua titik terakhir; hasilnya rumus mirip Newton tanpa perlu .x0, x1 = x1, x2= daur ulang: tebakan terlama dibuang, tetapi nilai -nya sudah terpakai sebagai penyusun kemiringan, sehingga tiap iterasi hanya butuh satu evaluasi fungsi baru.
Output:
Secant:
i x f(x)
1 1.3333333333 -9.630e-01
2 1.4626865672 -3.333e-01
3 1.5311694321 5.863e-02
4 1.5209264205 -2.693e-03
5 1.5213763167 -2.015e-05
6 1.5213797080 7.015e-09
akar = 1.5213797079848717Tabel 5. Iterasi Newton-Raphson dan Secant: Newton selesai dalam 4 baris (tebakan awal + 3 pembaruan) dengan galat menyusut
- Tuliskan Lesson Learnt: bandingkan "harga" tiap metode per pembaruan: Newton membayar 1 evaluasi
+ 1 evaluasi ; secant hanya 1 evaluasi (berkat daur ulang); bisection paling murah per iterasi tetapi membutuhkan iterasi terbanyak. Metode tercepat per iterasi belum tentu termurah secara total.
Penjelasan: Konvergensi kuadratik berarti begitu galat cukup kecil, pembaruan berikutnya "menggandakan" jumlah digit benar. Inilah metode favorit pustaka numerik modern (misalnya scipy.optimize.newton), dengan dua catatan: tebakan awal harus cukup dekat dan
III.6. Task IV: Fixed Point dan Perbandingan Konvergensi
TASK IV: ITERASI TITIK TETAP + ANALISIS KONVERGENSI KELIMA METODE
Task penutup menghadirkan metode kelima sekaligus mengadakan lomba adu cepat kelima metode pada persoalan yang sama.
- Tulis
sebagai , lalu iterasikan:
python
def fixed_point(g, x0, tol=1e-8, max_iter=50):
print(f"{'i':>3} {'x':>16}")
x = x0
for i in range(1, max_iter + 1):
x_baru = g(x)
print(f"{i:>3} {x_baru:>16.10f}")
if abs(x_baru - x) < tol: # kriteria: perubahan kecil
return x_baru
x = x_baru
return x
g = lambda x: (x + 2) ** (1 / 3)
akar = fixed_point(g, 1.0)
print("akar (konvergen) =", akar)Cara membaca kode (bahasa awam):
g = lambda x: (x + 2) ** (1 / 3)= bentuk lain dari persamaan yang sama: disusun ulang menjadi . Banyak bentuk lain mungkin, dan tidak semuanya konvergen; syaratnya di sekitar akar.if abs(x_baru - x) < tol= stopping criterion ketiga: perubahan antar iterasi sudah kecil, gejala bahwa iterasi "berhenti berubah".x = x_baru= masukkan kembali hasil keluaran sebagai masukan berikutnya, seperti mesin fotokopi menyalin hasil salinannya sendiri.
Output:
i x
1 1.4422495703
2 1.5098974493
3 1.5197243050
4 1.5211412691
5 1.5213453678
6 1.5213747615
7 1.5213789946
8 1.5213796042
9 1.5213796920
10 1.5213797047
11 1.5213797065
akar (konvergen) = 1.5213797064982224- Jalankan kelima metode dengan toleransi
dan bandingkan jumlah iterasinya:
Tabel 6. Perbandingan Jumlah Iterasi Lima Metode (Toleransi 10⁻⁸)
| Metode | Kriteria berhenti | Iterasi | Sifat konvergensi |
|---|---|---|---|
| Bisection | lebar interval < 2×10⁻⁸ | 27 | Linear (terjamin) |
| Regula falsi | 17 | Linear (terjamin) | |
| Fixed point | 11 | Linear ( | |
| Secant | 6 | Orde 1.618 | |
| Newton-Raphson | 4 | Quadratic (kuadratik) |
Catatan pembacaan: kriteria berhenti sengaja dipertahankan sesuai karakter tiap metode; bisection satu-satunya yang memberi jaminan posisi akar (lebar interval), sedangkan metode lain hanya memastikan nilai fungsi atau perubahan bernilai kecil.
Bandingkan laju penurunan galat terhadap akar sejati
python
def jejak_bis(f, a, b, n):
xs = []
for _ in range(n):
c = (a + b) / 2
xs.append(c)
a, b = (a, c) if f(a) * f(c) < 0 else (c, b)
return xs
def jejak_newton(f, df, x0, n):
xs = [x0]
for _ in range(n):
xs.append(xs[-1] - f(xs[-1]) / df(xs[-1]))
return xs
x_star = jejak_newton(f, df, 1.5, 6)[-1]
plt.figure(figsize=(8, 4.8))
plt.semilogy([abs(x - x_star) for x in jejak_bis(f, 1, 2, 27)], "o-",
label="bisection")
plt.semilogy([abs(x - x_star) for x in jejak_newton(f, df, 1.5, 4)], "v-",
label="Newton")
plt.xlabel("iterasi ke-i")
plt.ylabel("galat $|x_i - x^*|$")
plt.title("Perbandingan Laju Konvergensi")
plt.legend()
plt.grid(True)
plt.show()Sebagai latihan mandiri, tambahkan sendiri kurva regula falsi, secant, dan fixed point dengan pola yang sama hingga diperoleh grafik lengkap berikut.

- Tuliskan Lesson Learnt dari grafik semilog: garis bisection lurus (konvergensi linear), garis Newton menjunjam paling tajam (kuadratik). Diskusikan dengan diri sendiri: kapan metode lambat-tapi-pasti lebih dipilih daripada cepat-tapi-risiko? (petunjuk: fungsi mahal dievaluasi, fungsi tidak mulus, atau kebutuhan sertifikasi kebenaran hasil).
Penjelasan: Dalam praktik rekayasa, kombinasi keduanya sering dipakai: mulai dengan bisection untuk mendekati akar dengan aman, lalu berpindah ke Newton untuk "menyelam" cepat. Strategi hibrid semacam ini menjadi dasar algoritma Brent yang dipakai scipy.optimize.brentq.
III.7. Kesimpulan Praktikum
Tabel 7. Panduan Memilih Metode Pencarian Akar
| Situasi | Rekomendasi | Alasan |
|---|---|---|
| Butuh jaminan akar ditemukan | Bisection | Satu-satunya yang memberi batas galat pasti sebelum eksekusi |
| Fungsi mulus dan tebakan awal dekat akar | Newton-Raphson | Konvergensi kuadratik, paling sedikit iterasi |
| Turunan tidak tersedia atau rumit | Secant | Cukup dua titik; |
| Fungsi sangat mahal dievaluasi | Hindari bisection murni | Membutuhkan iterasi terbanyak meskipun murah per iterasi |
| Praktik pustaka modern | Hibrid (Brent) | Berangkat aman dengan bracketing, menutup cepat dengan metode terbuka |
Dari seluruh task dapat disimpulkan bahwa: (1) bracketing method (metode tertutup), yaitu bisection dan regula falsi, menjamin convergence (konvergensi) asalkan akar terkurung, dengan harga laju linear; (2) open method (metode terbuka), yaitu fixed point, Newton-Raphson, dan secant, jauh lebih cepat: Newton konvergen kuadratik dan secant mendekati orde emas 1.618, tetapi konvergensinya bergantung pada kualitas initial guess (tebakan awal) dan kestabilan turunan; (3) jumlah iterasi bisection dapat diprediksi analitik lewat
III.8. Tugas Praktikum (Mandiri)
Pekan ini adalah pekan belajar mandiri: soal-soal berikut untuk melatih diri sendiri dan tidak dikumpulkan. Kerjakan pada notebook yang sama, simpan sebagai bahan diskusi, dan bandingkan jawaban Anda pada pertemuan berikutnya; kunci jawaban tersedia pada dosen/tim praktikum.
- Persamaan transenden
. Akarnya berada di antara dan . Selesaikan dengan bisection (toleransi ), Newton-Raphson ( ), dan secant ( ). Laporkan akar, nilai (akar), dan jumlah iterasi tiap metode, lalu jelaskan metode mana yang paling efisien untuk kasus ini. - Persamaan fase
. Gunakan fixed-point iteration dengan mulai dari . Berapa akarnya dan berapa iterasi yang dibutuhkan (toleransi )? Mengapa iterasi ini konvergen walaupun sangat lambat? - Kegagalan Newton-Raphson. Terapkan Newton-Raphson pada
dengan tebakan awal selama 6 iterasi. Tuliskan nilai tiap iterasi dan jelaskan pola yang terjadi serta hubungannya dengan nilai . - Prediksi teoretis bisection. Tanpa menjalankan program, hitung banyaknya iterasi bisection yang diperlukan untuk menemukan akar
pada interval dengan toleransi . Verifikasi jawaban Anda dengan program.
III.9. Soal Latihan HOTS: Pemrograman Gaya ICPC (Kumulatif Modul 1 sampai 3)
Soal-soal berikut ala kompetisi pemrograman, program Anda membaca masukan sesuai format, lalu mencetak keluaran persis seperti contoh. Latihan ini melatih kemampuan berpikir tingkat tinggi (HOTS) sekaligus merangkum materi Modul 1 (galat dan floating point), Modul 2 (deret Taylor), dan Modul 3 (pencarian akar). Kerjakan mandiri di notebook; cocokkan keluaran program Anda dengan contoh keluaran yang diberikan (semua angka contoh telah diverifikasi dengan Python).
Problem A. Hampir Sama [C4 Analisis · Modul 1]
Komputer menyimpan bilangan riil dengan bit terbatas sehingga 0.1 + 0.2 tidak persis sama dengan 0.3. Dua bilangan SAME jika DIFF.
Masukan: baris pertama berisi
Keluaran: SAME atau DIFF.
text
masukan:
4
0.30000000000000004 0.3
1.0 1.00000001
10000000000000000 10000000000000002
0.000000000001 0.0
keluaran:
SAME
DIFF
SAME
SAMEPetunjuk: inilah Lesson Learnt Modul 1 tentang membandingkan bilangan floating point dengan tolerance (toleransi) relatif, bukan operator ==.
Problem B. Akar Terkurung [C4 Analisis · Modul 3]
Diberikan
Masukan: baris pertama p q a b.
Keluaran: akar aktual prediksi.
text
masukan:
2
1 2 1.0 2.0
2 5 2.0 3.0
keluaran:
1.521380 20 20
2.094552 20 20Petunjuk: gunakan bisection dari Task I apa adanya; kolom prediksi adalah pembuktian Lesson Learnt Task I bahwa jumlah iterasi bisection bisa dihitung sebelum eksekusi. Kasus kedua adalah persamaan legendaris Wallis yang dipecahkan Newton:
Problem C. Mimpi Buruk Newton [C5 Evaluasi · Modul 3]
Diberikan CONVERGED n x dengan FAILED.
Masukan: baris pertama p q x0.
Keluaran:
text
masukan:
2
-1 -2 1.5
-2 2 0.0
keluaran:
CONVERGED 4 1.5213797068
FAILEDPetunjuk: kasus pertama persis Task III. Pada kasus kedua,
Problem D. Sinus Perlahan [C5 Evaluasi · Modul 2 + Modul 3]
Tanpa memanggil math.sin, implementasikan taylor_sin(x, n=15) dari Modul 2, lalu selesaikan
Masukan: baris pertama
Keluaran: akar iterasi.
text
masukan:
3
2
4
100
keluaran:
1.895494 25
2.474577 25
3.110483 25Petunjuk: karena
Problem E. Waktu Naik (Rise Time) [C6 Mencipta · Modul 2 + Modul 3]
Rekonstruksi gelombang persegi dengan fourier_square dari Modul 2) naik dari 0 dan melintasi level 0.5 pada suatu saat
Masukan: baris pertama
Keluaran: t iterasi.
text
masukan:
3
1
5
21
keluaran:
0.064229 20
0.021592 20
0.005895 20Petunjuk: inilah pengukuran rise time pada dunia filter dan sinyal digital. Amati dua hal: jumlah iterasi konstan (jaminan bisection), sementara
BAGIAN IV. MEDIA DAN MEKANISME PENGUMPULAN
Catatan pekan mandiri: tidak ada pengumpulan untuk Modul 3. Mekanisme berikut dicantumkan agar mahasiswa terbiasa dan siap ketika praktikum kembali ke pola reguler pada modul berikutnya.
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 8. Standar Penamaan Proyek dan Berkas Pengumpulan Praktikum Komputasi Numerik
Kode Penjelasan KN2026Komputasi Numerik tahun 2026 5A/5BKelas D4Prodi D-4 Sarjana Terapan 2024Angkatan Modul3Nomor Modul 0013 Digit NIM Terakhir Format berkas:
[KN2026_5A_D4_2024]_Modul3_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]_Modul3_001.zip.Unggah arsip tersebut pada slot Tugas (Assignment) "Pengumpulan Praktikum Modul 3" di Microsoft Teams sebelum batas waktu berakhir.
BAGIAN V. PEMBAHASAN DAN EVALUASI HASIL PRAKTIKUM
Penilaian pada praktikum berdasarkan kriteria berikut:
Tabel 9. 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) |
|---|---|---|---|---|
| Metode Tertutup (25%) | Bisection dan regula falsi benar, tabel iterasi lengkap, prediksi log₂ diverifikasi. | Kedua metode benar namun tanpa verifikasi prediksi iterasi. | Salah satu metode keliru / tabel tidak lengkap. | Kedua metode gagal berjalan. |
| Metode Terbuka (25%) | Newton dan secant benar, konvergensi kuadratik teridentifikasi dari data. | Kedua metode benar tanpa analisis orde. | Implementasi ada galat pada rumus iterasi. | Gagal mengimplementasikan metode terbuka. |
| Analisis Konvergensi (30%) | Perbandingan lima metode benar, grafik dibuat, trade-off jaminan versus kecepatan dijelaskan kritis. | Perbandingan benar, penjelasan trade-off permukaan. | Perbandingan sebagian benar. | Tidak ada analisis perbandingan. |
| 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
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