Anda di halaman 1dari 97

MODUL

PRAKTIKUM ANALISIS NUMERIK


DAN PEMROGRAMAN
DENGAN SCILAB

Disusun oleh:
YULIUS DEDDY HERMAWAN
SITI DIYAR KHOLISOH

LABORATORIUM KOMPUTASI PROSES


PROGRAM STUDI S-1 TEKNIK KIMIA
JURUSAN TEKNIK KIMIA - FAKULTAS TEKNIK INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”
YOGYAKARTA
2020
TATA TERTIB PRAKTIKUM
DI LABORATORIUM KOMPUTASI PROSES
PROGRAM STUDI TEKNIK KIMIA S-1, JURUSAN TEKNIK KIMIA
FAKULTAS TEKNIK INDUSTRI, UPN “VETERAN” YOGYAKARTA

PELAKSANAAN PRAKTIKUM SECARA LURING:


1. Praktikan harus hadir di Laboratorium Komputasi Proses 15 menit sebelum jadwal
praktikum yang diikuti dan mengisi daftar hadir yang disediakan.
2. Praktikan yang terlambat datang lebih dari 15 menit tidak diperkenankan mengikuti
praktikum.
3. Praktikan diwajibkan menaati peraturan yang berlaku di Laboratorium Komputasi Proses,
misalnya: tidak boleh merokok, tidak boleh memakai kaos oblong dan sandal jepit.
4. Ketentuan pakaian praktikan sama dengan ketentuan pakaian untuk mengikuti kuliah.
5. Praktikan yang telah menyelesaikan setiap acara praktikum diwajibkan melaporkan diri
kepada Instruktur atau Asisten praktikum.
6. Praktikan yang tidak mengikuti acara praktikum tertentu dinyatakan tidak hadir dan
tidak ada praktikum ulangan (dengan kata lain, tidak ada inhal). Namun demikian,
praktikan diwajibkan untuk tetap mempelajari dan mempraktikkan acara praktikum
tersebut secara mandiri guna mempersiapkan diri menghadapi ujian responsi.
7. Jumlah ketidak-hadiran praktikan adalah maksimum sebanyak 2 (dua) kali. Jika terdapat
praktikan yang tidak hadir dalam praktikum sebanyak lebih dari 2 (dua) kali, maka secara
otomatis praktikan tersebut dinyatakan gugur dan memperoleh nilai E.
8. Ujian responsi praktikum dilaksanakan sebanyak 2 (dua) kali, yaitu Ujian Responsi-1 dan
Responsi-2. Setiap praktikan diwajibkan untuk menempuh kedua ujian responsi tersebut.
9. Praktikan diwajibkan membawa Kartu Rencana Pendidikan (KRP) yang telah disahkan
(sesuai dengan semester berjalan) pada saat mengikuti Ujian Responsi-1 dan Responsi-2.
10. Nilai akhir praktikum merupakan gabungan dari nilai setiap acara dan nilai responsi.
Jumlah ketidak-hadiran praktikum akan dikontribusikan ke dalam nilai akhir tersebut.
11. Praktikan yang melanggar tata tertib ini akan memperoleh sanksi.

PELAKSANAAN PRAKTIKUM SECARA DARING:


1. Praktikum secara daring (= dalam jaringan = online) dilaksanakan dalam rangka untuk
menindaklanjuti perkembangan situasi pandemi Covid-19 yang masih sedang
berlangsung (guna mengurangi penyebaran Covid-19 secara global).
2. Praktikum secara daring dilaksanakan dengan Sistem Pembelajaran Daring Widya Mwat
Yasa (Spada Wimaya) UPN “Veteran” Yogyakarta melalui laman:
http://spada.upnyk.ac.id
3. Penyampaian informasi dan kegiatan praktikum secara daring juga dilaksanakan melalui
akun google classroom (GCR) Praktikum Analisis Numerik dan Pemrograman (6 kelas,
yaitu: Kelas A, B, C, D, E, dan F).

ii
4. Semua mahasiswa praktikan DIWAJIBKAN untuk melakukan self-enrollment ke laman
Spada Wimaya UPNVY dan join class ke akun GCR sebelum rangkaian kegiatan praktikum
dimulai.
5. Kehadiran (atau presensi) mahasiswa praktikan dalam seluruh rangkaian kegiatan
praktikum dilakukan dan divalidasi secara daring.
6. Selain menempuh dan mempelajari materi praktikum (sesuai dengan cakupan materi
atau kompetensi yang tercantum di dalam Modul Praktikum ini), semua mahasiswa
praktikan DIWAJIBKAN untuk menempuh Ujian Responsi-1 dan Ujian Responsi-2
(berdasarkan jadwal pelaksanaan praktikum secara rinci yang telah diagendakan).
7. Nilai akhir praktikum akan dikontribusikan dari seluruh rangkaian kegiatan praktikum
(hingga Ujian Responsi).
8. Meskipun seluruh rangkaian kegiatan praktikum dilaksanakan secara daring, namun
segala bentuk tindakan kecurangan dalam penyelesaian tugas-tugas praktikum maupun
ujian oleh mahasiswa praktikan (seperti: plagiasi, copy-and-paste, dan sejenisnya) tidak
akan ditolerir (dan akan bisa berdampak terhadap pengurangan nilai praktikum). Semua
mahasiswa praktikan diharapkan untuk menjunjung tinggi kejujuran, kemandirian, dan
juga integritas.
9. Hal-hal lainnya yang terkait dengan teknis pelaksanaan praktikum secara lebih rinci
(dan belum dicantumkan di dalam tata tertib ini) akan diinformasikan lebih lanjut.
10. Praktikan yang melanggar tata tertib ini akan memperoleh sanksi.

Yogyakarta, Oktober 2020

Laboratorium Komputasi Proses


Kepala Laboratorium
(Koordinator Praktikum),

Siti Diyar Kholisoh

iii
KATA PENGANTAR

Masalah komputasi proses pada umumnya tidak sekedar hanya melingkupi satu atau
dua langkah perhitungan, namun melibatkan sejumlah langkah perhitungan yang bersifat
iteratif (atau berulang-ulang) dan menggunakan metode numerik. Penggunaan metode
numerik merupakan salah satu solusi dari sulitnya menyelesaikan permasalahan sistem
secara analitik karena sistem (persamaan matematika) yang dihadapi bersifat tidak linier dan
cukup kompleks. Beberapa contoh persamaan tidak linier dalam proses kimia antara lain:
persamaan laju reaksi kimia, mekanika fluida, termodinamika, optimasi, dan persamaan
diferensial tak-linier lainnya. Beberapa contoh masalah dalam Teknik Kimia disajikan dalam
praktikum ini dan akan diselesaikan dengan software Scilab.
Scilab merupakan sebuah perangkat lunak terbuka (free and open source software)
yang dapat diperoleh atau diunduh (download) dengan mudah dan gratis melalui laman
http://scilab.org. Scilab dapat digunakan untuk kepentingan komputasi numerik, komputasi
matriks, dan grafik dalam suatu lingkungan yang mudah digunakan di mana masalah dan
penyelesaiannya dituliskan sesuai dengan persamaan matematikanya. Dalam Praktikum
Analisis Numerik dan Pemrograman ini kita akan menggunakan Scilab versi terbaru, yaitu
versi 6.1.0. Scilab menyediakan subrutin yang dapat digunakan dengan leluasa untuk
menyelesaikan masalah-masalah komputasi proses. Subrutin tersebut dituliskan di dalam
SciNotes prompt.
Modul Praktikum Analisis Numerik dan Pemrograman dengan Scilab ini disusun untuk
membantu mahasiswa Teknik Kimia dalam membuat suatu algoritma penyelesaian
persamaan tunggal dan atau sistem persamaan yang berhubungan dengan permasalahan
Teknik Kimia. Modul ini disusun untuk mendukung implementasi mata kuliah Praktikum
Analisis Numerik dan Pemrograman (1210311) yang berada dalam Kurikulum Pendidikan S-1
Teknik Kimia, Jurusan Teknik Kimia Fakultas Teknik Industri UPN “Veteran” Yogyakarta, di
Semester 5 (dan berbobot 1 sks). Modul praktikum ini disusun dengan cakupan materi berupa:
pengenalan Scilab, pengaturan alur program, pencarian akar persamaan (tak-linier dan linier,
serta persamaan-tunggal dan sistem persamaan), regresi (curve-fitting), interpolasi, integrasi
numerik, penyelesaian persamaan diferensial biasa dengan initial value problem,
penyelesaian persamaan diferensial dengan boundary value problem, serta optimasi (satu
variabel maupun multi variabel).
Selain itu, tentunya diharapkan bahwa mahasiswa akan mampu berkreasi dalam
membuat bahasa pemrograman dengan Scilab. Akhir kata, semoga pelaksanaan Praktikum
Analisis Numerik dan Pemrograman dapat berjalan dengan lancar dan bermanfaat
khususnya bagi mahasiswa Jurusan Teknik Kimia Fakultas Teknik Industri UPN “Veteran”
Yogyakarta.

Yogyakarta, Oktober 2020


Penyusun,

Siti Diyar Kholisoh

iv
DAFTAR ISI

Halaman

HALAMAN JUDUL i
TATA TERTIB PRAKTIKUM ii
KATA PENGANTAR iv
DAFTAR ISI v

MODUL 1: PENGENALAN SCILAB I-1


1.1 Pendahuluan I-1
1.2 Perintah-Perintah Dasar I-1
1.3 Fungsi Matematika Dasar I-3
1.4 Array I-4
1.5 Matriks I-4
1.6 Operasi Vektor dan Matriks I-5
1.7 Operasi Elementer I-8
1.8 Menulis Keterangan dan Mencetak Hasil I-9
1.9 Grafik (Figure) I-9

MODUL 2: MENGATUR ALUR PROGRAM II-1


2.1 File Script II-1
2.2 Perintah Dasar Mengatur Alur Program II-2
2.3 Mengatur Alur Program dengan Definisi Fungsi II-5
2.4 Perintah Strings II-7
2.5 Latihan Soal II-8

MODUL 3: AKAR-AKAR PERSAMAAN TAK-LINIER TUNGGAL III-1


3.1 Tujuan III-1
3.2 Metode Newton-Raphson III-1
3.3 Metode Secant (Tali Busur) III-2
3.4 Metode Bisection (Bagi Dua) III-3
3.5 Metode False Position (Regula-Falsi) III-4
3.6 Latihan Soal III-5

MODUL 4: AKAR-AKAR SISTEM PERSAMAAN LINIER DAN TAK-LINIER IV-1


4.1 Tujuan IV-1
4.2 Metode Gauss-Seidel untuk Sistem Persamaan Linier IV-1

v
4.3 Metode Jacobi untuk Sistem Persamaan Linier IV-3
4.4 Metode Newton untuk Sistem Persamaan Tak-Linier IV-5
4.5 Latihan Soal IV-7

MODUL 5: CURVE-FITTING DAN INTERPOLASI V-1


5.1 Tujuan V-1
5.2 Regresi Persamaan Linier Sederhana V-1
5.3 Regresi Persamaan Linier Multi Variabel V-2
5.4 Linierisasi Persamaan Tak-Linier Sederhana V-3
5.5 Regresi Polinomial V-4
5.6 Interpolasi Linier V-5
5.7 Interpolasi Kuadrat V-5
5.8 Latihan Soal V-6

MODUL 6: INTEGRASI NUMERIK VI-1


6.1 Tujuan VI-1
6.2 Integrasi dengan Trapezoidal Rule VI-1
6.3 Integrasi dengan Simpson’s 1/3 Rule VI-2
6.4 Latihan Soal VI-4

MODUL 7: PERSAMAAN DIFERENSIAL BIASA DENGAN PERSOALAN NILAI VII-1


AWAL
7.1 Tujuan VII-1
7.2 Metode Euler Eksplisit VII-1
7.2.1 Kasus Persamaan Tunggal VII-1
7.2.2 Kasus Sistem Persamaan VII-2
7.3 Metode Runge-Kutta Orde-4 VII-3
7.3.1 Kasus Persamaan Tunggal VII-3
7.3.2 Kasus Sistem Persamaan VII-4
7.4 Latihan Soal VII-7

MODUL 8: APLIKASI FINITE-DIFFERENCE UNTUK MENYELESAIKAN VIII-1


PERSAMAAN DIFERENSIAL DENGAN PERSOALAN NILAI BATAS
8.1 Tujuan VIII-1
8.2 Aplikasi Finite-Difference untuk Menyelesaikan Persamaan Diferensial VIII-1
dengan Persoalan Nilai Batas (Boundary Value)

vi
8.2.1 Contoh Kasus-1: PDB-BVP Berorde-Dua VIII-2
8.2.2 Contoh Kasus-2: Penerapan Metode Eksplisit dan Implisit VIII-3
untuk Menyelesaikan Persamaan Diferensial Parsial Dua-
Dimensi (Dua-Variabel) dengan Tipe Parabolik
8.3 Latihan Soal VIII-5

MODUL 9: OPTIMASI SATU VARIABEL IX-1


9.1 Tujuan IX-1
9.2 Metode Golden Section (Search) IX-1
9.2.1 Kasus Maksimasi IX-2
9.2.2 Kasus Minimasi IX-2
9.3 Metode Newton IX-4
9.4 Latihan Soal IX-5

MODUL 10: OPTIMASI MULTI VARIABEL X-1


10.1 Tujuan X-1
10.2 Metode Hooke Jeeves X-1
10.2.1 Kasus Minimasi Hooke-Jeeves X-1
10.2.2 Kasus Maksimasi Hooke-Jeeves X-2
10.3 Metode Steepest Ascent/ Descent X-4
10.4 Latihan Soal X-5

DAFTAR PUSTAKA DP-1


TENTANG PENULIS TP-1

vii
MODUL 1
PENGENALAN SCILAB

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020


MODUL 1 – Pengenalan Scilab

MODUL 1
PENGENALAN SCILAB

1.1. Pendahuluan

Scilab merupakan sebuah perangkat lunak terbuka (free and open source software) yang
dapat diperoleh dengan mudah dari internet. Scilab dapat digunakan untuk kepentingan
komputasi numerik, komputasi matriks, dan grafik dalam suatu lingkungan yang mudah
digunakan di mana masalah dan penyelesaiannya dituliskan sesuai dengan persamaan
matematikanya. Scilab dapat dimiliki dan diunduh (download) secara bebas (free) melalui
laman http://scilab.org. Dalam modul Praktikum Analisis Numerik dan Pemrograman ini, akan
digunakan Scilab versi 6.1.0 (versi terbaru, yang dirilis pada tanggal: 25 Februari 2020 serta
mempunyai supported operating system (OS) dengan: Windows Vista/7/8/10 (32/64 bits), GNU
Linux (32/64 bits), dan Mac OS X (Intel)).

1.2. Perintah-perintah Dasar

Ketika pertama kali kita menjalankan Scilab, maka akan muncul command window yang
dikenal sebagai Console seperti ditunjukkan pada Gambar 1.1. Kita dapat menuliskan
persamaan matematika pada Console di sebelah kiri tanda -->. Console ini dapat digunakan
untuk perhitungan matematika seperti halnya kalkulator. Untuk mengetahui hasilnya, kita
cukup menekan <enter>.

Gambar 1.1. Console Scilab

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 I-1
MODUL 1 – Pengenalan Scilab

Contoh 1.1:

-->A = 5*3
A =

15.

-->B = A-10
B =

5.

Pada saat kita bekerja di Console, Scilab menyimpan semua perintah dan variabel yang
kita masukkan. Perintah-perintah dan variabel-variabel yang telah kita tentukan dapat
dipanggil lagi kapan saja. Untuk memanggil variabel tersebut cukup dengan menuliskan
kembali nama variabelnya, dan jika ingin mengulangi perintah yang sama, maka kita dapat
menggunakan tanda panah atas-bawah. Untuk menampilkan daftar semua variabel yang telah
ada, digunakan perintah who. Perintah whos akan menampilkan ukuran baris dan kolom dari
variabel beserta keterangan lainnya.

Contoh 1.2:
-->who

Your variables are:

whos B A

-->whos
Name Type Size Bytes

whos function 9000


B constant 1 by 1 24
A constant 1 by 1 24

Variabel-variabel yang kita buat ini bersifat sementara. Dengan kata lain, jika kita keluar
dari Scilab, maka variabel-variabel ini akan hilang. Agar variabel-variabel ini tidak hilang, maka
kita dapat menyimpannya dalam directory yang kita kehendaki dengan menggunakan perintah:
save diikuti nama variabel. Untuk memanggilnya kembali digunakan perintah load diikuti nama
variabel. Variabel pada current directory dapat kita hapus menggunakan perintah clear diikuti
nama variabel. Perintah clear tanpa nama variabel akan menghapus semua variabel pada
directory. Untuk menghapus dan membersihkan layar pada command windows, digunakan
perintah clc.

Beberapa karakter yang memiliki fungsi tersendiri pada Scilab, antara lain:
// slash ganda, semua teks setelah tanda // merupakan komentar dan tidak dieksekusi.
; titik koma, berguna agar hasil perhitungan tidak ditampilkan di layar. Selain itu,
karakter ini berguna juga untuk memisahkan perintah dalam satu baris.
… tiga titik, berfungsi untuk menyambung perintah yang tidak cukup dalam satu baris.

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 I-2
MODUL 1 – Pengenalan Scilab

Variabel-variabel khusus yang dimiliki Scilab antara lain:


ans nama default hasil perhitungan.
i -1 (bilangan imajiner)

Scilab menyediakan menu help untuk memudahkan kita dalam menggunakan Scilab.
Dengan menuliskan help (tanpa diikuti topik/ command) pada Console maka akan muncul Help
Browser seperti ditunjukkan pada Gambar 1.2. Di dalam help browser ini, semua keterangan
tentang command atau perintah-perintah Scilab dapat dipelajari. Jika kita menuliskan help
diikuti topik/ command, maka Help Browser akan langsung tertuju pada topik/ command yang
kita tuliskan tersebut.

Gambar 1.2. Tampilan help browser

1.3. Fungsi Matematika Dasar


Beberapa fungsi matematika dasar dalam Scilab antara lain adalah:
abs(x) nilai absolut atau magnitude dari bilangan kompleks
acos(x) inverse cosine
acosh(x) inverse hyperbolic cosine
asin(x) inverse sine
atan(x) inverse tangent
cos(x) cosine (dengan x dalam radian)
sin(x) sine (dengan x dalam radian)
tan(x) tangent (dengan x dalam radian)

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 I-3
MODUL 1 – Pengenalan Scilab

exp(x) Eksponensial
log(x) natural logarithm (base: e)
log10(x) common logarithm (base: 10)
* Perkalian
/ Pembagian
+ Penjumlahan
- Pengurangan
^ Pangkat
sqrt(x) Akar kuadrat
dan lain-lain.

1.4. Array
Ada 3 (tiga) cara membuat array pada Scilab, yaitu:
 dengan memasukkan nilai dari elemen-elemen array dalam tanda kurung siku [ ] dan
dipisahkan dengan spasi atau koma.
 dengan menggunakan pola (awal : step : akhir). Jika step = 1, maka step dapat
dihilangkan.
 dengan menggunakan fungsi linspace(awal, akhir, banyaknya nilai) atau fungsi
logspace(pangkat awal, pangkat akhir, banyaknya nilai). Contoh: logspace(0,3,4)
artinya array dari 100 sampai 103 sebanyak 4 buah.

Contoh 1.3:

-->alpha = 1:3:10
alpha =
1. 4. 7. 10.

-->betha = 10:-2:4
betha =
10. 8. 6. 4.

-->aku = linspace(0,3,4)
aku =
0. 1. 2. 3.

-->anda = logspace(0,3,4)
anda =
1. 10. 100. 1000.

1.5. Matriks
Matriks merupakan gabungan dari beberapa array (baris maupun vektor). Elemen
matriks pada Scilab ditulis berdasarkan format baris,kolom, misal: Y = mereka(1,4) berarti Y
adalah elemen matriks “mereka” pada baris ke-1 dan kolom ke-4. Tanda : (titik dua)
menunjukkan elemen pada semua baris atau kolom matriks, misal: X = mereka(:,4) berarti
elemen-elemen pada semua baris pada kolom ke-4. Contoh-contoh penulisan matriks:

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 I-4
MODUL 1 – Pengenalan Scilab

Contoh 1.4:

-->mereka = [alpha; beta; aku; anda]


mereka =
1. 4. 7. 10.
10. 8. 6. 4.
0. 1. 2. 3.
1. 10. 100. 1000.

-->Y = mereka(1,4)
Y =
10.

-->X = mereka(:,4)
X =
10.
4.
3.
1000.

-->Z = mereka(2,:)
Z =
10. 8. 6. 4.

1.6. Operasi Vektor dan Matriks


Beberapa operasi vektor dan matriks yang penting antara lain adalah sebagai berikut.

Transposisi
Transposisi vektor dan matriks dinyatakan dengan simbol (‘). Secara sederhana definisi
transposisi vektor dan matriks adalah mengubah posisi elemen-elemen kolom menjadi
elemen-elemen baris pada vektor dan matriks tersebut, dan sebaliknya. Secara matematika,
proses transposisi dapat dinyatakan sebagai berikut.
A = B’ jika aij = bji

Contoh 1.5:

-->data = [1 3; 5 7]
data =
1. 3.
5. 7.

-->A = data'
A =
1. 5.
3. 7.

Invers dan Determinan


Invers matriks dinyatakan dengan perintah inv(nama variabel). Determinan matriks
dinyatakan dengan perintah det(nama variabel). Syarat penggunaan invers dan determinan
pada matriks adalah bahwa matris tersebut haruslah berupa matriks bujur sangkar.

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 I-5
MODUL 1 – Pengenalan Scilab

Contoh 1.6:

-->V = [1 2 2; 2 3 2; 3 2 1]
V =
1. 2. 2.
2. 3. 2.
3. 2. 1.

-->X = inv(V)
X =
0.3333333 - 0.6666667 0.6666667
- 1.3333333 1.6666667 - 0.6666667
1.6666667 - 1.3333333 0.3333333

-->Y = det(V)
Y =
- 3.

Penjumlahan dan Pengurangan


Penjumlahan dan pengurangan vektor dan matriks adalah penjumlahan dan
pengurangan masing-masing elemennya. Operasi penjumlahan menggunakan tanda (+) dan
operasi pengurangan menggunakan tanda (-). Syarat penjumlahan dan pengurangan adalah
dimensi kedua vektor dan matriks harus sama.

Contoh 1.7:
-->P = [10 20 30]
P =
10 20 30

-->Q = [40 50 60]


Q =
40 50 60

-->X = P+Q
X =
50 70 90

-->Y = P - Q
Y =
-30 -30 -30

Perkalian Vektor dan Matriks


Perkalian vektor dan matriks dilakukan menurut persamaan:
C=AB cik = aijbjk
Syarat perkalian vektor dan matriks adalah jumlah kolom vektor/ matriks pertama haruslah
sama dengan jumlah baris vektor/ matriks kedua (lihat Contoh 1.8).

Pemangkatan Matriks
Pemangkatan n pada matriks berarti perkalian matriks tersebut sebanyak n kali. Syarat
pemangkatan matriks tentu saja adalah bahwa matriks yang akan dipangkatkan harus berupa
matriks bujur sangkar sehingga dapat dikalikan secara berulang-ulang (lihat Contoh 1.9).

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 I-6
MODUL 1 – Pengenalan Scilab

Contoh 1.8:

-->A = [1 3 5; 2 4 6; 3 5 7]
A =
1 3 5
2 4 6
3 5 7

-->B = [2 3; 4 5; 6 7]
B =
2 3
4 5
6 7

-->c = A*B
c =
44 53
56 68
68 83

Contoh 1.9:

-->X = [2 2; 2 2]
X =
2 2
2 2

-->Y1 = X^2
Y1 =

8 8
8 8

Pembagian Matriks
Terdapat dua macam pembagian matriks yaitu:
a. Pembagian kiri : x = A\B yang diartikan sebagai penyelesaian dari: A*x = B
b. Pembagian kanan : x = A/B yang diartikan sebagai: x = A*Inv(B)

Contoh 1.10:

-->A = [1 2 3; 1 4 2; 1 1 2]
A =
1 2 3
1 4 2
1 1 2

--> B = [2; 3; 4]
B =
2
3
4

-->x = A\B
x =
7.6667
-0.3333
-1.6667

-->cek = A*x
cek =
2.0000
3.0000
4.0000

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 I-7
MODUL 1 – Pengenalan Scilab

1.7. Operasi Elementer


Beberapa operasi khusus pada elemen vektor dan matriks antara lain adalah sebagai berikut.

Perkalian dan Pembagian Elemen Vektor dan Matriks


Perkalian dan pembagian elementer berbeda dengan perkalian dan pembagian biasa.
Perkalian dan pembagian elementer ini merupakan perkalian dan pembagian elemen-elemen
dari dua vektor atau matriks (yang mempunyai dimensi sama) dan dinyatakan dengan
perintah .* (titik bintang) dan ./ (titik bagi).

Contoh 1.11:

-->A = [1 2 3]
A =
1 2 3

-->B = [2 2 2]
B =
2 2 2

-->A*B'
ans =
12 (perkalian vektor biasa)

-->A.*B
ans =
2 4 6 (perkalian elemen vektor)

-->A./B
ans =
0.5000 1.0000 1.5000 (pembagian elemen vektor)

Pemangkatan Elemen Vektor dan Matriks


Sama halnya dengan perkalian dan pembagian vektor dan matriks, pemangkatan
elementer juga berlaku untuk setiap elemen dalam suatu vektor atau matriks dan dinyatakan
dengan perintah .^ (titik ^).

Contoh 1.12:

-->A.^B
ans =
1 4 9

-->B.^A
ans =
2 4 8

Contoh 1.13:

» x = [1 2 3];
» y = x.^2 + 2.*x + 4

y =
7 12 19

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 I-8
MODUL 1 – Pengenalan Scilab

1.8. Menulis Keterangan dan Mencetak Hasil


Seperti halnya bahasa pemrograman lainnya, Scilab juga menyediakan perintah-perintah
untuk menuliskan keterangan dan mencetak hasil perhitungan. Untuk menuliskan keterangan
pada hasil pemrograman digunakan perintah: disp(‘keterangan’).

Contoh 1.14:
-->disp('SAYA SEDANG BELAJAR SCILAB')
SAYA SEDANG BELAJAR SCILAB

-->disp('Harus tetap semangat meskipun masih dalam situasi pandemi!')


Harus tetap semangat meskipun masih dalam situasi pandemi!

Salah satu perintah untuk mencetak hasil ataupun data antara lain adalah printf. Contoh
penggunaannya adalah sebagai berikut.

Contoh 1.15:
-->y=[1 2 3 4]
y =

1. 2. 3. 4.

-->printf('%10.3f\n',y')
1.000
2.000
3.000
4.000

1.9. Grafik (Figure)


Scilab juga menyediakan fasilitas untuk membuat grafik dari command window (Console)
atau script. Plot(x,y) menyajikan hubungan antara vektor x terhadap vektor y. Kita dapat
membuat grafik dengan berbagai jenis garis dan warna dengan perintah plot(x,y,s) dimana s
adalah karakter string yang tersusun pada 3 kolom sebagai berikut:
y yellow . point - solid
m magenta o circle : dotted
c cyan x x-mark -. dashdot
r red + plus -- dashed
g green * star
b blue s square
w white d diamond
k black v triangle (down)
^ triangle (up)
< triangle (left)
> triangle (right)
p pentagram
h hexagram

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 I-9
MODUL 1 – Pengenalan Scilab

Sebagai contoh, plot(x,y,'b+:') merupakan perintah membuat grafik y versus x dengan tanda +
dan berwarna biru.

Contoh 1.16:
Diketahui: x = 0:10 dan y = 4x2 + 3x + 5. Dengan menggunakan Scilab dapat diperoleh tampilan
dan grafik sebagai berikut.

-->x = 0:10
x =

0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

-->y = 4*x.^2 + 3*x + 5


y =

5. 12. 27. 50. 81. 120. 167. 222. 285. 356. 435.

-->printf('%10.0f %10.1f\n',x',y')
0 5.0
1 12.0
2 27.0
3 50.0
4 81.0
5 120.0
6 167.0
7 222.0
8 285.0
9 356.0
10 435.0

-->plot(x,y,'b+'); xlabel('x'); ylabel('y')

Selain menggunakan fungsi ‘plot’ (seperti tersebut di atas), Scilab juga menyediakan
sejumlah fitur lain untuk menggambarkan grafik dalam bentuk 2 dimensi maupun 3 dimensi.
Untuk mengenalnya lebih lanjut, silakan mengakses help browser maupun ‘2D and 3D Plots’
pada menu Demonstrations – Graphics.
Jika kita ingin menampilkan beberapa grafik (secara bersamaan) dalam jendela yang
sama, maka dapat digunakan perintah ‘subplot’.

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 I-10
MODUL 1 – Pengenalan Scilab

Contoh 1.17:
Diketahui: x = 0:10; y = 4x2 + 3x + 5; dan z = 2 sin(x/3); dengan Scilab maka dapat diperoleh
tampilan dan grafik sebagai berikut.

-->x = 0:10
x =

0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

-->y = 4*x.^2 + 3*x + 5


y =

5. 12. 27. 50. 81. 120. 167. 222. 285. 356. 435.

-->z = 2*sin(x/3);

-->printf('%10.0f %10.1f %10.3f\n',x',y',z')


0 5.0 0.000
1 12.0 0.654
2 27.0 1.237
3 50.0 1.683
4 81.0 1.944
5 120.0 1.991
6 167.0 1.819
7 222.0 1.446
8 285.0 0.915
9 356.0 0.282
10 435.0 -0.381

-->clf // Perintah untuk menghapus tampilan grafik sebelumnya

-->subplot(1,2,1); plot(x,y,'or'); xlabel('x'); ylabel('y');

-->subplot(1,2,2); plot(x,z,'k'); xlabel('x'); ylabel('z');

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 I-11
MODUL 2
MENGATUR ALUR PROGRAM

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020


MODUL 2 – Mengatur Alur Program

MODUL 2
MENGATUR ALUR PROGRAM

2.1. File Script

Untuk masalah-masalah yang sederhana, kita dapat menyelesaikannya di dalam


command window (Console) pada prompt Scilab dengan cepat dan efisien. Namun demikian,
dengan bertambahnya perintah dan perubahan variabel yang memerlukan perubahan
perintah pula, menuliskan perintah dalam prompt Scilab cukup merepotkan dan tidak efisien.
Untuk itulah, Scilab mempunyai solusi, yaitu dengan menggunakan file script yang disebut
dengan SciPad (pada versi: 5.1.1) atau SciNotes (pada versi: 5.5.2, 6.0.2, dan juga 6.1.0). File
ini selanjutnya disimpan dalam extension: *.sci atau *.sce.

Untuk membuat file script, pilihlah menu Launch SciNotes pada menu bar Console
seperti pada Gambar 2.1. Prosedur ini akan mengeluarkan teks editor di mana kita dapat
memasukkan perintah Scilab. Setelah file ini disimpan dalam suatu direktori yang kita pilih
dengan nama file tertentu (misalnya: latih1.sce), maka Scilab dapat menjalankan semua
perintah dalam file ini pada prompt Scilab.

Launch SciNotes

Gambar 2.1. Launch SciNotes untuk membuat file script

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 II-1
MODUL 2 – Mengatur Alur Program

Gambar 2.2. Pemilihan directory untuk menyimpan file

Jika kita memilih atau menekan icon Launch SciNotes, maka semua file Scilab yang
diketikkan dalam SciNotes akan secara otomatis disimpan dalam direktori My Documents
(seperti pada Gambar 2.2). Sebelum menjalankan program Scilab, sebaiknya direktori
penyimpanan SciNotes diubah lebih dahulu (dengan memilih direktori yang kita inginkan).
Scilab akan mengeksekusi semua perintah yang ditulis dalam SciNotes. Jika terdapat kesalahan
perintah atau kekurangan data atau informasi, maka akan muncul komentar pada prompt
window (pada jendela Console). Beberapa contoh penggunaan SciNotes akan dibahas dalam
sub-bab berikutnya.

2.2. Perintah Dasar Mengatur Alur Program


Sebagaimana bahasa pemrograman pada umumnya, Scilab juga menyediakan
perintah-perintah untuk mengatur alur program atau pengambilan keputusan. Beberapa
perintah Scilab yang digunakan untuk mengatur alur program antara lain:

For Loop
Fungsi for untuk melakukan loop sejumlah urutan pemrograman atau perhitungan
yang telah ditentukan dengan bentuk umum sebagai berikut:
for i = array
commands
end

Contoh 2.1:

Menghitung kapasitas panas gas CH4 pada berbagai suhu dengan persamaan:

Cp = 38,387 – 7,3664 x 10-2 T + 2,9098 x 10-4 T2 – 2,6385 x 10-7 T 3

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 II-2
MODUL 2 – Mengatur Alur Program

Program di SciNotes:
// Latihan membuat alur program dengan perintah for_end
clear;clc;
T = [300:25:400]; // suhu [K]
n = length(T); // jumlah elemen vektor T
for i = 1:n
Cp(i) = 38.387 - 7.3664e-2*T(i) + 2.9098e-4*T(i)^2 - 2.6385e-7*T(i)^3;
end
T
Cp

Maka, hasil eksekusinya di command prompt adalah:


T =

300. 325. 350. 375. 400.


Cp =

35.35205
36.123487
36.937081
37.768098
38.5918

Sebagai alternatif, penulisan program dapat dilakukan dengan:


// Latihan membuat alur program dengan perintah for_end
clear;clc;
for T = [300:25:400]; // suhu [K]
Cp = 38.387 - 7.3664e-2*T + 2.9098e-4*T^2 - 2.6385e-7*T^3;
end

While Loop
Fungsi while digunakan untuk melakukan pengulangan perintah pemrograman atau
perhitungan yang diapitnya selama kondisi pengujinya benar. Di dalam loop harus ada
perintah-perintah yang membuat kondisi pengujinya menjadi salah. Karena kalau tidak, loop
akan berlangsung terus-menerus. Bentuk umum perintah while loop adalah sebagai berikut.

while expression
commands
end

Contoh 2.2:
Program di SciNotes:
// Latihan membuat alur program dengan perintah while_end
clc;clear;
n = 5; iterasi = 0;
while iterasi < n
iterasi = iterasi + 1;
A(iterasi) = n-iterasi;
end
iterasi
A

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 II-3
MODUL 2 – Mengatur Alur Program

Hasil eksekusi di command prompt:

iterasi =

5.
A =

4.
3.
2.
1.
0.

if dan elseif Loop


Fungsi if adalah identik dengan jika … maka …, perintah ini dapat digunakan untuk
menguji kondisi tertentu. Bentuk umum perintah if adalah sebagai berikut.

if expression
commands
end

atau:

if expression then
commands evaluated if TRUE
else
commands evaluated if TRUE
end

atau:

if expression1 then
commands evaluated if expression1 is TRUE
elseif expression2 then
commands evaluated if expression2 is TRUE
else …
end

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 II-4
MODUL 2 – Mengatur Alur Program

Contoh 2.3:

Program di SciNotes:
// Latihan membuat alur program dengan perintah if_then_elseif_then_else_end
clc; clear;
x = 2
if x == 0 then
disp('x = 0')
elseif x < 0 then
disp('x = bilangan negatif')
else
disp('x = bilangan positif')
end

Hasil eksekusi di command prompt:


x =

2.

x = bilangan positif

2.3. Mengatur Alur Program dengan Definisi Fungsi


Scilab juga menyediakan beberapa menu untuk mendefinisikan suatu fungsi. Fungsi
yang sudah didefinisikan tersebut dapat dipanggil dan digunakan untuk mengeksekusi fungsi
dengan variabel input yang baru.

deff
Menu deff digunakan untuk mendefinisikan suatu fungsi yang tidak begitu panjang dan
dapat diketik dalam satu baris program. Penulisan definisi fungsi dengan deff dijelaskan
sebagai berikut:
deff('[s1,s2,...] = newfunction(e1,e2,....)',text)
di mana:
newfunction : nama fungsi
e1,e2,..., : variabel-variabel input
s1,s2,..., : variabel-variabel output
text : matriks dari karakteristik string

Contoh 2.4 :

Program di SciNotes:
// latihan mendefinisikan fungsi dengan deff
clear; clc
a = [4 5 6]; b = 2;
deff('[s1,s2] = fungsiab(a,b)','s1 = a^2 + b, s2 = s1-b');
[s1,s2] = fungsiab(a,b)

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 II-5
MODUL 2 – Mengatur Alur Program

Hasil eksekusi di command prompt (Console):

s2 =

16. 25. 36.


s1 =

18. 27. 38.

Apabila nilai variabel input pada Contoh 2.4 sudah diketahui, maka fungsi dapat dipanggil
dengan menulis: exec(nama fungsi) sebagai berikut:

Program di SciNotes:
// latihan mendefinisikan fungsi dengan deff
clear; clc
a = [4 5 6]; b = 2;
deff('[s1,s2] = fungsiab(a,b)','s1 = a^2 + b, s2 = s1-b');
exec(fungsiab)

Hasil eksekusi di command prompt (Console):


s1 =

18. 27. 38.


s2 =

16. 25. 36.

function ... endfunction


Menu function (untuk mengatur alur program) dapat membuat alur program menjadi
lebih efisien. Penjelasan menu function adalah sebagai berikut:

function <lhs_arguments> = <function_name><rhs_arguments>


<statements>
endfunction

di mana:
<function_name> : nama fungsi yang digunakan
<rhs_arguments> : daftar variabel input yang dituliskan didalam tanda ( ), misalnya
(x1,x2,…,xn)
<lhs_arguments> : variabel output yang dituliskan dalam tanda [ ], misalnya [x,y] = artinya
output perhitungan adalah x dan y; Jika dalam perhitungan menghasilkan
hanya satu output maka tanda [ ] dapat dihilangkan.
<statements> : berisi instruksi atau pernyataan

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 II-6
MODUL 2 – Mengatur Alur Program

Contoh 2.5:
Program di SciNotes:
// Latihan membuat alur program dengan function
clc; clear;
function [x,y] = fungsiku(a,b)
x = a + b
y = a - b
endfunction
[x,y] = fungsiku(3,2)

Hasil eksekusi di command prompt (Console):


y =

1.
x =

5.

2.4. Perintah Strings


Scilab juga menyediakan perintah ‘string’, yaitu penulisan perintah-perintah yang
menggunakan variabel strings. Namun variabel tersebut dapat dipanggil sebagai variabel string
maupun numerik. Hal ini dapat membantu mempermudah perhitungan yang berulang-ulang
dengan variabel input yang berbeda-beda (variabel input terbaru). Dengan kata lain, perintah
strings dapat digunakan sebagai program ‘sub-routine’.
Cara penulisan perintah ‘strings’ sangat penting dalam keberhasilan mengeksekusi
program. Penulisan perintah ‘strings’ dapat dijelaskan sebagai berikut:

nama = ([‘perintah-perintah 1’; ‘perintah-perintah 2’ ; ...... ; ’perintah-perintah n’]);

Instruksi ’strings’ dapat dipanggil dengan cara sebagai berikut:


 evstr(nama) : evaluasi strings, apabila perintah-perintah di antara tanda kurung tidak
kompleks atau bisa dituliskan dalam satu baris.
 execstr(nama) : eksekusi strings, digunakan apabila perintah-perintah di antara tanda
kurung sangat kompleks, dan dituliskan pada lebih dari satu baris.

Contoh 2.6:

Program di SciNotes:

// latihan menggunakan instruksi strings dengan command evstr


clear; clc
x1 = 2; y1 = 4;
RUMUS =(['(x+y)/2' ;'(x-y)/2']);
x = x1; y = y1; //variabel input
hasil = evstr(RUMUS)

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 II-7
MODUL 2 – Mengatur Alur Program

Hasil eksekusi di command prompt (Console):

hasil =

3.
- 1.

Contoh 2.7:

Program di SciNotes:
// latihan menggunakan instruksi string dengan command execstr
clear; clc
x1 = 2; y1 = 4;
RUMUS = (['(x+y)/2']);
x = x1; y = y1; //variabel input
hasil = evstr(RUMUS)
//ulangi perhitungan RUMUS dengan x dan y yang lain
disp('hasil perhitungan ulang')
dx = 1; dy = 1; it = 0;
ULANG=(['for i=1:3'
'it = it + 1'; 'x = x1 + dx'; 'y =y1 + dy';
'HU = evstr(RUMUS)';
'disp(HU)';
'x1 = x';'y1 = y';
'end']);
execstr(ULANG)

Hasil eksekusi di command prompt (Console):


hasil =
3.

hasil perhitungan ulang


4.
5.
6.

2.5. Latihan Soal

1. Suatu campuran terdiri dari 3 komponen (zat), yaitu: toluena (C6H5CH3) sebanyak 35%-mol,
p-xylena (C6H4(CH3)2) sebanyak 10%-mol, dan sisanya berupa etilbenzena (C6H5C2H5).
Berapakah berat molekul relatif (BM) campuran zat ini?
Buatlah program Scilab sederhana dengan memanfaatkan: (a) perintah atau fungsi
‘sum’ atau operasi aljabar vektor dan matriks secara langsung, serta kemudian
membandingkannya dengan menggunakan: (b) perintah pengaturan alur program
(misalnya: perintah for-end loop), untuk melakukan perhitungan ‘  (sigma)’ dalam
kasus ini.

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 II-8
MODUL 2 – Mengatur Alur Program

2. Harga kapasitas panas suatu campuran gas pada suhu tertentu dinyatakan dengan
n
persamaan sebagai berikut: CP campuran  y C
1
i Pi

di mana: CPi  A i  Bi T  C iT 2  DiT 3 adalah kapasitas panas komponen i


yi adalah fraksi mol komponen i

Jika diketahui data campuran gas sebagai berikut:

Nama Fraksi-mol
No. Ai Bi Ci Di
Komponen (yi)
1 CH4 0,45 4,750 1,200 x 10-2 0,303 x 10-5 -2,630 x 10-9
2 C 2H6 0,30 1,648 4,124 x 10-2 -1,530 x 10-5 1,740 x 10-9
3 H2 0,15 6,952 -0,046 x 10-2 0,096 x 10-5 -0,208 x 10-9
4 O2 0,10 6,085 0,363 x 10-2 -0,171 x 10-5 0,313 x 10-9
CPi [=] kal/(gmol.K) dan T [=] K

Tentukanlah kapasitas panas campuran pada berbagai suhu: T = 30 oC hingga T = 100 oC.
Ambillah beda suhu sebesar: delT = 10 oC dan delT = 5 oC.
Sajikanlah hasil perhitungan dalam bentuk: (a) tabel, dan (b) grafik.

3. Suhu kritik semu campuran gas (Tpcm) dapat ditentukan melalui persamaan:
N N
Tpcm   y y T i j cij
i1 j1

dengan: yi, yj = fraksi mol komponen ke i (j) di dalam campuran


Tcij = k*ij (Tci + Tcj)/2
Tci,Tcj = suhu kritik komponen ke i (j)
k*ij = konstanta interaksi biner dari Barner dan Quinland

Jika terdapat campuran gas: etana (40%-mol), etilena (10%), dan propilena (50%) pada
suhu 300 K, serta tersedia data berikut ini:
Komponen Etana Etilena Propilena
i 1 2 3
Mi, kg/kmol 30,070 28,054 42,081
Tci, K 305,4 282,4 364,9

Konstanta interaksi biner dari Barner dan Quinland (Sumber: The Properties of Gases and
Liquids, Third Edition, Robert C. Reid, John M. Prausnitz and Thomas K. Sherwood,
McGraw‐Hill (1977)):

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 II-9
MODUL 2 – Mengatur Alur Program

Komponen Etana Etilena Propilena


Etana 1,00 1,00 1,01
Etilena 1,00 1,00 1,02
Propilena 1,01 1,02 1,00

Hitunglah: Berapakah suhu kritik semu campuran gas (Tpcm ) ini?

4. Tentukanlah nilai angka Reynolds (Re) dan faktor gesekan (f) dari suatu aliran fluida
melalui pipa, di mana kecepatan linier aliran divariasikan pada: u = [1:1:20] x 10-2 (m/detik).

Dalam hal ini:


Du
Angka Reynolds: Re 

Faktor gesekan (f) dipengaruhi oleh rezim aliran, yaitu:
16
 Untuk rezim laminer (Re ≤ 2100): f 
Re
 Untuk rezim transisi (2100 < Re < 4000):

1    5,02   
5,02  D 13  
  4 ,0 log  D   log  D log  
f  3,7  Re  3,7 Re  3,7 Re  
    
 Untuk rezim turbulen (4000  Re  108):

 
1  Re 
 3,6 log  
f  0,135  Re   6,5  
  
 D 
di mana: /D = rasio kekasaran pipa (roughness ratio)

Data:  = 1000 [kg/m3];  = 0,001 [kg/(m.detik)]


 = 5 x 10-5 [m]; D = 2,5 [cm]

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 II-10
MODUL 3
AKAR-AKAR PERSAMAAN TAK-LINIER TUNGGAL

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020


MODUL 3 – Akar-akar Persamaan Tak-Linier Tunggal

MODUL 3
AKAR-AKAR PERSAMAAN TAK-LINIER TUNGGAL

3.1. Tujuan
 Menentukan akar-akar persamaan tak-linier tunggal dengan menggunakan dua
kategori besar metode, yaitu:
(1) metode terbuka (open methods), yang meliputi: metode Newton-Raphson dan
secant (tali busur), serta
(2) metode pengurung (bracketing methods), seperti: metode bisection (bagi dua)
dan false position (regula-falsi).
 Membandingkan hasil-hasil yang diperoleh dari penggunaan masing-masing metode.

3.2. Metode Newton-Raphson

Jika x merupakan akar persamaan tak-linier dari fungsi tunggal berupa: f(x) = 0, maka

f xi 
metode Newton-Raphson (NR) dapat dinyatakan sebagai: x i1  xi 
f' xi 
di mana: f ‘(xi) = turunan pertama dari fungsi f(xi).

Gambar 3.1. Diagram alir metode Newton-Raphson

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 III-1
MODUL 3 – Akar-akar Persamaan Tak-Linier Tunggal

Algoritma penentuan akar persamaan tak-linier tunggal dengan metode Newton-


Raphson ditunjukkan dalam diagram alir pada Gambar 3.1. Dalam hal ini, nilai fungsi turunan
pertama f’(xi) dapat ditentukan melalui cara:
(1) analitik (jika memungkinkan), atau
(2) numerik (melalui pendekatan finite-divided-difference, misalnya dengan pendekatan
forward, backward, atau centered; di mana cara ini dapat diaplikasikan secara luas untuk
sejumlah kasus dengan berbagai kompleksitas persamaan yang dijumpai). Pendekatan
diferensiasi numerik tersebut dicontohkan dalam tabel berikut ini.

Jika h (atau x) menyatakan sebuah “bilangan kecil”, maka:

Turunan Pertama, f’(X)


Pendekatan
dengan 2 Titik
f (X  h)  f(X)
Forward (maju) f'(X) 
h
f (X)  f(X  h)
Backward (mundur) f'(X) 
h
f(X  h)  f (X  h)
Centered (tengah, terpusat) f'(X) 
2h

Selanjutnya, besarnya error (atau: ‘beda’) pada setiap langkah perhitungan (sebagai
salah satu kriteria untuk menghentikan iterasi) juga dapat dinyatakan melalui approximate
error (ea) sebagai berikut:

xsekarang  xsebelumnya
approximate error (ea )  x 100%
x sekarang

3.3. Metode Secant (Tali Busur)

Secara umum, metode secant (sebagai salah satu metode dalam kategori open
methods) dinyatakan sebagai berikut:

f  xi  xi 1  xi 
xi 1  xi 
f  xi 1   f  xi 

Berbeda dengan Newton-Raphson, metode secant tidak memerlukan turunan dari fungsi f(x).
Namun demikian, metode ini memerlukan 2 nilai tebakan awal, yaitu xi  1 dan xi. Algoritma
penentuan akar persamaan tak-linier tunggal dengan metode secant ditunjukkan melalui
diagram alir pada Gambar 3.2.

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 III-2
MODUL 3 – Akar-akar Persamaan Tak-Linier Tunggal

Gambar 3.2. Diagram alir metode secant (tali busur)

3.4. Metode Bisection (Bagi Dua)

Metode bisection (bagi dua) sangat berbeda dibandingkan dengan metode Newton-
Raphson maupun metode secant, karena bisection merupakan salah satu metode dalam
kategori metode pengurung yang mempunyai 2 (dua) nilai tebakan awal (di mana kedua nilai
tebakan awal ini harus “mengurung” atau “mengapit” akar sesungguhnya) dan berproses
secara terus menerus (berulang-ulang) dengan cara mempersempit rentang variabelnya.

Pada metode bisection, terlebih dahulu ditentukan nilai xrendah dan xtinggi sebagai
rentang atau batas dalam mencari akar sesungguhnya. Nilai akar sesungguhnya berada di
antara xrendah dan xtinggi sehingga disebut sebagai xtengah. Nilai xtengah (XM) dapat ditentukan

xrendah  xtinggi
dengan persamaan: xtengah 
2
Selanjutnya, proses penyempitan rentang tersebut dilakukan dengan cara:
 Jika: f(xrendah). f(xtengah) < 0 maka: (xtinggi)baru = (xtengah)lama
 Jika: f(xrendah). f(xtengah) > 0 maka: (xrendah)baru = (xtengah)lama

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 III-3
MODUL 3 – Akar-akar Persamaan Tak-Linier Tunggal

Algoritma penentuan akar persamaan tak-linier dengan metode bisection ditunjukkan dalam
diagram alir pada Gambar 3.3.

Gambar 3.3. Diagram alir metode bisection

3.5. Metode False Position (= Regula-Falsi = Interpolasi Linier)

Metode false-position (atau regula-falsi atau interpolasi linier) merupakan contoh


metode pengurung yang lainnya (selain bisection). Metode-metode pengurung harus
menggunakan nilai-nilai tebakan awal (xrendah dan xtinggi) yang ‘mengurung’ akar sesungguhnya
(dalam hal ini: nilai fungsi f pada xrendah dan xtinggi ‘berbeda tanda’).
Metode false-position diproses secara berulang-ulang dengan cara yang sama (dengan
metode bisection), namun hanya berbeda dalam hal penentuan nilai xtengah (xM)-nya, yaitu:

xU  xL
x M  x U  f(x U )
f (x U )  f(x L )
x U  xL
atau: x M  x L  f (x L )
f (x U )  f (x L )
dengan: xM  xtengah; xU  xtinggi; xL  xrendah

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 III-4
MODUL 3 – Akar-akar Persamaan Tak-Linier Tunggal

Prosedur penentuan akar persamaan tak-linier tunggal dengan metode false position
disajikan melalui algoritma berikut ini:

1. Mulai
2. Ambil: nilai tebakan awal XL dan XU, nilai toleransi ‘tol’, nilai awal ‘beda’
3. Hitung nilai: f(XL) dan f(XU)
4. Cek nilai tebakan awal (apakah sudah sesuai atau belum), melalui perkalian antara f(XL)
dan f(XU). Jika bernilai negatif, maka tebakan awal sudah sesuai (benar).

5. Lakukan secara berulang-ulang (dalam loop) hingga diperoleh: beda < tol
 Hitung nilai Xtengah (atau: XM) dengan formula false position
 Hitung nilai: f(XL), f(XU), dan f(XM)
 Jika: f(XL)*f(XM) < 0 maka: (XU)baru = (XM)lama
Jika: f(XL)*f(XM) > 0 maka: (XL )baru = (XM)lama
 Hitung nilai ‘beda’, misalnya: beda = |XU – XL| (atau: pendefinisian lainnya)

6. Tuliskan nilai atau hasil: X = XM


7. Selesai

Untuk iterasi dengan metode-metode pengurung, nilai error (atau: ‘beda’) pada setiap langkah
perhitungan juga dapat dinyatakan melalui approximate error (ea) sebagai berikut:

xM , sek arang  x M ,sebelumnya


approximate error (ea )  x 100%
x M , sek arang

3.6. Latihan Soal

Selesaikanlah latihan soal di bawah ini dengan menggunakan semua metode


tersebut di atas (Newton-Raphson, secant, bisection, dan false position).
Selanjutnya, bandingkanlah hasil-hasil yang Anda peroleh.

1. Tentukan akar-akar dari persamaan: f(x) = x 3  11 x 2 + 39 x  45


Petunjuk:
 Plotkanlah grafik f(x) lebih dulu, untuk memperlihatkan karakteristik fungsinya.
 Silakan mengecek juga hasil secara analitik-nya (yang menunjukkan nilai-nilai akar yang
sesungguhnya).
 Selanjutnya, sajikanlah hasil-hasil perhitungan iteratif yang diperoleh.

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 III-5
MODUL 3 – Akar-akar Persamaan Tak-Linier Tunggal

2. Faktor kompresibilitas gas (Z) dapat dinyatakan dengan persamaan Peng-Robinson sebagai

berikut: Z3  (1  B) Z2 + (A  3B2  2B) Z  (AB  B2  B3) = 0


aP bP
di mana: A  dan B 
R 2T 2 RT
dengan parameter Peng-Robinson sebagai berikut:

R 2Tc2
a  0, 45724
Pc

R Tc
b  0,0778
Pc

  1  S 1  T  r
0.5 2

T P
Tr  , Pr 
Tc Pc

S  0,37464  1,54226   0,26992  2


Tentukanlah nilai faktor kompresibilitas gas etilena (C2H4) pada: suhu (T) = 235,9 K dan
tekanan (P) = 1381,3 kPa.
Data: Tc = 305,4 K; Pc = 4880 kPa;  = 0,0989; R = 8,3144 [(cm3 kPa)/(mol K)]

3. Besarnya Fanning friction factor (f) dari suatu aliran fluida melalui pipa pada zona turbulen
1
dapat dinyatakan dalam persamaan:
f
 
 4 log Re f  0,4

 uD
dengan: Re 

Berapakah nilai f, jika nilai f berada pada batasan antara 0,005 dan 0,01.
Data:  = 1000; u = 0,3; D = 0,0508;  = 0,001
Catatan: Plotkanlah grafik fungsinya (pada rentang variabel bebas yang diperlebar,
misalnya: 0 < f < 0,5; sesuai dengan “nilai logis”-nya), selanjutnya lakukan/
berikan analisis Anda terhadap hal tersebut.

4. Diketahui persamaan kapasitas panas suatu zat sebagai berikut:


CP = 1,648 + 0,04124 T  1,53x10-5 T2 [kal/(gmol.K)]
dengan: T dalam K
Tentukanlah suhu T pada saat: CP = 12,73 kal/(gmol.K).

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 III-6
MODUL 3 – Akar-akar Persamaan Tak-Linier Tunggal

5. Pendirian suatu pabrik kimia memerlukan fixed capital (FC) = Rp 720 milyar dan working
capital (WC) = Rp 285 milyar. Nilai annual cash flow (C) = Rp 250 milyar. Umur pabrik
diperkirakan selama 10 tahun dengan salvage value (SV) = Rp 72 milyar. Jika i menyatakan
nilai suku bunga investasi ini yang diekivalensikan dengan jika disimpan di bank,
tentukanlah nilai i (secara iteratif)!
Dalam hal ini, jika digunakan present value analysis, maka nilai i dapat dihitung melalui
persamaan:
C C C C WC  SV
FC  WC   2
 3
 ...  10

1  i (1  i ) (1  i ) (1  i ) (1  i)10

6. In a chemical engineering process, water vapor (H2O) is heated to sufficiently high


temperatures that a significant portion of the water dissociates, or splits apart, to form
oxygen (O2) and hydrogen (H2): H2O  H2 + ½ O2. If it assumed that this is the only reaction
involved, the mole fraction x of H2O that dissociates can be represented by:

x 2 Pt
K
1 x 2x
where K is the reaction’s equilibrium constant and Pt is the total pressure of the mixture. If
Pt = 2,9 atm and K = 0,05; determine the value of x that satisfies the equation above.

7. Perhitungan kesetimbangan uap-cair dalam sebuah flash drum (yang dapat didekati
sebagai distilasi satu tahap) yang beroperasi pada suhu T dan tekanan P mengacu pada
persamaan atau fungsi f sebagai berikut:
n n n
z j K j  1 
f   y  x
j j   1    K j
 0
j1 j1 j1

V
di mana:  (merupakan rasio banyaknya umpan yang teruapkan)
F
Kj  konstanta kesetimbangan uap-cair komponen j, yang dapat diperoleh dari
sejumlah persamaan empiris, seperti persamaan De-Priester, atau terkait
dengan tekanan uap murni komponen j (Pjo, dapat didekati melalui
persamaan Antoine).

Permasalahan yang mungkin terjadi dalam flash calculation meliputi:


Type Specified Calculate
1 T,  P
2 P,  T
3 P, T 

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 III-7
MODUL 3 – Akar-akar Persamaan Tak-Linier Tunggal

Contoh Kasus (Tipe 3):


Campuran hidrokarbon sebanyak 75 kmol/jam diumpankan dalam penguap sekejap (flash
vaporizer) pada tekanan 116 kPa dan suhu 110 oC. Tentukan laju produk uap (V) dan produk
cair (L) serta fraksi mol komponen (yj dan xj) dalam produk uap dan cair.

Fraksi Mol di Konstanta Antoine


j Komponen
Umpan (zj) A B C
1 Benzena 0,25 14,16 2948,78 -44,56
2 Toluena 0,55 14,25 3242,38 -47,18
3 o-Xylena 0,15 14,12 3412,02 -58,68
4 p-Xylena 0,05 14,08 3351,69 -57,60

Konstanta kesetimbangan uap-cair tiap komponen dapat ditentukan dari persamaan


B
Antoine: ln Po  A 
T  C 
Pjo
dengan: K j 
P
Po  tekanan uap murni komponen [kPa];
T  suhu sistem [K];
P  tekanan sistem [kPa]

Catatan:
Setelah menyelesaikan kasus soal tersebut di atas, coba Anda ulangi menuliskan
algoritma dan program numerik (dengan Scilab), jika kasus soal ini diterapkan untuk flash
calculation:
 Tipe 1, dan
 Tipe 2.

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 III-8
MODUL 4
AKAR-AKAR SISTEM PERSAMAAN LINIER
DAN TAK-LINIER

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020


MODUL 4 – Akar-akar Sistem Persamaan Linier dan Tak-Linier

MODUL 4
AKAR-AKAR SISTEM PERSAMAAN LINIER DAN TAK-LINIER

4.1. Tujuan
 Menentukan akar-akar sistem persamaan linier secara simultan dan iteratif (dengan
metode Gauss-Seidel dan Jacobi).
 Menentukan akar-akar sistem persamaan tak-linier secara simultan (dengan metode
Newton).

4.2. Metode Gauss-Seidel untuk Sistem Persamaan Linier


Metode iteratif Gauss-Seidel merupakan metode yang paling umum digunakan untuk
menyelesaikan sistem persamaan aljabar linier secara simultan (atau serempak). Berawal dari
nilai-nilai tebakan awal untuk x, nilai awal ini selanjutnya diproses secara berulang-ulang (atau
iteratif), hingga diperoleh nilai x yang cukup dekat dengan nilai sesungguhnya (atau memenuhi
batas toleransi yang telah ditetapkan). Untuk sistem persamaan linier yang melibatkan matriks
A dan vektor b yang berorder n, diperlukan nilai tebakan awal x sejumlah (n-1) buah.
Tinjaulah sistem persamaan aljabar linier (dengan 3 variabel bebas) yang dinyatakan
dalam bentuk berikut ini: a11 x1 + a12 x2 + a13 x3 = b1
a21 x1 + a22 x2 + a23 x3 = b2
a31 x1 + a32 x2 + a33 x3 = b3
atau, jika dituliskan dalam bentuk perkalian matriks dan vektor:

a1,1 a1, 2 a1,3   x1  b1 


    
a2 ,1 a2 ,2 a2 ,3   x2   b2 
a    
 3,1 a3 ,2 a3,3   x3  b3 
A x   b 
Selanjutnya, penyelesaian dengan metode Gauss-Seidel dapat dituliskan dalam bentuk:
new b1 a12 old a13 old
x1   x2  x3
a11 a11 a11
b2 a a
x 2new   21 x 1new  23 x 3old
a22 a22 a22
new b a new a new
x3  3  31 x 1  32 x 2
a33 a33 a33

Algoritma penyelesaian sistem persamaan aljabar linier dengan metode Gauss-Seidel


ditunjukkan dalam diagram alir pada Gambar 4.1.

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IV-1
MODUL 4 – Akar-akar Sistem Persamaan Linier dan Tak-Linier

MULAI

TEBAKAN AWAL
x2old = x2 & x3old = x 3

new b1 a12 old a13 old


x1   x2  x3
a11 a11 a11
new b2 a21 new a 23 old
x2   x1  x3
x2old = x2new a22 a22 a22
x3old = x3new new b3 a31 new a32 new
x3   x1  x2
a33 a33 a33

error1 = abs(x2new  x2old )


error2 = abs(x3new  x3old )

tidak error 1 < 10-5 ?


error2 < 10-5 ?

ya

TULIS
x1 = x1new
x2 = x2new
x3 = x3new

SELESAI

Gambar 4.1. Diagram alir metode Gauss-Seidel untuk sistem persamaan aljabar linier

Kriteria Konvergensi untuk Metode Gauss-Seidel


Metode Gauss-Seidel dapat memunculkan 2 kemungkinan persoalan, yakni: (1)
kadang-kadang tidak konvergen, atau (2) jika konvergen, maka laju konvergensinya lambat.
Untuk sistem persamaan linier Ax = b yang melibatkan n buah persamaan, konvergensi
metode ini akan selalu tercapai, jika:

(diagonally dominant)

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IV-2
MODUL 4 – Akar-akar Sistem Persamaan Linier dan Tak-Linier

Metode relaksasi merupakan modifikasi dari metode Gauss-Seidel yang dirancang untuk
meningkatkan konvergensi. Setelah masing-masing xi dihitung dengan persamaan-persamaan
di atas, nilai xi ini selanjutnya dimodifikasi dengan memberikan faktor pembobot terhadap
hasil iterasi sekarang dan iterasi sebelumnya; atau:
xi,baru = λ xi,baru + (1− λ) xi,lama
di mana:
λ ≡ faktor pembobot (bernilai antara 0 – 2; biasanya ditentukan secara empirik)

 Jika λ = 1, maka metode ini tidak dimodifikasi/ direlaksasi


 Jika 0 ≤ λ ≤ 1, maka modifikasinya tergolong dalam underrelaxation (biasanya
digunakan untuk membuat sistem yang tidak konvergen menjadi konvergen)
 Jika 1 ≤ λ ≤ 2, maka modifikasinya tergolong dalam overrelaxation (biasanya
digunakan untuk mempercepat konvergensi sistem yang sudah konvergen).
Pendekatan ini biasa disebut juga successive or simultaneous overrelaxation (SOR).

4.3. Metode Jacobi untuk Sistem Persamaan Linier


Metode Jacobi merupakan metode penyelesaian sistem persamaan aljabar linier
secara iteratif yang mirip dengan metode Gauss-Seidel. Untuk sistem persamaan linier yang
melibatkan matriks A dan vektor b yang berorder n, diperlukan nilai tebakan
awal x sejumlah n buah.
Seperti halnya metode Gauss-Seidel, metode Jacobi juga akan selalu menghasilkan
penyelesaian yang konvergen jika sistem persamaan ini bersifat diagonally dominant. Jika A
merupakan matriks bujur sangkar yang diagonally dominant, maka penyelesaian sistem
persamaan aljabar linier order 3 (dalam x1, x2, dan x3) dengan metode Jacobi dapat dituliskan
dalam bentuk:

b1 a a
x1 new   12 x 2 old  13 x 3 old
a11 a11 a11
b a a
x 2new  2  21 x 1 old  23 x 3old
a22 a22 a22
b a a
x 3new  3  31 x 1 old  32 x 2 old
a33 a33 a33

Algoritma penyelesaian sistem persamaan aljabar linier dengan metode Jacobi ditunjukkan
dalam diagram alir pada Gambar 4.2.

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IV-3
MODUL 4 – Akar-akar Sistem Persamaan Linier dan Tak-Linier

Gambar 4.2. Diagram alir metode Jacobi untuk sistem persamaan aljabar linier

Keterangan:
Nilai ‘error’ (misalnya, melalui definisi approximate error) dapat dihitung atau
ditentukan dari:
error1  error2  error3
error 
3
yang menyatakan rerata dari error terhadap masing-masing variabel-nya,

x1,baru  x1
dengan: error1  * 100%
x1,baru

x2,baru  x2
error2  * 100%
x2,baru

x3,baru  x3
error3  * 100 %
x3,baru

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IV-4
MODUL 4 – Akar-akar Sistem Persamaan Linier dan Tak-Linier

4.4. Metode Newton untuk Sistem Persamaan Tak-Linier

Tinjaulah suatu sistem persamaan aljabar tak-linier yang terdiri dari dua persamaan
(dalam variabel x dan y) berikut ini: u = f1(x,y) = 0
v = f2(x,y) = 0

Mirip dengan metode Newton-Raphson untuk menentukan akar persamaan tak-linier tunggal
(yang melibatkan fungsi turunan pertama), maka metode Newton untuk mencari akar-akar
sistem persamaan tak-linier secara simultan juga melibatkan turunan pertama dari masing-
masing fungsinya (sehingga melibatkan turunan parsial). Melalui penjabaran dari pendekatan
deret Taylor terhadap sistem persamaan tersebut di atas, maka nilai xi+1 dan yi+1 dapat
ditentukan secara iteratif dari perumusan berikut ini:
f1,i f
(x i1  x i )  (yi1  yi ) 1,i   f1,i
x y
f2,i f
(x i1  x i )  (y i1  y i) 2,i  f2,i
x y

atau, jika dituliskan dalam bentuk perkalian matriks bujur sangkar A dan vektor x, maka:

 f1 ,i f1,i   f1,i f1 ,i 


 x y   x i1  x i    f1,i   x y  xi    f1,i 
   atau:   
 f2 ,i f2,i  y i1  y i    f2 ,i   f2,i f2 ,i  y i   f2,i 
 x y   x y 
[A] [] = [b] [A] [] = [b]

Matriks yang berisikan turunan parsial fungsi (matriks A) disebut sebagai matriks Jacobian.

Dengan demikian: xi+1 = xi + xi


yi+1 = yi + yi
di mana nilai xi dan yi dapat ditentukan dengan cara Cramer (yang berbasiskan determinan
matriks) terhadap sistem persamaan aljabar linier: A x = b, berikut ini:

 f1,i   f1,i 
  f1,i y   x  f1,i 
det   det  
 f f2,i  f
 2,i  f2,i 
 2,i y   x 
x i  dan y i 
 f1,i f1,i   f
 1,i f1 ,i 
 x y   x y 
det   det  
 f2,i f2,i   f2,i f2,i 
 x y   x y 

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IV-5
MODUL 4 – Akar-akar Sistem Persamaan Linier dan Tak-Linier

Secara umum, penyelesaian sistem n buah persamaan tak-linier dengan n buah variabel
yang tak diketahui secara simultan dapat dilakukan melalui proses dan cara yang serupa (atau
analog) dengan penjabaran di atas.

Algoritma penentuan akar-akar persamaan tak-linier (dengan kasus 2 variabel, yaitu


dalam: x dan y) dengan metode Newton dapat dituliskan melalui langkah-langkah berikut ini:
1. Mulai
2. Ambil: tebakan awal xi dan yi, nilai toleransi ‘tol’, nilai awal ‘beda’
3. Lakukan secara berulang-ulang (dalam loop) hingga diperoleh: beda < tol
 Hitung nilai-nilai: f1,i; f2,i; f1,i/x; f1,i/y; f2,i/x; f2,i/y
 Susunlah matriks-matriks bujur sangkar yang memuat turunan parsial fungsi.
 Hitung nilai: xi dan yi
 Hitung nilai: xi+1 dan yi+1
 Hitung nilai ‘beda’, misalnya: beda1 = |(xi+1 – xi)/xi+1| x 100%
beda2 = |(yi+1 – yi)/yi+1| x 100%
beda = (beda1 + beda 2)/2
 Kembalikan nilai x dan y: xi = xi+1 dan yi = yi+1
4. Tuliskan nilai atau hasil: xi, yi
5. Selesai

Catatan Tambahan:
Nilai turunan parsial masing-masing fungsi dapat ditentukan secara analitik (jika
memungkinkan) atau numerik (melalui pendekatan finite-divided difference). Sebagai review,
berikut ini disajikan contoh-contoh perumusan fungsi turunan pertama tersebut.

Jika h (= x) dan  (= y) menyatakan sebuah bilangan kecil, maka:


Turunan Pertama f 1 Turunan Pertama f 2
Pendekatan dengan 2 Titik dengan 2 Titik
f1/x dan f1/y f2/x dan f2/y
f1 f1 (x  h, y )  f1 (x , y) f2 f2 (x  h, y)  f2 (x , y)
 
x h x h
Forward (maju)
f1 f1 (x , y  )  f1 (x , y) f2 f2 (x , y  )  f2 (x , y)
 
y  y 
f1 f1 (x , y)  f1 (x  h, y) f2 f2 (x , y)  f2 (x  h, y )
 
x h x h
Backward (mundur)
f1 f1 (x , y)  f1 (x , y  ) f2 f2 (x , y)  f2 (x , y  )
 
y  y 

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IV-6
MODUL 4 – Akar-akar Sistem Persamaan Linier dan Tak-Linier

Turunan Pertama f 1 Turunan Pertama f 2


Pendekatan dengan 2 Titik dengan 2 Titik
f1/x dan f1/y f2/x dan f2/y
f1 f1 (x  h, y)  f1 (x  h,y) f2 f2 (x  h, y)  f2 (x  h, y)
 
x 2h x 2h
Centered (tengah, terpusat)
f1 f1 (x , y  )  f1 (x , y  ) f2 f2 (x , y  )  f2 (x , y  )
 
y 2 y 2

4.5. Latihan Soal

1. Sistem persamaan aljabar linier berikut ini dirancang untuk menentukan konsentrasi (c
dalam g/m3) dalam sebuah sistem reaktor seri sebagai fungsi massa.
17 c1  3 c2  c3 = 3800
3 c1 + 18 c2  6 c3 = 1200
4 c1  c2 + 12 c3 = 2350
Selesaikan masalah ini dengan metode iteratif: (a) Gauss-Seidel, dan (2) Jacobi.
Selanjutnya, bandingkanlah hasil-hasil perhitungan yang Anda peroleh.

2. Selesaikanlah sistem persamaan: - 5 x1 + 12 x3 = 80


4 x1 – x2 – x3 = -2
6 x1 + 8 x2 = 45
secara iteratif. Jika diperlukan, lakukanlah penyusunan ulang terhadap sistem persamaan
untuk mencapai konvergensi. Sajikan hasil-hasil perhitungan dalam bentuk tabel.

3. Selesaikanlah sistem persamaan berikut ini:


 3 x1  x2  12 x 3  50
6 x1  x2  x3  3
6 x1  9 x2  x3  40
secara iteratif menggunakan metode Gauss-Seidel: (a) tanpa relaksasi, dan (b) dengan
relaksasi (misal, dengan:  = 0,95), hingga diperoleh approximate error < 5%.
Sajikanlah hasil-hasil perhitungan dalam bentuk tabel.

4. Sebuah kolom ekstraksi yang memiliki 4 tahap ideal (teoretik) digunakan untuk
mengekstraksi asam format yang terlarut dalam metil isobutil keton (MIBK) dengan
menggunakan air sebagai pengekstrak. Operasi akan dilakukan dengan mode berlawanan
arah (counter current). Fasa organik diumpankan dari dasar kolom dengan laju 5 m3
MIBK/jam dan konsentrasi asam format 1,0 mol/liter MIBK, sedangkan fasa akuatik
dialirkan dari puncak kolom dengan laju alir 2,45 m3 air/jam serta sama sekali tidak
mengandung asam format. Operasi berlangsung isotermal dan harga rasio kesetimbangan
konsentrasi asam format di dalam MIBK terhadap konsentrasi asam format di dalam air

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IV-7
MODUL 4 – Akar-akar Sistem Persamaan Linier dan Tak-Linier

adalah sebesar: K = 0,445. MIBK dan air dapat dianggap sama sekali tidak saling larut satu
sama lain. 1 m3 = 1000 liter. Susunlah sistem persamaan aljabar linier untuk kasus ini, dan
selanjutnya tentukanlah konsentrasi asam format pada aliran-aliran yang keluar dan
masuk di masing-masing plate atau tahap ideal dalam kolom ekstraksi tersebut.

5. Tentukan nilai x dan y agar memenuhi sistem persamaan berikut:


a) x2 + x y = 10
y + 3 x y2 = 57 (gunakan tebakan awal: x = 1,5 dan y = 3,5)
b) y = x2 + x + 0,5
y + 5 x y = x2 (gunakan tebakan awal: x = y = 1,2)

6. Selesaikanlah sistem persamaan tak-linier berikut ini:


X13 – exp(X2) + sinh X3 = 3,62882
X12 X3 + (X22 – X3)2 = 4,0
X1 X2 X3 – X3 + X1 X2 = 5,0
Gunakan tebakan awal: X1 = X2 = X3 = 0. Atau, gunakanlah nilai awal X yang lainnya, jika
penyelesaian yang diperoleh tidak konvergen.

7. Etanol (1) sebanyak 47 gram dicampurkan dengan n-heptana (2) sehingga menghasilkan
100 gram campuran biner etanol dan n-heptana (pada T = 70,9 oC dan P = 760 mmHg).
Jika perilaku campuran ini dapat didekati dengan persamaan Van Laar, maka tentukanlah
nilai-nilai koefisien Van Laar untuk campuran ini (yaitu A12 dan A21)!

Diketahui: BM etanol = 46,07 g/mol; BM n-heptana = 100,2 g/mol


Koefisien aktivitas etanol (1) dan n-heptana (2) dapat dihitung dengan:
1 = P/P1o dan 2 = P/P2o
Tekanan uap murni masing-masing zat (P1o dan P2o) dapat ditentukan melalui persamaan
Antoine berikut ini:
1554,3 1268,115
0 8,04494  0 6,9024 
P  10 222,65 T dan P  10 216,9 T
1 2

dengan: Pio dalam mmHg dan T dalam oC.


Persamaan Van Laar untuk 1 dan 2 dapat dinyatakan sebagai:
A12 A21
ln  1  2
dan ln  2  2
 A x   A 21 x 2 
 1  12 1   1  
 A 21 x 2   A12 x 1 
Dalam hal ini, xi menyatakan fraksi mol zat i.
Gunakanlah nilai tebakan awal (misalnya): A12 = A21 = 1

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IV-8
MODUL 5
CURVE-FITTING DAN INTERPOLASI

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020


MODUL 5 – Curve-Fitting dan Interpolasi

MODUL 5
CURVE-FITTING DAN INTERPOLASI

5.1. Tujuan
 Melakukan proses curve-fitting terhadap sekumpulan data dengan menentukan nilai-
nilai koefisien atau parameter dalam persamaan-persamaan linier, tak-linier, dan
polinomial dengan prosedur atau teknik least squares regression.
 Melakukan proses linierisasi terhadap persamaan tak-linier sederhana.
 Melakukan interpolasi data, misalnya dengan interpolasi linier dan kuadrat.

5.2. Regresi Persamaan Linier Sederhana

Persamaan empirik dapat digunakan untuk mendekati trend (kecenderungan) dari


sekumpulan data hasil percobaan. Proses ini disebut sebagai curve-fitting atau regresi.
Perbedaan antara titik data sesungguhnya dan titik dari persamaan empirik (atau dikenal
dengan error atau penyimpangan) haruslah sekecil mungkin. Salah satu cara untuk
mendapatkan error yang kecil adalah dengan meminimasi jumlah kuadrat dari perbedaan titik
data dan titik persamaan. Teknik atau prosedur ini dikenal dengan least squares regression.

Persamaan garis lurus (linier sederhana) dapat dituliskan sebagai:


y = a0 + a1 x + e
di mana a0 dan a1 merupakan koefisien-koefisien yang menunjukkan intercept dan slope, dan e
menyatakan error. Persamaan di atas dapat disusun kembali menjadi:
e = y  a0  a1 x

Jumlah kuadrat error (sum of square error, SSE) didefinisikan sebagai berikut:
n n
SSE   e2i   y i  a0  a1x i 2
i 1 i1

SSE
Nilai a0 dan a1 dicari dengan cara sebagai berikut:  2 y i  a 0  a1x i 
a0

SSE
 2 y i  a0  a1 x i
a1
Dengan menetapkan turunan-turunan bernilai sama dengan nol, maka proses ini akan

meminimumkan nilai SSE. Atau: 0   y   a  a x


i 0 1 i

2
0   x y  a x  a x
i i 0 i 1 i

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 V-1
MODUL 5 – Curve-Fitting dan Interpolasi

Karena: a 0  n a0 , maka:

n a0   xi a1   yi

 x a   x a   x y
i 0
2
i 1 i i

di mana: n menyatakan jumlah pasangan data (yang tersedia).

Dengan demikian, nilai-nilai koefisien a1 dan a0 dipenuhi dari persamaan sebagai berikut:

n x i y i   xi  yi
a1 
n x 2i   xi 
2

a0  y  a1 x

di mana y dan x merupakan nilai rata-rata dari y dan x.

Catatan:
Dengan cara yang sama (menggunakan prosedur least squares), jika persamaan linier yang
ditinjau berbentuk: y = a x (yaitu persamaan linier tanpa intercept), maka diperoleh:
n
SSE   (a x i  y i )2  f(a)
i 1

d (SSE) n
  2 (a x i  yi ) . x i  0
da i 1

sehingga akan diperoleh nilai slope atau gradien a sebesar: a 


(x y )
i i
2
(x ) i

5.3. Regresi Persamaan Linier Multi Variabel

Tinjaulah y sebagai fungsi linier dari variabel-variabel x1, x2, …, xm sebagai berikut:
y = a0 + a1 x1 + a2 x2 + … + amxm + e
Jumlah kuadrat error (SSE) dapat dituliskan sebagai:
n
SSE   y i  a0  a1x 1  a2x 2  ...  am x m 2
i 1

Diferensial terhadap koefisien-koefisien yang tidak diketahui:


SSE
 2 y i  a0  a1x 1,i  a2 x 2,i  ...  am x m,i 
a0

SSE
 2 x 1,i y i  a 0  a1 x1 ,i  a2x 2,i  ...  amx m ,i 
a1

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 V-2
MODUL 5 – Curve-Fitting dan Interpolasi

SSE
dan seterusnya hingga:  2 x m,i y i  a0  a1x 1,i  a2 x 2,i  ...  am x m,i 
am

Dengan menetapkan turunan-turunan bernilai sama dengan nol, maka hal ini akan
meminimumkan SSE, dan hasilnya dapat dirangkum dalam bentuk matriks sebagai berikut:

n

 x1,i x 2 ,i  x m ,i 
 a0   i
 y 
2 
 x1,i  x1 ,i x 1,i x2 ,i  x1,i x m,i  a
   x y 
1, i i
 2
 1   
 x2,i  x1,i x2,i x 2,i  x
2, i x m , i   a 2
    x2 , i yi 
  :   
 :    : 
 x  am   x y 
 m,i i 
2
 
 m ,i  x1,i x m,i  x2,i xm,i ...  xm,i 
Bentuk matriks di atas membentuk sistem persamaan aljabar linier. Dengan demikian, nilai-
nilai koefisien a0, a1, …, am dapat ditentukan [misalnya: dengan cara Cramer (yang berbasiskan
determinan) atau dengan metode-metode iteratif, seperti: Gauss-Seidel dan Jacobi].

5.4. Linierisasi Persamaan Tak-Linier Sederhana

Regresi linier merupakan teknik yang cukup handal untuk mendekati trend data-data
percobaan. Namun demikian, dalam praktiknya tidak semua data menunjukkan
kecenderungan linier. Untuk persamaan tak-linier sederhana, proses linierisasi dapat
dilakukan sedemikian sehingga koefisien-koefisiennya dapat dicari dengan teknik regresi linier.
Berikut ini disajikan sejumlah contoh bentuk atau rumpun persamaan tak-linier
sederhana yang dapat dilakukan proses linierisasi:

X
1. Bentuk atau rumpun persamaan eksponensial: Y   e

Linierisasi dilakukan dengan mengubah persamaan dalam bentuk ln sebagai berikut:


lnY   ln    X
Persamaan ini analog dengan persamaan linier: y = a0 + a1 x, di mana:
ln() = a0 (sehingga:  = exp(a 0))
 = a1
serta: y = ln(Y) dan x = X


2. Bentuk atau rumpun persamaan pangkat (power): Y   X

Linierisasi dilakukan dengan mengubah persamaan dalam bentuk ln atau log sebagai
berikut: lnY   ln    ln(X)
atau: log X   log     log(X)

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 V-3
MODUL 5 – Curve-Fitting dan Interpolasi

di mana: ln() = a0 (sehingga:  = exp(a 0))


 = a1
serta: y = ln(Y) dan x = ln(X)
atau: log() = a0 (sehingga:  = 10^a0)
 = a1
serta: y = log(Y) dan x = log(X)

X
3. Bentuk atau rumpun persamaan: Y 
X
Linierisasi dilakukan dengan mengambil reciprocal (kebalikan) dari persamaan yang
1 1  1
ditinjau, sehingga diperoleh bentuk:  
Y  X
X  1
atau:   X
Y  
Persamaan ini analog dengan persamaan linier: y = a0 + a1 x, sehingga nilai-nilai
parameter  dan  juga dapat ditentukan.

5.5. Regresi Polinomial

Prosedur kuadrat terkecil (least squares) juga dapat dikembangkan untuk regresi
polinomial. Secara umum, persamaan polinomial didefinisikan sebagai berikut:

y = a0 + a1 x + a2 x2 + … + am xm + e
n 2

Jumlah kuadrat error (sum of square error, SSE): SSE   y  a


i1
i 0
2 m
 a1x i  a x  ...  a x
2 i m i 
Diferensial terhadap masing-masing koefisien yang tidak diketahui menghasilkan:

 SSE
 2 y i  a0  a1xi  a2x 2i  ...  amxmi 
a0
SSE
 2 xi y i  a0  a1x i  a2x2i  ...  amx mi 
a1
 SSE
 2 x 2i y i  a0  a1x i  a2x 2i  ...  amx mi 
a2
SSE
dan seterusnya hingga m:  2 xmi y i  a0  a1x i  a2x2i  ...  amx mi 
 am
Dengan menetapkan semua diferensial di atas bernilai sama dengan nol, maka diperoleh
sistem persamaan sebagai berikut:

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 V-4
MODUL 5 – Curve-Fitting dan Interpolasi

n a0   xi a1   xi2 a2  ...   xim am   yi


 x a   x a   x a
i 0
2
i 1  x a   x y
3
i 2  ...  m1
i m i i

 x a   x a   x a  ...   x a   x y
2
i 0
3
i 1
4
i 2
m 2
i m
2
i i

dan seterusnya hingga m:

 x a   x a   x a
m
i 0
1m
i 1
2 m
i 2  ...   x a   x
mm
i m
m
i yi

Sistem persamaan tersebut di atas dapat diselesaikan secara simultan untuk mendapatkan
nilai koefisien-koefisien a0, a1, a2, …, am.

5.6. Interpolasi Linier

Interpolasi linier merupakan metode interpolasi yang paling sederhana. Metode ini
digunakan untuk mencari atau menentukan nilai suatu data [(x, f(x))] yang berada di antara
dua buah data [yaitu: (x1, f(x1)) dan (x2, f(x2))] yang diketahui berdasarkan garis lurus. Dengan
menggunakan similaritas triangles, diperoleh:

f1 (x)  f(x1 ) f(x 2 )  f(x1 )



x  x1 x2  x1
f(x2 )  f(x1 )
atau, dapat dituliskan menjadi: f1 (x)  f(x1 )  (x  x1 )
x2  x1

5.7. Interpolasi Kuadrat

Jika tersedia tiga buah data [yaitu: (x1, f(x1)), (x2, f(x2)), dan (x3, f(x3))], maka interpolasi
dapat dilakukan secara polinomial kuadratik. Interpolasi kuadrat cocok digunakan untuk data-
data yang menghasilkan garis parabola (berbentuk polinomial orde dua). Formula interpolasi
kuadrat dapat dituliskan sebagai berikut:

f2 (x)  b1  b2 (x  x1 )  b3 (x  x1 )(x  x2 )

di mana sebuah prosedur sederhana dapat digunakan untuk menentukan nilai-nilai b1, b2, dan
b3 dalam persamaan tersebut.
Jika dimisalkan:

b1  f (x1 )
maka substitusi b1 ke f2(x) menghasilkan:

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 V-5
MODUL 5 – Curve-Fitting dan Interpolasi

f(x2 )  f(x 1)
b2 
x 2  x1

sehingga substitusi b1 dan b2 ke f2(x) menghasilkan:

f(x 3 )  f(x2 ) f(x 2 )  f(x1 )



x3  x2 x2  x 1
b3 
x 3  x1

Selanjutnya, nilai-nilai b1, b 2, dan b3 ini dapat disubstitusikan kembali ke dalam persamaan f2(x)

tersebut di atas untuk melakukan interpolasi kuadrat.

Keterangan:

Scilab mempunyai sejumlah built-in function untuk melakukan interpolasi. Silakan

mempelajari dan mengeksplorasi cara penulisan syntax-nya melalui jendela Help.

5.8. Latihan Soal

1. Dari data literatur, diketahui hubungan antara suhu dan sifat fisik air sebagai berikut:

, densitas , viskositas =/, viskositas kinematik


T [oC]
[kg/m3] [kg/(m.detik)] [m2/detik]
30 995,68 0,00085
50 988,07 0,00060
70 977,81 0,00043
90 968,65 0,00031
110 951,00 0,00023
130 935,20 0,00017
150 917,30 0,00013
170 897,30 0,00010

Dari semua data tersebut, tentukanlah persamaan empirik yang menyatakan hubungan

antara  versus T, sehingga memenuhi persamaan:  =  T.


Ubahlah  ke dalam satuan mm2/detik. Sajikanlah hasil-hasil perhitungan Anda dalam
bentuk tabel dan grafik perbandingan antara data dan model (= hitung) sebagai fungsi T.
Sajikan juga nilai SSE dan coefficient of determination (R2) dari kasus ini.

2. Nitrous anhydride (N2O5) dapat terurai secara homogen menjadi dinitrogen tetraoksida
(N2O 4) dan oksigen melalui reaksi: N2O5 (g)  N2O4 (g) + ½ O2 (g). Berikut adalah data

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 V-6
MODUL 5 – Curve-Fitting dan Interpolasi

konsentrasi N2O5 (C A) vs waktu (t) untuk reaksi ini pada suhu 313,1 K dalam suatu
percobaan secara batch [dengan: CA0 = 0,1 gmol/L]:

CA (gmol/L) 0,1000 0,0892 0,0776 0,0705 0,0603 0,0542 0,0471


Waktu, t (detik) 0 500 1000 1500 2000 2500 3000

Reaksi dipostulasikan mengikuti model kinetika berorde satu terhadap CA. Atau, jika
CA
digabungkan dengan persamaan neraca massa, akan diperoleh:  ln k t
CA 0

(atau, dapat dituliskan juga dalam bentuk: C A  C A 0 exp  k t  )

a) Berapakah nilai k (dalam persamaan tersebut, dalam detik-1)?


b) Sajikanlah hasil-hasil perhitungan dalam bentuk tabel dan grafik perbandingan antara
C A,data dan CA,model (= CA,hitung) sebagai fungsi t.
c) Berapakah nilai SSE dan R2 pada kasus soal ini?

3. Dari suatu percobaan diperoleh hubungan antara tekanan uap (Pv) dan suhu (T) untuk
metanol sebagai berikut:

T (K) 320 340 360 380 400 420 440 460 480 500
Pv (kPa) 48,33 110,84 229,26 435,53 771,46 1288,9 2048,3 3117,6 4575,1 6530,5

Dengan menggunakan regresi polinomial, tentukanlah koefisien-koefisien polinomial


persamaan: ln(Pv) = a 0 + a1T + a2T2 + a3T3. Buatlah grafik hubungan antara Pv dan T
berdasarkan persamaan empirik yang diperoleh dan bandingkan dengan data percobaan.

4. Berikut adalah data percobaan kinetika sebuah reaksi homogen irreversible: A  P

CA (gmol/liter) 1,00 0,923 1,15 0,87 1,05 0,75 0,55 0,65


Suhu, T (K) 373 395 365 400 405 388 410 380
Laju reaksi, r
1,508 2,936 1,293 3,242 4,566 1,899 2,780 1,255
(gmol/liter.detik)

 E  n
Jika laju reaksi dianggap mempunyai bentuk: r  k0 exp    C A
 RT
dan R = 1,987 kal/gmol.K, perkirakan nilai-nilai parameter k0, E, dan n berdasarkan data
yang tersedia. (k0 ≡ faktor preeksponensial reaksi, E ≡ energi aktivasi reaksi, dan n ≡ orde
reaksi). Sajikan tabel perbandingan antara rdata dan r yang diperoleh dari persamaan
(model). Berapakah nilai SSE dan R2 pada kasus soal ini?

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 V-7
MODUL 5 – Curve-Fitting dan Interpolasi

5. Sebuah reaksi heterogen mempunyai persamaan laju reaksi yang mengikuti model kinetika
k 1 PA
Langmuir-Hinshelwood sebagai berikut: r 
(1  K A PA  KR PR )2
Gunakanlah semua data percobaan berikut ini, yang diukur pada suhu 400 K, untuk
memperkirakan besarnya nilai parameter k1, KA, dan KR.

PA 1 0,9 0,8 0,7 0,6 0,5 0,4


PR 0 0,1 0,2 0,3 0,4 0,5 0,6
5
r x 10 3,4 3,6 3,7 3,9 4,0 4,1 4,2

Berapakah nilai-nilai k1, KA, dan KR, serta SSE dan R2 dari kasus ini?
Sajikanlah tabel perbandingan antara data dengan model (hasil perhitungan).

6. Diketahui: f(x) = ln(x). Tentukanlah nilai ln(2) menggunakan interpolasi linier dan
interpolasi kuadrat, jika diketahui: ln(1) = 0; ln(4) = 1,386294; dan ln(6) = 1,791759.
Selanjutnya, bandingkanlah hasil-hasil yang diperoleh!

7. Diketahui data densitas () nitrogen pada berbagai temperatur (T) sebagai berikut:

T, K 200 250 300 350 400 450


, kg/m3 1,708 1,367 1,139 0,967 0,854 0,759

a. Buatlah grafik hubungan antara  versus T berdasarkan semua data yang diketahui.
b. Tentukan densitas nitrogen pada suhu 330 K dengan interpolasi linier dan interpolasi
kuadrat, serta bandingkanlah hasil-hasilnya!
c. Lakukan juga interpolasi dengan menggunakan built-in function pada Scilab.

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 V-8
MODUL 6
INTEGRASI NUMERIK

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020


MODUL 6 – Integrasi Numerik

MODUL 6
INTEGRASI NUMERIK

6.1. Tujuan
 Menyelesaikan integrasi (dalam bentuk persamaan dengan variabel tunggal)
menggunakan trapezoidal rule dan Simpson’s 1/3 rule.
 Membandingkan hasil-hasil integrasi yang diperoleh (dengan metode yang berbeda).
 Menyelesaikan integrasi terhadap sekumpulan data (dalam bentuk tabel data).

6.2. Integrasi dengan Trapezoidal Rule

Formula integrasi Newton-Cotes merupakan basis penyelesaian integrasi numerik


untuk kasus persamaan dengan variabel tunggal yang mempunyai bentuk umum:
b
I   f(x) dx
a

di mana: x  variabel bebas dalam persamaan f(x)


f(x)  persamaan atau fungsi dalam variabel bebas x yang didekati dalam bentuk
persamaan polinomial (pangkat)
a  batas bawah integrasi [= x0]
b  batas atas integrasi [= xn]
Persamaan tersebut di atas merupakan bentuk persamaan integral tertentu (finite integral).
Trapezoidal rule (atau metode trapesium) merupakan metode integrasi paling
sederhana berdasarkan Newton-Cotes formulas, yang didasarkan pada fungsi f(x) berbentuk
polinomial berorde satu sebagai berikut:
b
 f(b)  f (a) 
I   f (a)  (x  a)dx
a
ba 
Integrasi dari persamaan ini menghasilkan bentuk:
f(a)  f (b)
I  (b  a)
2
yang kemudian sering disebut sebagai formula trapezoidal rule (metode trapesium), karena
mempunyai kemiripan dengan luas bangun geometri yang berbentuk trapesium.
Jika lebar integrasi dibagi menjadi sejumlah n segmen (atau inkremen atau bagian),
dari titik x = a (= x0) hingga x = b (= xn), maka masing-masing segmen mempunyai lebar sebesar:

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VI-1
MODUL 6 – Integrasi Numerik

b a
Lebar segmen: h   x
n
Jika formula trapezoidal rule tersebut di atas diterapkan untuk sejumlah n segmen (di mana
masing-masing segmen dianggap berupa trapesium), maka formula tersebut dinamakan
composite trapezoidal rule (atau: multiple-application trapezoidal rule) yang berbentuk:
b xn

I   f(x) dx   f(x) dx
a x0

x1 x2 xn

I   f(x) dx   f(x) dx  ...   f(x) dx


x0 x1 x n1

f (x 0 )  f(x 1 ) f(x )  f(x 2 ) f(x )  f(x n )


Ih h 1    h n1
2 2 2
n 1
h 
sehingga: I  
2
f ( x 0 )  2i 1
f (x i )  f(x n )

di mana: n  jumlah segmen [= 1, 2, 3, 4, …]
h  lebar segmen
f(x0)  nilai fungsi f(x) pada batas bawah integrasi (x = x0 = a)
f(xn)  nilai fungsi f(x) pada batas atas integrasi (x = xn = b)
f(xi)  nilai fungsi f(x) pada variabel x yang berada di antara x = x0 dan x = xn

Dalam praktiknya, cara ini umum dilakukan untuk membuat hasil integrasi semakin baik. Jika
jumlah n semakin besar (atau lebar segmen h semakin kecil), maka hasil integrasi akan
semakin baik.

Keterangan:
Konsep dasar metode composite trapezoidal rule ini dapat diterapkan secara umum untuk
menyelesaikan integral dengan lebar segmen yang tidak sama, misalnya: terhadap sekumpulan
data (yang disajikan dalam bentuk tabel data).

6.3. Integrasi dengan Simpson’s 1/3 Rule


Cara lain yang lebih akurat untuk menyelesaikan integral-tertentu yang berbentuk:
b
I   f(x) dx adalah metode Simpson’s 1/3 rule. Metode ini merupakan kategori Newton-Cotes
a

formula yang menggunakan pendekatan polinomial berorde dua (untuk menyatakan fungsi
f(x)-nya) sebagai berikut:

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VI-2
MODUL 6 – Integrasi Numerik

x2 x2
 (x  x 1 ) (x  x 2 ) (x  x 0 ) (x  x 2 )
I   f(x) dx    f(x 0 )  f(x1 )
x0
(x  x 1 ) (x 0  x 2 )
x0  0
(x 1  x 0 ) (x 1  x 2 )

(x  x 0 ) (x  x1 ) 
 f(x2 ) dx
(x2  x 0 ) (x2  x1 ) 
Setelah melalui proses integrasi dan manipulasi aljabar, maka diperoleh:
h
I f(x 0 )  4 f(x1 )  f(x 2 ) (formula Simpson’s 1/3 rule)
3
Dengan cara atau penjabaran yang sama, jika lebar integrasi dibagi menjadi sejumlah
n segmen (atau inkremen atau bagian), dari titik x = a (= x0) hingga x = b (= xn), maka diperoleh
formula composite Simpson’s 1/3 rule sebagai berikut:
xn x2 x4 xn

I   f (x)   f(x) dx   f(x) dx  ...   f (x) dx


x0 x0 x2 xn 2

h h
I  (f(x 0 )  4 f (x1 )  f(x 2 ))  (f(x 2 )  4 f(x 3 )  f(x 4 ))
3 3
h
 ...  (f(x n2 )  4 f(x n1 )  f (xn ))
3
n1 n2
h 
sehingga: I  f
 0
3
(x )  4  f (x i )  2  f (x j )  f (xn )
i1 , 3 , 5 j2 , 4 , 6 
di mana: n  jumlah segmen [= 2, 4, 6, 8, …]  berupa bilangan genap
h  lebar segmen
f(x0)  nilai fungsi f(x) pada batas bawah integrasi (x = x0 = a)
f(xn)  nilai fungsi f(x) pada batas atas integrasi (x = xn = b)
f(xi)  nilai fungsi f(x) pada variabel xi yang berada di antara x = x0 dan x = xn, dengan:
i = 1, 3, 5, …. (n-1)
f(xj)  nilai fungsi f(x) pada variabel xj yang berada di antara x = x0 dan x = xn, dengan:
j = 2, 4, 6, …. (n-2)

Metode Simpson’s 1/3 rule mengevaluasi setiap tiga titik data [x, f(x)] (dengan kata lain,
metode ini mengevaluasi titik data pada setiap 2 segmen). Dengan demikian, jumlah segmen n
yang digunakan haruslah berupa bilangan genap. Jika n semakin besar (atau: h semakin kecil),
maka hasil integrasi akan semakin baik.

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VI-3
MODUL 6 – Integrasi Numerik

6.4. Latihan Soal

1. Diketahui: f(x) = 0,2 + 25 x – 200 x2 + 675 x3 – 900 x4 + 400 x5


Tentukan integrasi f(x) dari a = 0,1 hingga b = 0,75, dengan cara trapezoidal rule dan
Simpson’s 1/3 rule! Bandingkan kedua hasilnya dengan perolehan secara analitik, serta
lakukan perhitungan dengan mengambil beberapa jumlah segmen n yang berbeda.

 2,5 z 
 z    H 

2. Gaya sebuah tiang perahu layar didefinisikan sebagai: f (z)  200  e
 7z
di mana: z = elevasi di atas deck, dan H = ketinggian tiang.
H
Total gaya pada tiang dapat ditentukan dengan: F  f(z) dz

0

 z f(z) dz
0
serta jalur atau garis aksi tiang didefinisikan sebagai: d  H

 f (z) dz
0

(a) Gunakan composite trapezoidal rule untuk menghitung nilai F dan d untuk kasus:
H = 30, dengan mengambil: n = 6.
(b) Ulangi dengan menggunakan Simpson’s 1/3 rule dan nilai n yang berbeda-beda.

3. Debit fluida (Q) yang mengalir melalui sebuah pipa dapat dinyatakan dalam persamaan:
1
6
 r
Q   v dA di mana: dA  2  r dr dan: v  k  1  
 r0 
serta: k = 2,5; r0 = 7 cm; π = 3,14
Tentukan nilai Q (yang dihitung dari r = 0 (sumbu pipa) hingga r = r0 (dinding dalam pipa)),
masing-masing dengan metode: trapezoidal rule dan Simpson’s 1/3 rule.
Ambillah beberapa n yang berbeda. Bandingkanlah hasil-hasil yang diperoleh (dari kedua
metode tersebut). Sajikan hasil perhitungan dalam bentuk tabel.

4. Dalam sebuah batch reactor, waktu reaksi (t, dalam menit) dapat ditentukan dengan:
X A1
dX A  46500 
t  k 1  X  di mana: k  2,14 x 10 7 exp   [=] menit-1
X A0 A  8,314 T 
H C A 0
T  T0  XA [=] K
 Cp
Data: T0 = 288 [K]; H = – 209 [kJ/mol];

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VI-4
MODUL 6 – Integrasi Numerik

CA0 = 0,03 [mol/L];  = 1,07 [kg/L];


Cp = 3,8 [kJ/kg.K]
Berapakah t, jika: XA0 = 0,025 dan XA1 = 0,783?
Gunakan metode: trapezoidal rule dan Simpson’s 1/3 rule, dengan mengambil beberapa n
yang berbeda. Bandingkanlah hasil-hasil yang diperoleh.

5. Pada suhu tetap, sebuah proses termodinamika mengukur perubahan tekanan terhadap
perubahan volume sistem, dan diperoleh data sebagai berikut:

Tekanan, P (kPa) 420 368 333 326 316 312 242 207
Volume, V (m3) 0,5 2 3 4 6 8 10 11

Hitunglah kerja (W) yang terlibat selama proses tersebut, dengan integrasi secara numerik
(dengan metode composite trapezoidal rule, misalnya).

Dalam hal ini: W  P dV


Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VI-5
MODUL 7
PERSAMAAN DIFERENSIAL BIASA DENGAN
PERSOALAN NILAI AWAL

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020


MODUL 7 – Persamaan Diferensial Biasa dengan Persoalan Nilai Awal

MODUL 7
PERSAMAAN DIFERENSIAL BIASA DENGAN PERSOALAN NILAI AWAL

7.1. Tujuan
 Menyelesaikan persamaan diferensial biasa (dengan persoalan nilai awal)
menggunakan metode Euler.
 Menyelesaikan persamaan diferensial biasa (dengan persoalan nilai awal)
menggunakan metode Runge-Kutta orde 4.
 Membandingkan hasil-hasil integrasi yang diperoleh (dengan metode yang berbeda).
 Menerapkannya untuk kasus-kasus: persamaan tunggal, sistem persamaan simultan,
dan persamaan diferensial biasa berorde tinggi.

7.2. Metode Euler (Eksplisit)


Persamaan diferensial biasa (PDB) orde satu dengan persoalan nilai awal (initial value
problem, IVP) atau kondisi awal (initial condition) dapat diselesaikan melalui berbagai cara.
Metode Euler eksplisit dan Runge-Kutta (RK) merupakan cara-cara penyelesaian numerik yang
tergolong dalam one-step methods.
Metode Euler eksplisit merupakan metode yang paling sederhana untuk
menyelesaikan PDB-IVP orde satu. Cara ini dapat dengan mudah diterapkan, baik untuk
persamaan tunggal maupun sistem persamaan (yang harus diselesaikan secara simultan).

7.2.1. Kasus Persamaan Tunggal


dy
Tinjaulah PDB-IVP orde satu berikut ini:  f (x , y)
dx
dengan nilai awal: x = x0; y = y0
di mana x merupakan variabel bebas dan y merupakan variabel tak-bebas dalam persamaan.
Dengan metode Euler eksplisit, nilai awal xi dan yi digunakan secara langsung sebagai input
atau acuan perhitungan untuk menentukan nilai x dan y selanjutnya (yaitu: xi+1 dan yi+1):
xi+1 = xi + x
yi+1 = yi + f(xi,yi ).x
di mana: x = h merupakan step size (lebar langkah).

Dalam hal ini, besarnya step size (x = h) dapat ditentukan dengan:

x akhir  x awal x x x x
x   akhir awal  n 0
jumlah langkah n n

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VII-1
MODUL 7 – Persamaan Diferensial Biasa dengan Persoalan Nilai Awal

Untuk sejumlah kasus tertentu, kelemahan metode ini adalah perhitungan yang tidak
stabil jika menggunakan x besar. Dengan kata lain, semakin kecil  x mengakibatkan jumlah
langkah integrasi yang semakin banyak serta hasil perhitungan yang semakin stabil dan
semakin mendekati hasil yang sebenarnya (secara analitik).

7.2.2. Kasus Sistem Persamaan

Untuk sejumlah n buah PDB-IVP orde satu yang harus diselesaikan secara simultan, maka cara
yang sama (atau serupa) dapat ditempuh.
Misalkan, untuk sistem PDB-IVP orde satu dengan 2 (dua) buah persamaan berikut ini:
dy
 f1 (x , y ,z)
dx
dz
dan  f2 (x , y ,z)
dx
dengan nilai awal: x = x0; y = y0; z = z0
Dari nilai awal xi, yi, dan zi, maka nilai x, y, dan z selanjutnya dapat ditentukan dengan cara:
xi+1 = xi + x
yi+1 = yi + f1(xi,yi,zi).x
zi+1 = zi + f2(xi,yi,zi).x
di mana: x = h merupakan step size (lebar langkah).
Algoritma penyelesaian sistem PDB-IVP orde satu yang terdiri dari dua buah persamaan
dengan metode Euler eksplisit ditunjukkan dalam diagram alir pada Gambar 7.1.

Analog untuk sejumlah n buah PDB-IVP orde satu dengan variabel bebas x dan
variabel tak-bebas y1, y2, y3, …., yn berikut ini:
dy 1
 f1 (x , y1 , y 2 , y3 ,...., yn )
dx
dy 2
 f2 (x , y1 ,y 2 , y 3 ,...., yn )
dx
dy 3
 f3 (x , y1 , y2 , y 3 ,...., y n )
dx
…. dan seterusnya
dy n
hingga  fn (x , y1 , y2 , y3 ,...., yn )
dx
dengan nilai awal: x = xi; y1 = y1,i; y2 = y2,i; y3 = y3,i; ….. yn = yn,i

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VII-2
MODUL 7 – Persamaan Diferensial Biasa dengan Persoalan Nilai Awal

maka penyelesaian sistem PDB-IVP dengan metode Euler eksplisit dapat dituliskan sebagai:

xi+1 = xi + x
y1,i+1 = y1,i + f1(xi, y1,i, y2,i, y3,i, …., yn,i).x
y2,i+1 = y2,i + f2(xi, y1,i, y2,i, y3,i, …., yn,i).x
y3,i+1 = y3,i + f3(xi, y1,i, y2,i, y3,i, …., yn,i).x
….
yn,i+1 = yn,i + fn(xi, y1,i, y2,i, y3,i, …., yn,i ).x

di mana: x = h merupakan step size (lebar langkah).

Dalam penerapannya, langkah-langkah penyelesaian sistem PDB-IVP orde satu secara


simultan tersebut di atas dapat digunakan untuk penyelesaian PDB-IVP orde tinggi (misal:
orde m). Pada prinsipnya, sebuah PDB-IVP berorde m harus diubah menjadi sejumlah m buah
PDB-IVP berorde satu lebih dahulu. Selanjutnya, sistem m buah PDB-IVP orde satu yang
terbentuk tersebut dapat diselesaikan secara simultan atau serempak.

7.3. Metode Runge-Kutta Orde-4

Metode Runge-Kutta (RK) yang paling popular atau umum digunakan dalam
penyelesaian PDB-IVP adalah metode Runge-Kutta berorde empat (RK-4). Metode Euler
sebenarnya merupakan metode RK berorde satu. One step methods lainnya meliputi metode
modified Euler (Heun), metode titik tengah (mid-point), dan sebagainya. Metode RK-4 ini
memberikan hasil penyelesaian yang lebih baik dibandingkan Euler eksplisit (yang hanya
menggunakan slope pada nilai awalnya).

7.3.1. Kasus Persamaan Tunggal


dy
Untuk PDB-IVP orde satu:  f (x , y)
dx
dengan nilai awal: x = x0; y = y0
maka nilai x dan y selanjutnya (yaitu: xi+1 dan yi+1) dapat ditentukan dari acuan nilai awal xi dan
yi dengan menggunakan metode RK-4 sebagai berikut:
xi+1 = xi + x
1
yi1  yi 
6
k1,i  2 k2 ,i  2 k 3,i  k 4 ,i  x
di mana: x = h merupakan step size (lebar langkah).

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VII-3
MODUL 7 – Persamaan Diferensial Biasa dengan Persoalan Nilai Awal

k 1 ,i  f(x i , y i )

 1 1 
k 2,i  f  x i  x , y i  k 1,i x 
 2 2 

 1 1 
k 3,i  f  x i  x , yi  k2,i x 
 2 2 
k 4 ,i  f x i  x , y i  k 3,i x 

Algoritma penyelesaian PDB-IVP orde satu (persamaan tunggal) dengan metode RK-4
disajikan pada Gambar 7.2.

7.3.2. Kasus Sistem Persamaan

Misalkan, untuk sistem PDB-IVP orde satu dengan 2 (dua) buah persamaan [dengan variabel
bebas x serta variabel tak-bebas y dan z] berikut ini:

dy
 f1 (x , y ,z)
dx
dz
dan  f2 (x , y ,z)
dx
dengan nilai awal: x = x0; y = y0; z = z0

Dari nilai awal xi, yi, dan zi, maka nilai x, y, dan z selanjutnya dapat ditentukan dengan cara:

xi+1 = xi + x
1
yi1  yi 
6
k1,i  2 k2 ,i  2 k 3,i  k 4 ,i  x
1
zi1  z i  l1,i  2 l2 ,i  2 l3,i  l4 ,i x
6
di mana: x = h merupakan step size (lebar langkah).

k 1 ,i  f1 (x i , y i , z i )

l1 ,i  f2 (x i , y i , zi )

 1 1 1 
k 2,i  f1  x i  x , yi  k1,i x , zi  l1,i x 
 2 2 2 

 1 1 1 
l2,i  f2  x i  x , yi  k1,i x , zi  l1,i x 
 2 2 2 

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VII-4
MODUL 7 – Persamaan Diferensial Biasa dengan Persoalan Nilai Awal

 1 1 1 
k 3,i  f1  x i  x , y i  k 2,i x , zi  l2,i x 
 2 2 2 

 1 1 1 
l3,i  f2  x i  x , yi  k 2,i x , z i  l2,i x 
 2 2 2 
k 4 ,i  f1 x i   x , y i  k 3,i  x , zi l3,i x 

l4,i  f2 x i   x , y i  k 3 ,i x , zi  l3,i  x 

Algoritma penyelesaian sistem PDB-IVP orde satu yang terdiri dari dua buah persamaan
dengan metode RK-4 disajikan pada Gambar 7.3.

Untuk sejumlah n buah PDB-IVP orde satu yang harus diselesaikan secara simultan
dengan metode RK-4, maka cara yang sama seperti langkah-langkah tersebut di atas dapat
ditempuh.

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VII-5
MODUL 7 – Persamaan Diferensial Biasa dengan Persoalan Nilai Awal

MULAI

NILAI AWAL:
yi = y0 & zi = z0 ;
xi = x0 = x awal
xn = x akhir
n = jumlah segmen (langkah)

∆x = h = (xn – x0)/n

xi+1 = xi + x
xi = xakhir yi+1 = yi + f1(xi,yi,zi).x
yi = yakhir
zi+1 = zi + f2(xi,yi,zi).x
zi = zakhir

xakhir = xi+1
yakhir = yi+1
zakhir = z i+1

tidak
xakhir > xn

ya

TULIS
yakhir
zakhir

SELESAI

Gambar 7.1. Diagram alir penyelesaian sistem PDB-IVP orde satu yang terdiri dari dua buah
persamaan dengan metode Euler

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VII-6
MODUL 7 – Persamaan Diferensial Biasa dengan Persoalan Nilai Awal

Gambar 7.2. Penyelesaian PDB-IVP orde satu (persamaan tunggal) dengan metode RK-4

Gambar 7.3. Penyelesaian sistem PDB-IVP orde satu yang terdiri dari dua buah persamaan
dengan metode RK-4

7.4. Latihan Soal

1. Selesaikanlah persamaan diferensial:


dy
(a)  y x 3  1,5 y dengan: y(0) = 1, dari x = 0 hingga x = 2
dx
dy
(b)  (1  2 x) y dengan: y(0) = 1, dari x = 0 hingga x = 1,5
dx
dengan menggunakan beberapa step size yang berbeda.

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VII-7
MODUL 7 – Persamaan Diferensial Biasa dengan Persoalan Nilai Awal

Bandingkanlah penggunaan metode Euler dan metode RK-4. Bandingkan juga dengan hasil
penyelesaian secara analitik (eksak). Sajikanlah hasil-hasil perhitungan (yang Anda peroleh)
dalam bentuk tabel dan grafik.

2. Reaksi fasa cair: A  P dilangsungkan dalam reaktor tangki berpengaduk dengan mode
operasi semi batch. Profil mol A (nA) sebagai fungsi waktu (t) dinyatakan dalam persamaan:

dnA k nA 2
 q0 C A 0  dengan: nA = 0 pada t = 0.
dt q0 t  V0
Diketahui: CA0 = 1 molar; k = 0,1 molar -1.detik-1; q0 = 10 liter.detik -1; V0 = 50 liter
Selesaikan persamaan diferensial ini hingga t = 100 detik, untuk mengetahui unjuk kerja
reaktor. Bandingkan penggunaan metode Euler dan metode RK-4. Sajikanlah hasil
perhitungan dalam bentuk tabel dan grafik.

3. Diketahui sistem persamaan diferensial: dy/dx = 2 y + 5 z e x

dz/dx = (1/2) y z2
Tentukanlah nilai y dan z pada x = 1, jika diambil step size sebesar x = 0,1.
Kondisi awal: y(0) = 2 dan z(0) = 4. Bandingkan hasil perhitungan antara metode Euler dan
metode RK-4. Gunakanlah beberapa step size yang berbeda.

4. Reaksi konsekutif (= seri) orde satu: A  B  C dilaksanakan di dalam reaktor batch secara
isotermal dalam waktu 60 menit. Dari neraca massa diperoleh:

dC A
  k 1C A
dt
dC B
 k1C A  k 2C B
dt
  E1   E 2 
   
 RT   RT 
di mana: k1  A1e dan k2  A 2e
Jika reaktor beroperasi pada suhu 370 K, tentukan konsentrasi A (C A) dan B (C B) pada waktu
t = 60 menit. Gambarkanlah grafik hubungan antara CA dan CB terhadap waktu (t)!
Diketahui: A1 = 0,145 menit–1; A2 = 0,05 menit –1; E1 = 1167,8 kal/mol; E2 = 1580,8 kal/mol
R = 1,987 kal/(mol.K); CA0 = 2 gmol/l; CB0 = 0

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VII-8
MODUL 8
APLIKASI FINITE-DIFFERENCE UNTUK
MENYELESAIKAN PERSAMAAN DIFERENSIAL
DENGAN PERSOALAN NILAI BATAS

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020


MODUL 8 – Aplikasi Finite-Difference untuk Menyelesaikan Persamaan
Diferensial dengan Persoalan Nilai Batas

MODUL 8
APLIKASI FINITE-DIFFERENCE UNTUK MENYELESAIKAN PERSAMAAN
DIFERENSIAL DENGAN PERSOALAN NILAI BATAS

8.1. Tujuan
 Menerapkan penggunaan finite-(divided)-difference untuk menyelesaikan persamaan
diferensial biasa dengan persoalan nilai batas (boundary value problem, BVP).
 Menerapkan penggunaan finite-(divided)-difference untuk menyelesaikan persamaan
diferensial parsial (tipe parabolik) dengan persoalan nilai batas (boundary value
problem, BVP).

8.2. Aplikasi Finite-Difference untuk Menyelesaikan Persamaan Diferensial dengan Persoalan


Nilai Batas (Boundary Value)

Persamaan diferensial merupakan persamaan matematika yang melibatkan turunan


atau derivatif fungsi. Berdasarkan persoalan syarat/ kondisi/ nilainya, persamaan diferensial
(PD) dapat dikelompokkan menjadi:
1) PD dengan dengan persoalan syarat/ nilai awal (initial value problem, IVP, atau initial
condition problem): yaitu jika semua syarat diberikan pada satu nilai variabel bebas (pada
nol atau x0), dan
2) PD dengan persoalan syarat/ nilai batas (boundary value problem, BVP, atau boundary
condition problem): yaitu jika syarat-syarat diberikan pada lebih dari satu nilai variabel
bebas.

Persamaan diferensial dengan BVP dapat diselesaikan dengan:


1) shooting method, yang didasarkan pada pengubahan boundary value problem menjadi
equivalent initial value problem, atau
2) finite-difference method.
Dengan metode finite-difference, sejumlah pendekatan finite-divided-difference
disubstitusikan ke dalam bentuk turunan atau derivatif yang terdapat di dalam PD-BVP
yang akan diselesaikan. Metode finite-difference ini dapat diterapkan untuk
menyelesaikan BVP terhadap persamaan diferensial biasa/ ordiner (PDB) ataupun
persamaan diferensial parsial (PDP).

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VIII-1
MODUL 8 – Aplikasi Finite-Difference untuk Menyelesaikan Persamaan
Diferensial dengan Persoalan Nilai Batas

8.2.1. Contoh Kasus-1: PDB-BVP Berorde-Dua

Gambaran Masalah (Chapra and Canale, 2009):

Di dalam sebuah tube (dengan panjang 4 cm) senyawa A terdifusi (yang disertai dengan
reaksi). Profil konsentrasi A (A) di sepanjang tube (x) dapat dinyatakan dalam persamaan
d2A
diferensial: D k A  0
dx2
Salah satu ujung tube terhubung dengan tangki yang berisi A dengan konsentrasi sangat
besar (yang dianggap tetap, yaitu 0,1 M). Salah satu ujung lainnya terhubung dengan
wadah berisi adsorben yang mengabsorpsi A dengan sangat cepat (sehingga
mengakibatkan konsentrasinya menjadi 0 M). Jika: D = 1,5 x 10-6 cm2/detik dan
k = 5 x 10-6 detik-1, berapakah konsentrasi A di sepanjang tube?

Analisis dan Penyelesaian Masalah:


d2 A
Persamaan diferensial biasa: D k A  0 … (1.1)
dx2
Kondisi batas (BC): A(x = 0) = 0,1 M … (BC-1)
A(x = L) = 0 … (BC-2)
Data: L = 4 cm; D = 1,5 x 10-6 cm2/detik; k = 5 x 10-6 detik-1

Turunan pada persamaan (1.1) dapat dinyatakan melalui pendekatan terpusat (centered finite-
d2 A Ai1  2 A i  A i1
difference) sebagai berikut:  … (1.2)
dx2 x 2
L0
dengan: lebar inkremen x sebesar: x  dan n [=] jumlah inkremen x.
n
Substitusikan (1.2) ke (1.1) sehingga diperoleh profil konsentrasi A sepanjang tube (Ai) sebagai
Ai1  2 Ai  Ai1
berikut: D  k Ai  0
x 2
D  2D  D … (1.3)
A i1   2  k  Ai 
 2 A i1  0
x 2   x   x

dengan: i = 1, 2, …, n-1

Jika i = 1, maka: D  2D  D
2 A2  
 2 k
 A 1  x 2 A 0  0
x    x  
dengan: A0 = 0,1 (sesuai dengan BC-1)

Jika i = 2, maka: D  2D  D
2 A3  
 2 k
 A2  A 0
x   x   x 2 1

Demikian seterusnya untuk i = 3, 4, …, n-1.

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VIII-2
MODUL 8 – Aplikasi Finite-Difference untuk Menyelesaikan Persamaan
Diferensial dengan Persoalan Nilai Batas

Jika i = n-1, maka: D  2D  D


2 An   2  k  An1  A 0
 
x   x   x 2 n2
dengan: An = 0 (sesuai dengan BC-2)

Misal, tube sepanjang L dibagi menjadi 10 bagian/ inkremen/ segmen (n = 10), maka:

L 4 cm
x    0,4 cm
10 10

Dengan demikian, nilai-nilai A1, A2, A3, … A9 dapat ditentukan secara simultan (serempak)
berdasarkan sistem persamaan aljabar linier sebagai berikut:

  2D  D 
  
2 k 2 0 0 0 0 0 0 0 
    x     x 
   D 
D  2D  D  A0 
 2
  2
 k  0 0 0 0 0 0   A 1   x 2
  x    x    x 2  A 2   
0
 D  2D  D    
 0 2
  2
 k  0 0 0 0 0  A 3   0 
   x     x   x 2  A 4   
0
 ...    
 ...  A 5    0 
  A   0

 ...   6  
  A 7   0 
 ...  A   
 D  2D  D   8  0 
 0 0 0 0 0 0    k     D 
 x 2   x 2
 x 2  A 9   x2 A 10 
 
 D  2D 
 0 0 0 0 0 0 0    k 
 x 2  x 
2


… (1.4)
Berdasarkan nilai D, k, dan x tersebut di atas, dalam hal ini:

D 1,5 x 106
2
 2
 9,375 x 106
x  0,4 
2D 2 x 1,5 x 10 6
 k   5 x 10 6  2,375 x 10 5
x 2 0,4 2

8.2.2. Contoh Kasus-2: Penerapan Metode Eksplisit dan Implisit untuk Menyelesaikan
Persamaan Diferensial Parsial Dua-Dimensi (Dua-Variabel) dengan Tipe Parabolik

Gambaran Masalah (Riggs, 1988):


Y  2Y Y
Tinjaulah persamaan diferensial:   … (2.1)
t x 2 x
dengan: Y (x,0) = 1 (sebagai nilai awal (initial condition), IC)
Y (0,t) = 1 (sebagai nilai batas (boundary condition), BC-1)
Y (1,t) = 2 (sebagai nilai batas (boundary condition), BC-2)
Tentukan nilai: Y (x; 0,1)

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VIII-3
MODUL 8 – Aplikasi Finite-Difference untuk Menyelesaikan Persamaan
Diferensial dengan Persoalan Nilai Batas

Analisis dan Penyelesaian Masalah:

Berdasarkan persamaan (2.1), jarak x dan waktu t merupakan variabel bebas (independent
variable) dalam kasus ini, sedangkan Y merupakan variabel tak bebas (dependent variable).
Dimisalkan: Indeks i untuk menyatakan variabel x dan indeks j untuk variabel t.

Masalah ini akan coba diselesaikan dengan 2 (dua) metode, yaitu:


(1) metode eksplisit, dan
(2) metode implisit

1. Dengan Metode Eksplisit:

Turunan pada persamaan (2.1) didekati melalui bentuk sebagai berikut:


Y Yi , j 1  Yi , j
 … (2.2, forward difference)
t i, j t

Y Yi 1, j  Yi1, j
 … (2.3, centered difference)
x i, j 2 x

 2Y Yi 1, j  2 Yi , j  Yi 1, j
 … (2.4, centered difference)
x 2 i, j
(x )2

Substitusikan (2.2), (2.3), dan (2.4) ke dalam persamaan diferensial semula (persamaan (2.1)):

Yi , j 1  Yi , j Yi 1, j  2 Yi , j  Yi1, j Yi 1, j  Yi 1, j


 2

t (x ) 2 x
t
Yi , j 1  Yi , j  2
Yi1, j  2 Yi, j  Yi1, j   t Yi1, j  Yi1, j 
(x ) 2 x
sehingga diperoleh:

 t t   2 t   t t 
Yi , j 1     Yi 1, j  1   Yi , j     Yi 1, j … (2.5)
 (x )
2
2 x   (x )
2
  (x )
2
2 x 

Persamaan (2.5) merupakan formula eksplisit hasil penjabaran untuk kasus ini.

2. Dengan Metode Implisit:

Turunan pada persamaan (2.1) didekati melalui bentuk sebagai berikut:


Y Yi , j 1  Yi , j
 … (2.6, backward difference)
t i , j 1 t

Y Yi 1, j 1  Yi 1, j 1
 … (2.7, centered difference)
x i , j 1 2 x

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VIII-4
MODUL 8 – Aplikasi Finite-Difference untuk Menyelesaikan Persamaan
Diferensial dengan Persoalan Nilai Batas

 2Y Yi1, j 1  2 Yi , j 1  Yi 1, j 1
 … (2.8, centered difference)
x 2 i , j 1
( x) 2

Substitusikan (2.6), (2.7), dan (2.8) ke dalam persamaan diferensial semula (persamaan (2.1)):

Yi , j 1  Yi , j Yi 1, j 1  2 Yi , j 1  Yi 1, j 1 Yi 1, j 1  Yi 1, j 1


 2

t (x) 2 x
t
Yi , j 1  Yi , j  2
Yi1, j1  2 Yi, j1  Yi1, j1   t Yi1, j1  Yi1, j1 
(x ) 2 x

sehingga diperoleh:

 t t   2 t   t t 
   Yi 1, j 1    1   Y  
2  i , j 1
  Yi 1, j 1  Yi , j … (2.9)
 (x )
2
2 x   (x )   (x )
2
2 x 

Persamaan (2.9) merupakan formula implisit hasil penjabaran untuk kasus ini. Dalam hal ini,
Yi+1,j+1, Yi,j+1, dan Yi-1,j+1 hanya dapat ditentukan melalui perhitungan secara simultan
(serempak/ bersamaan).

Keterangan:
Selain menggunakan metode eksplisit (yang penyelesaiannya bersifat less stable dan less
accurate) dan metode implisit (yang more stable dan less accurate), persamaan diferensial
parsial tipe parabolik ini juga dapat diselesaikan dengan metode Crank-Nicolson (yang bersifat
more stable dan more accurate, dengan menggunakan pendekatan pada titik acuan: i,j+1/2).

8.3. Latihan Soal

1. Selesaikan Contoh Kasus-1 (pada subbab 8.2.1. tersebut di atas).


(a) Berapakah dan bagaimanakah profil konsentrasi zat A di sepanjang tube? Sajikan
hasil perhitungan Anda dalam bentuk: (i) tabel, dan juga (ii) grafik.
(b) Ulangi semua langkah perhitungan di atas dengan mengambil jumlah inkremen (di
sepanjang tube) yang berbeda. Selanjutnya, bandingkanlah hasil-hasil yang
diperoleh.

2. Selesaikan Contoh Kasus-2 (pada subbab 8.2.2. tersebut di atas), misalnya: dengan
mengambil masing-masing 8 inkremen (untuk variabel bebas x) dan 10 inkremen (untuk
variabel bebas t).

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VIII-5
MODUL 8 – Aplikasi Finite-Difference untuk Menyelesaikan Persamaan
Diferensial dengan Persoalan Nilai Batas

(a) Gunakan metode eksplisit.


(b) Gunakan metode implisit.
(c) Bandingkanlah hasil-hasil yang Anda peroleh (dengan menyajikannya dalam bentuk
tabel hasil perhitungan dan juga grafik).

3. Profil konsentrasi suatu zat (M) sebagai fungsi jarak (z) dan waktu (t) dalam suatu vessel
dapat dinyatakan dalam persamaan diferensial parsial:

M  2M M
 125 2  2  0,15 M
t z z
dengan: nilai awal (initial condition) : M (z, 0) = 0,5 pada t = 0
nilai batas (boundary condition) : M (0, t) = 10 pada z = 0
M (L, t) = 85 pada z = L = 20
Bagilah jarak z (L) menjadi sekurang-kurangnya 4 segmen dan ambillah nilai:  t = 0,05.
Selesaikanlah persamaan tersebut di atas dengan metode eksplisit dan implisit untuk
menentukan nilai-nilai M pada berbagai jarak z dan pada: t = 0,1; t = 0,5; t = 2; t = 10; dan
hingga tercapai keadaan steady. Sajikan hasil perhitungan dalam bentuk tabel.

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 VIII-6
MODUL 9
OPTIMASI SATU VARIABEL

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020


MODUL 9 – Optimasi Satu Variabel

MODUL 9
OPTIMASI SATU VARIABEL

9.1. Tujuan
 Menentukan nilai variabel optimum agar menghasilkan fungsi maksimum atau
minimum dengan metode golden section dan metode Newton pada suatu persamaan
dengan variabel tunggal.
 Membandingkan hasil-hasil optimasi yang diperoleh (dengan metode yang berbeda).

9.2. Metode Golden Section (Search)

Optimasi merupakan proses untuk mencari atau menentukan nilai variabel optimum
agar diperoleh fungsi maksimum atau minimum. Fungsi yang akan dibuat maksimum atau
minimum disebut fungsi obyektif (objective function). Secara umum, jika Y didefinisikan
sebagai berikut:
Y = f(X)
maka pada X tertentu (Xopt = Xoptimum) akan diperoleh Y maksimum atau Y minimum.

Metode golden section dapat digunakan untuk melakukan optimasi variabel tunggal, di
mana metode ini tergolong sebagai metode pengurung (dan non-gradient method) yang
mensyaratkan bahwa fungsi obyektifnya harus bersifat unimodal dalam rentang variabel yang
ditinjau. Pertama, kita harus menentukan rentang variabel: XL (XLow) dan XH (Xhigh), di mana Xopt
berada di antara XL dan XH. Selanjutnya, tentukanlah dua titik baru (yaitu X1 dan X2) untuk
mengeliminasi sebagian interval.

X1 = XL + (1  G)( XH  XL)  Y1 = f(X1)

X2 = XL + G( XH  XL )  Y2 = f(X2)

5 1
dengan: G = = 0,618034  angka emas (golden number).
2

Atau, jika didefinisikan: d = G( XH  XL)

maka, nilai X1 dan X2 dapat ditentukan dengan cara: X1 = XH – d


X2 = XL + d

Kemungkinan-kemungkinan proses eliminasinya adalah sebagai berikut:

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IX-1
MODUL 9 – Optimasi Satu Variabel

9.2.1. Kasus Maksimasi: Objective: max f(X)

Jika Y1 > Y2 maka XH = X2 ; YH = Y 2


X2 = X1 ; Y 2 = Y1
XL dan YL tetap
X1 dan Y1 dicari

Jika Y1 < Y 2 maka XL = X1 ; YL = Y 1


X1 = X2 ; Y 1 = Y2
XH dan YH tetap
X2 dan Y2 dicari

Perhitungan dihentikan jika: abs( XH  XL) < toleransi yang ditetapkan,


XL  XH
dan diperoleh nilai variabel optimumnya: Xopt = .
2

9.2.2. Kasus Minimasi: Objective: min f(X)

Jika Y1 > Y 2 maka XL = X1 ; YL = Y 1


X1 = X2 ; Y 1 = Y2
XH dan YH tetap
X2 dan Y2 dicari

Jika Y1 < Y2 maka XH = X2 ; YH = Y 2


X2 = X1 ; Y 2 = Y1
XL dan YL tetap
X1 dan Y1 dicari

Perhitungan dihentikan jika: abs(XH  XL ) < toleransi yang ditetapkan,


XL  XH
dan diperoleh nilai variabel optimumnya: Xopt = .
2

Algoritma proses optimasi variabel tunggal dengan metode golden section untuk kasus
minimasi ditunjukkan dalam diagram alir pada Gambar 9.1. Metode golden section untuk
kasus maksimasi dapat dilakukan dengan prosedur yang serupa.

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IX-2
MODUL 9 – Optimasi Satu Variabel

MULAI

Tentukan
XL , XH , dan tol

G = (-1 + 5)/2
X1 = XL + (1  G)( XH  XL)  Y1 = f(X1)
X2 = XL + G(XH  XL)  Y2 = f(X2)

XL  YL= f(XL)
XH  YH = f(XH)

ya tidak
abs( X H  XL) < tol ?

XOpt = (XL + XH) / 2 ya


YOpt = f(XOpt) Y1>Y2 ?
tidak

TULIS
Xopt dan Yopt XL = X1 ; YL = Y1 XH = X2 ; YH = Y2
X1 = X2 ; Y1 = Y2 X2 = X1 ; Y2 = Y1
X2 = XL + G(XH  X L) X1 = XL + (1  G)(XH  XL)
Y2 = f(X2) Y1 = f(X1)

SELESAI

Keterangan:
Pendefinisian error yang berupa abs(XH - XL) dapat juga disajikan dalam bentuk
lain, misalnya approximate error (ea).

Gambar 9.1. Diagram alir prosedur optimasi variabel tunggal dengan metode golden section
(obyektif: minimasi f(X))

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IX-3
MODUL 9 – Optimasi Satu Variabel

9.3. Metode Newton

Metode Newton untuk optimasi variabel tunggal dikategorikan sebagai metode


terbuka (dan merupakan gradient method) yang algoritmanya mirip dengan metode Newton-
Raphson untuk pencarian akar persamaan tak-linier tunggal. Dalam hal ini, fungsi Y = f(X) akan
bernilai maksimum atau minimum jika:
fungsi turunan pertamanya bernilai nol, atau: f’(X) = 0

Di sisi lain, ditinjau dari nilai fungsi turunan keduanya, fungsi Y = f(X) akan bernilai:
 maksimum jika: f’’(X) < 0 (atau bernilai negatif), dan
 minimum jika: f’’(X) > 0 (atau bernilai positif).
f' (X i )
Secara iteratif, nilai X optimum dapat ditentukan melalui: X i1  X i 
f'' (Xi )
Proses iterasi akan dihentikan jika error yang diperoleh sudah tidak melebihi batasan nilai
toleransi yang telah ditentukan. Dalam hal ini, nilai fungsi turunan pertama dan kedua (f’(X)
dan f’’(X)) dapat ditentukan secara analitik (jika memungkinkan) ataupun numerik (melalui
pendekatan finite-divided difference).

Adapun algoritma penentuan X optimum dengan metode Newton dapat dirinci


melalui langkah-langkah berikut ini:
1. Mulai
2. Ambil: tebakan awal Xi, nilai toleransi ‘tol’, nilai awal ‘beda’
3. Lakukan secara berulang-ulang (dalam loop) hingga diperoleh: beda < tol
 Hitung nilai: f(Xi), f’(Xi), f’’(Xi)
 Hitung nilai X selanjutnya: Xi+1

X i 1  X i
 Hitung nilai ‘beda’, misalnya: beda  x 100 %
X i 1

 Kembalikan nilai X: Xi = Xi+1


4. Tuliskan nilai atau hasil: Xi, f(Xi), f’(Xi), f’’(Xi)
5. Selesai

Dengan demikian, nilai X optimum dan f(X) maksimum atau minimum dapat diperoleh. Untuk
melakukan pengecekan (terhadap kriteria kasus optimasi yang dijumpai), maka nilai-nilai f’(X)
dan f’’(X) dapat ikut serta disajikan dalam hasil-hasil perhitungan secara iteratif.
Sebagai review, berikut ini disajikan contoh-contoh sederhana dari perumusan fungsi
turunan pertama dan kedua untuk persamaan dengan variabel tunggal melalui pendekatan
finite-divided difference (atau diferensiasi secara numerik).

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IX-4
MODUL 9 – Optimasi Satu Variabel

Jika h (atau X) menyatakan sebuah bilangan kecil, maka:

Turunan Pertama Turunan Kedua


Pendekatan dengan 2 Titik dengan 3 Titik
f’(X) f’’(X)
f (X  h)  f(X) f (X  2 h)  2 f(X  h)  f(X)
Forward (maju) f'(X)  f''(X) 
h h2
f (X)  f(X  h) f (X)  2 f(X  h)  f(X  2 h)
Backward (mundur) f'(X)  f''(X) 
h h2
f(X  h)  f (X  h) f(X  h)  2 f(X)  f(X  h)
Centered (tengah, terpusat) f'(X)  f''(X) 
2h h2

9.4. Latihan Soal

1. Diketahui persamaan: y = f(x) = 3 x2 – 12 x + 43. Tentukan nilai x optimum sehingga


diperoleh nilai y minimum. Selesaikan dengan metode golden section dan metode
Newton. Sajikanlah hasil-hasil iterasinya dalam bentuk tabel.

x2
2. Tentukan nilai x optimum yang memaksimumkan fungsi: f(x)  2 sin(x) 
10
di dalam interval: x = 0 dan x = 4,5. Selesaikan dengan metode golden section dan
metode Newton, serta bandingkan hasil-hasilnya. Sajikanlah hasil-hasil iterasinya
dalam bentuk tabel. Perlihatkanlah bahwa fungsi ini bersifat unimodal.

3. A will be converted into B in a stirred tank reactor. The product B and un-reacted A are
purified in a separation unit. Un-reacted A is recycled to the reactor. A process engineer
has found that the initial cost of the system is a function of the conversion, xA. Find the
conversion that will result in the lowest cost system. C is a proportionality constant.
0 ,6 0 ,6
 1   1  
Cost  C    5 
2 
 
 1  x A    xA  

Selesaikanlah dengan metode golden section dan metode Newton

4. Reaksi seri berorde satu: A  B  C dilaksanakan di dalam reaktor batch secara


isotermal dalam waktu 60 menit. Dari neraca massa dan laju reaksi diperoleh:
dC A dCB
  k 1C A  k 1C A  k 2CB
dt dt

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IX-5
MODUL 9 – Optimasi Satu Variabel

 E 1   E 2 
   
 RT   RT 
di mana: k1  A1e dan k 2  A 2e

Tentukanlah suhu T (optimum) agar diperoleh produk utama CB maksimum!

Diketahui: A1 = 0,145 menit–1; A2 = 0,05 menit–1


E1 = 1167,8 kal/gmol; E2 = 1580,8 kal/gmol; R = 1,987 kal/(gmol.K)
CA0 = 2 gmol/liter; CB0 = 0
(Sebagai nilai tebakan awal, ambillah misalnya: TL = 100; TH = 500)

5. Ulangi soal nomor 2 pada Latihan Soal di Modul 5:

Nitrous anhydride (N2O 5) dapat terurai menjadi dinitrogen tetraoksida (N2O4)


dan oksigen melalui reaksi: N2O5 (g)  N2O4 (g) + ½ O2 (g). Berikut adalah
data konsentrasi N2O5 (CA) versus waktu (t) untuk reaksi ini pada 313,1 K
dalam suatu percobaan secara batch:
CA (gmol/L) 0,1000 0,0892 0,0776 0,0705 0,0603 0,0542 0,0471
Waktu, t (detik) 0 500 1000 1500 2000 2500 3000

Reaksi dipostulasikan mengikuti model kinetika berorde satu terhadap CA.


CA
Atau, akan diperoleh:  ln k t
CA 0
Berapakah nilai k (dalam persamaan tersebut, dalam detik-1)?

Tentukanlah nilai k dengan prosedur optimasi satu variabel, di mana:


Nilai k (optimum) akan diperoleh pada saat fungsi obyektif persamaan ini (yaitu:
‘sum of square of errors’, SSE) bernilai minimum.
Analisis Masalah:
CA
Persamaan:  ln k t
CA 0

dapat dituliskan dalam bentuk lain: C A  C A 0 e  k t

maka, persamaan SSE dapat dituliskan sebagai:


n
SSE   (C A, mod el  C A, data )2
i 1

n
SSE   (CA 0 e  k t i  C Ai )2  f (k )  minimum
i 1

(a) Lakukan proses optimasi dengan metode golden section dan metode Newton.
(b) Sajikanlah hasil-hasil iterasi dalam bentuk tabel.
(c) Selanjutnya, plotkan grafik CA versus t (antara data dengan hasil optimasi).

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 IX-6
MODUL 10
OPTIMASI MULTI VARIABEL

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020


MODUL 10 – Optimasi Multi Variabel

MODUL 10
OPTIMASI MULTI VARIABEL

10.1. Tujuan

 Menentukan nilai variabel optimum agar menghasilkan fungsi maksimum atau


minimum dengan metode Hooke-Jeeves pada suatu persamaan yang mempunyai lebih
dari satu variabel (multi variable).
 Melakukan optimasi multi variabel dengan metode steepest ascent/ descent.
 Membandingkan penggunaan metode yang berbeda.

10.2. Metode Hooke-Jeeves

Metode Hooke-Jeeves dapat digunakan untuk mencari atau menentukan nilai-nilai


variabel optimum agar diperoleh fungsi maksimum atau minimum pada suatu persamaan yang
mempunyai lebih dari satu variabel (multi variable), misalnya sebagai berikut:

Y = f(X1, X2, X3, …, Xn)

Pada X tertentu (Xopt) akan diperoleh Y maksimum atau Y minimum.

Metode Hooke-Jeeves merupakan metode non-gradient untuk menentukan nilai


optimum suatu fungsi multi variabel secara langsung. Secara garis besar, algoritma metode
Hooke-Jeeves terdiri dari 3 tahapan, yaitu:
(1) Tahap eksplorasi,
(2) Tahap pengulangan langkah sukses, dan
(3) Tahap pengecilan delta variabel (increment).

10.2.1. Kasus Minimasi Hooke-Jeeves

Tahap Eksplorasi
Tahapan ini dimulai dengan menebak nilai variabel X1, X2, … ,Xn dan menghitung nilai
Yopt = Y sebagai acuan nilai optimum awal. Kemudian, variabel X1 ditambahkan atau
dikurangkan dengan suatu bilangan kecil (delta variabel), dan variabel X2, … ,Xn tetap.
 Jika input yang baru: X1 = X1 + dX1 menghasilkan Y < Y opt maka eksplorasi dinyatakan
SUKSES, dan kesuksesan ini ditandai dengan suatu variabel “tanda”, tanda1 = +1;
 Namun jika input yang baru: X1 = X1 + dX1 menghasilkan Y > Yopt maka eksplorasi
dinyatakan TIDAK SUKSES, dan mencoba input yang baru: X1 = X1 – dX1, jika

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 X-1
MODUL 10 – Optimasi Multi Variabel

menghasilkan Y < Yopt maka eksplorasi dinyatakan SUKSES, dan kesuksesan ini ditandai
dengan suatu variabel tanda1 = –1;
 Karena Y < Y opt, maka nilai Y opt diperbarui menjadi: Yopt = Y dan X1opt = X1.

Ulangi langkah-langkah tersebut di atas untuk variabel input yang lain (X2, … ,Xn).

Tahap Pengulangan Langkah Sukses


Jika tahap eksplorasi menghasilkan Y < Yopt, maka eksplorasi dinyatakan SUKSES untuk
semua input variabel. Kemudian kesuksesan ini harus diulangi dengan penambahan atau
pengurangan masing-masing input variabel dengan nilai delta variabel yang sama.

Tahap Pengecilan Delta Variabel (Increment)


Jika pada tahap pengulangan langkah sukses tidak ditemukan tanda-tanda SUKSES lagi,
maka delta variabel harus diperkecil (dengan rasio pengecilan tertentu). Selanjutnya, tahap
eksplorasi diulangi lagi dengan input delta variabel yang telah diperkecil. Perhitungan
dihentikan jika delta variabel mencapai suatu nilai yang lebih kecil dari pada nilai toleransi yang
ditentukan.

Prosedur optimasi multi variabel dengan metode Hooke-Jeeves untuk kasus minimasi disajikan
dalam diagram alir pada Gambar 10.1.

10.2.2. Kasus Maksimasi Hooke-Jeeves

Prosedur maksimasi Hooke-Jeeves dapat dilakukan serupa dengan minimasi Hooke-

Jeeves. Namun demikian, fungsi obyektif yang digunakan sebagai acuan dibalik, yaitu: Y > Yopt.

Kriteria SUKSES ditunjukkan melalui nilai Y yang selalu bertambah (lebih besar) dibandingkan

dengan nilai Y sebelumnya.

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 X-2
MODUL 10 – Optimasi Multi Variabel

MULAI

Tentukan
X1 , X2 , … , Xn
dX1, dX2, …, dXn
tol1, tol2, …, toln dan rasio

Hitung nilai Y, gunakan hasilnya sebagai acuan


nilai optimum awal (Yopt)

Tahap Eksplorasi
(menambah/mengurang Xi
dengan dXi)

Y<Yopt ? ya Ulang Sukses

tidak

Kecilkan Semua Delta


dX1 = dX1*rasio , tidak Cek Delta
dX2 = dX2*rasio , ....... , dXi <= toli ?
dXn = dXn*rasio

ya

TULIS
X1opt , X2opt , … , X nopt
Yopt

SELESAI

Gambar 10.1. Diagram alir prosedur optimasi multi variabel dengan metode Hooke-Jeeves
(obyektif: minimasi f(X))

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 X-3
MODUL 10 – Optimasi Multi Variabel

10.3. Metode Steepest Ascent/ Descent

Metode steepest ascent (= ascending)/ descent (= descending) merupakan kategori


gradient method dalam proses optimasi secara numerik.
Steepest ascent (= tanjakan tercuram) berlaku untuk kasus maksimasi.
Steepest descent (= turunan tercuram) berlaku untuk kasus minimasi

Sebagai ilustrasi, untuk sebuah fungsi multi-variabel (misalnya berupa 2 buah variabel): f(x,y)
yang ingin di-MAKSIMUM-kan atau ingin di-MINIMUM-kan (yaitu: Untuk menentukan nilai-
nilai variabel: xoptimum dan yoptimum), maka:
konsep dasar metode ini:
“Mengubah multi-dimensional function: f(x,y) menjadi one-dimensional function: F = g(h)”
Nilai: F = g(h) akan mencapai MAKSIMUM atau MINIMUM, jika: g’(h) = 0
Selanjutnya, akan diperoleh nilai h yang memenuhi: g’(h) = 0.

Algoritma:
1. Mulai
2. Ambil nilai tebakan awal: x, y, h
3. Ambil nilai-nilai delta (untuk menentukan turunan secara numerik): x, y, h
4. Ambil nilai-nilai awal untuk melakukan iterasi: iter = 0; beda = 1; tol
5. Melakukan iterasi (proses perhitungan secara berulang-ulang):
a. Menghitung nilai fungsi: f(x,y)
b. Menghitung nilai-nilai turunan parsial fungsi: f/x, f/y
c. Menghitung nilai h: (Mengubah fungsi f(x,y) menjadi: F = g(h), dan
kemudian membuat: g’(h) = 0)
 xb = x + f/x . h
 yb = y + f/y . h
 Menghitung nilai: f(xb,yb) = F = g(h)
 Membentuk fungsi baru, yaitu: g’(h) = dF (yang akan di-NOL-kan)
 Menghitung nilai hbaru (misal, dengan metode: Newton-Raphson):
g' (h) dF
hbaru  h  h
g' ' (h) dF '
 Mengembalikan atau memperbarui nilai h: h = hbaru
f
d. Menghitung nilai xbaru dan ybaru: x baru  x  h
x
f
ybaru  y  h
y

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 X-4
MODUL 10 – Optimasi Multi Variabel

e. Menghitung nilai percent approximate error (= beda):

x baru  x
beda1  x 100%
x baru

y baru  y
beda2  x 100%
y baru

beda1  beda2
beda 
2
f. Memperbarui nilai-nilai x dan y: x = xbaru
y = ybaru
6. Jika nilai: beda > tol, maka: kembali ke langkah (5).
Jika: “tidak”, maka: proses iterasi selesai.
7. Diperoleh nilai: x, y (sebagai hasil akhirnya)
8. Selesai

10.4. Latihan Soal

1. Diketahui persamaan: y = f (x1,x2) = (x1 – 3)2 + 0,25 (x2 – 5)2 + 7,5.


Tentukan nilai x1 dan x2 (optimum) sehingga nilai y minimum.
Sajikanlah hasil-hasil perhitungan Anda dalam bentuk tabel. Gambarkan fungsi ini dalam
bentuk grafik 3 dimensi.

2. Diketahui persamaan: f ( X , Y )  2,25 X Y  1,75 Y  1,5 X 2  2 Y 2

Gambarkan fungsi ini dalam bentuk grafik 3 dimensi.


Tentukan nilai X dan Y (optimum) yang membuat fungsi f bernilai maksimum.
Sebagai contoh (dengan metode Hooke-Jeeves), gunakan:
Nilai awal (initial guesses): X = 3; Y = 0; X = 0,5; Y = 0,2
Rasio pengecilan delta () = 40% [NB: Dengan kata lain: baru = 40% lama]
Sajikan hasil-hasil perhitungan Anda dalam bentuk tabel.

3. Lakukanlah optimasi terhadap persamaan: f(x,y) = 2 x y + 2 x – x2 – 2 y2


untuk memaksimumkan f(x,y) dengan metode steepest ascent dan dengan mengambil nilai
tebakan awal: x = -1, y = 1.

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 X-5
MODUL 10 – Optimasi Multi Variabel

4. Hubungan antara tekanan uap murni suatu cairan (Po, cm Hg) dengan suhu mutlak (T, K)

 B
didekati dengan persamaan Clausius-Clapeyron: Po  exp  A  
 T
Jika tersedia data sebagai berikut:
T 280 300 320 340 360 380 400
Po 2 5 12 25 49 89 148
berapakah nilai A dan B yang memberikan hasil persamaan empirik yang paling mendekati
trendline data? Selanjutnya, plotkan grafik Po versus T (antara data dengan hasil optimasi).

Catatan (Analisis Masalah):


Nilai konstanta A dan B dapat diperoleh ketika fungsi objektif yang berupa “sum of
square of errors (SSE)” dari kasus ini bernilai minimum. Dalam hal ini:
2
n  B o
SSE    exp A    Pi   f(A ,B)
i1   Ti  
Gunakanlah metode Hooke-Jeeves (misalnya), dengan nilai awal:
A = 12; B = -4200; ΔA = 1,48; ΔB = 150;
toleransi A = 0,01; toleransi B = 1; rasio Δ = 0,6

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 X-6
MODUL 10 – Optimasi Multi Variabel

CONTOH PROGRAM SCILAB UNTUK OPTIMASI DUA VARIABEL


DENGAN METODE HOOKE-JEEVES

// Soal M9.1: Minimasi f(x) dengan Hooke Jeeves


deff('F=fungsi(x1,x2)','F=(x1-3)^2+0.25*(x2-5)^2+7.5');
rasio=0.6; x=[7 7]; delx=[0.3 0.3];tol=[1e-6 1e-6];
n=length(x);
Fopt=fungsi(x(1),x(2));
xopt=x;F=Fopt;
disp([xopt Fopt])

// Mengecek Delta
chekdel=(['if delx(1)<=tol(1)&delx(2)<=tol(2) then';
'disp([xopt Fopt])';'disp(delx)'
'else'
'del=delx*rasio';
'delx=del';
'execstr(eksplorasi)'
'end']);

// Mengulangi Langkah Sukses


ulsuk=(['while Fopt<F'
'disp([xopt Fopt])'
'for i=1:n';' x(i)=xopt(i)+delx(i)*tanda(i)';'end'
'F=fungsi(x(1),x(2))';
'if F<=Fopt then';
'xopt=x'; ' Fopt=F';
'else'
'break'
'end'
'end'
'execstr(eksplorasi)']);

// Melakukan Eksplorasi
eksplorasi=(['for ep=1:n';
'tanda(ep)=0';
'x(ep)=xopt(ep)+delx(ep)'; 'Fd=fungsi(x(1),x(2))';
'if Fd<=Fopt then'
'xopt(ep)=x(ep); Fopt=Fd; tanda(ep)=1';
'else'
'x(ep)=xopt(ep)-delx(ep)';'Fd=fungsi(x(1),x(2))';
'if Fd<=Fopt then'
'xopt(ep)=x(ep);Fopt=Fd; tanda(ep)=-1';'end'
'end'
'end '
'disp([xopt Fopt])';
'if abs(tanda(1))>0|abs(tanda(2))>0 then';
'execstr(ulsuk)'
'else'
'execstr(chekdel)'
'end']);
execstr(eksplorasi);

// Hasilnya
printf('X1 = %3.2f X2 = %3.2f Fopt = %4.2f\n',x(1),x(2),Fopt)

===================================
OUTPUT:
X1 = 2.99 ; X2 = 4.97 ; Fopt = 7.50

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 X-7
DAFTAR PUSTAKA dan
TENTANG PENULIS

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020


DAFTAR PUSTAKA

DAFTAR PUSTAKA

1. Chapra, Steven C. and Canale, Raymond P., 2015, “Numerical Methods for Engineers”,
7th ed., New York: McGraw-Hill Education.

2. Chapra, S. C. and Canale, R. P., 2009, “Numerical Methods for Engineers”, 6th ed., New
York: McGraw-Hill Book, Inc.

3. Chapra, S. C., 2005, “Applied Numerical Methods with Matlab for Engineers and
Scientists”, Singapore: McGraw-Hill, Inc.

4. Chapra, S. C. and Canale, R. P., 2003, “Numerical Methods for Engineers: With Software
and Programming Applications”, 4th ed., New York: McGraw-Hill Book, Inc.

5. Davis, M. E., 1984, “Numerical Methods and Modeling for Chemical Engineers”, New
York: John Wiley & Sons, Inc., USA.

6. Hermawan, Y. D., 2016, “Modul Praktikum Pemrograman Komputer”, Yogyakarta:


Laboratorium Komputasi Proses Jurusan Teknik Kimia FTI UPN “Veteran” Yogyakarta.

7. Raman, R., 1985, “Chemical Process Computations”, London and New York: Elsevier
Applied Science Publishers.

8. Riggs, James B., 1988, “An Introduction to Numerical Methods for Chemical Engineers”,
Texas: Tech. University Press.

9. Tjukup Marnoto, 2010, “Analisa Numerik dan Pemrograman dengan Bahasa Scilab”,
Yogyakarta: Wimaya Press.

10. Wahyudi Budi Sediawan & Agus Prasetya, 1997, “Pemodelan Matematis dan
Penyelesaian Numeris dalam Teknik Kimia”, Yogyakarta: Penerbit Andi.

11. http://www.scilab.org

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 DP-1
TENTANG PENULIS

TENTANG PENULIS

Penulis pertama dengan nama lengkap Yulius Deddy Hermawan


adalah lulusan dari Jurusan Teknik Kimia UPN “Veteran” Yogyakarta pada
tahun 1996. Pada tahun 1998, penulis diterima sebagai dosen di Jurusan
Teknik Kimia UPN “Veteran” Yogyakarta. Kemudian penulis melanjutkan
studi program S2 tahun 1999 di Institut Teknologi Bandung (ITB) dengan
dukungan dana dari Beasiswa Program Pasca Sarjana (BPPS). Selama studi
S2, penulis tertarik untuk mempelajari masalah Dinamika Proses
khususnya tentang hidrodinamika pada tangki berpengaduk dengan draft
tube. Pada tahun 2001, penulis berhasil menyelesaikan studi S2 dan
memperoleh gelar Magister Teknik (MT). Kemudian, pada tahun 2002 penulis melanjutkan studi
S3 di Department of Chemical Engineering, Faculty of Engineering, Chulalongkorn University,
Thailand, dengan dukungan dana dari program Scholarship for Neighboring Country Student.
Penulis mencurahkan waktunya untuk mempelajari masalah Dinamika dan Pengendalian Proses,
khususnya tentang Plantwide Process Control. Pada tahun 2005, penulis berhasil menyelesaikan
studi S3 dan memperoleh gelar Doctor of Engineering (Dr. Eng.). Bidang penelitian yang diminati
penulis adalah tentang Dinamika dan Pengendalian Proses, Operasi Teknik Kimia, dan Simulasi
Proses dengan Pemrograman Komputer. Informasi lainnya tentang penulis dapat dibaca di blog:
http://ydhermawan.wordpress.com.
Penulis kedua dengan nama lengkap Siti Diyar Kholisoh merupakan lulusan dari Jurusan
Teknik Kimia Fakultas Teknologi Industri (FTI), Institut Teknologi Bandung (ITB) pada tahun 1997,
dengan mengambil sub program studi Teknologi Bioproses dan memperoleh gelar Sarjana Teknik
(ST). Setelah diterima menjadi dosen di Jurusan Teknik Kimia FTI UPN “Veteran” Yogyakarta pada
tahun 1998, penulis melanjutkan studi program S2 di Departemen Teknik Kimia Program Pasca
Sarjana ITB dari tahun 2000 hingga tahun 2003 (dan memperoleh gelar Magister Teknik (MT))
melalui dukungan dana dari Beasiswa Program Pasca Sarjana (BPPS). Tesis yang diambil berkaitan
dengan bidang Teknik Reaksi Kimia, khususnya tentang katalis dan katalisis. Bidang kajian studi
dan penelitian yang diminati penulis meliputi Teknik Reaksi Kimia dan Simulasi Proses dengan
Pemrograman Komputer.

*** Terima Kasih dan Semoga Bermanfaat. ***

Modul Praktikum Analisis Numerik dan Pemrograman (1210311)/ Oktober 2020 TP-1

Anda mungkin juga menyukai