Anda di halaman 1dari 19

MG 2211-METODE NUMERIK

MODUL PRAKTIKUM
METODE NUMERIK
(MG 2211)

Dosen Pengampu:
Prof. Dr. M. Zaki Mubarok, ST., MT.
D.Sc. (Tech.) Imam Santoso, ST., M.Phil.

PROGRAM STUDI TEKNIK METALURGI


FAKULTAS TEKNIK PERTAMBANGAN DAN
PERMINYAKAN - ITB
Semester II, 2020/2021
PENDAHULUAN

A. Menampilkan Developer Ribbon


1. Klik tombol File pada bagian kiri atas layar Excel.
2. Klik “More” lalu “Option” pada bagian kiri bawah layar menu
3. Pilih “Customize Ribbon” lalu centang “Developer” pada tampilan kanan layar menu.
4. Klik “Ok”.
Perlu diperhatikan bahwa Developer Ribbon sekarang sudah menjadi bagian dari
pilihan ribbon yang ada di Excel anda. Jika anda memutuskan bahwa anda tidak
memerlukan lagi Developer Ribbon, anda dapat kembali ke jendela “Options” dan
uncheck pilihan untuk menunjukkan Developer Ribbon.

B. Menunjukkan jendela berisi Macro yang dibuat


Cara I:
1. Pilih Developer Ribbon, kemudian klik pilihan “View Code”
Cara II:
1. Navigasikan pointer anda pada label pemilihan sheet yang akan digunakan.
Misal: Sheet 1.
2. Klik kanan dan pilih “View Code”.

C. Merekam Macro
Cara termudah untuk membuat macro di dalam Excel adalah dengan merekam
aksi yang anda lakukan dengan menggunakan “Macro Recorder”. Kemudian pada saat
anda ingin melakukan aksi tersebut, anda hanya perlu mengaktifkan macro yang anda
telah rekam.

Cara merekam macro:


1. Klik tombol dengan tampilan sebagai berikut
Cara I: Klik Developer Ribbon dan klik “Record Macro”

Cara II: Klik yang berada di bawah label pemilihan sheet.

2. Beri nama macro yang akan dibuat sesuai nama yang diinginkan
3. Isi shortcut key yang akan digunakan untuk mengoperasikan macro tersebut
(opsional)
* harus diperhatikan jangan menggunakan shortcut key yang sudah ada
contoh: Ctrl+S, Ctrl+C, dll.
4. Pilih Workbook yang akan digunakan untuk menyimpan macro tersebut
Personal Macro Workbook : dapat digunakan pada semua file Excel
This Workbook : hanya pada workbook tersebut
New Workbook : pada workbook baru
5. Berikan keterangan mengenai macro yang akan direkam untuk memudahkan saat
anda lupa fungsi dari macro yang sudah anda rekam
6. Klik “OK”
7. Lakukan aksi yang ingin direkam
8. Klik tombol “Stop Recording” untuk menghentikan perekaman.
Lokasi tombol berada di lokasi yang sama dengan lokasi tombol sebelumnya
D. Membuat Command Button
1. Klik Developer Ribbon, klik “Insert”, klik “Command Button” pada bagian “ActiveX
Controls”

E. Penulisan bahasa Macro pada Visual Basic Editor


Diawali dengan “Dim”, digunakan untuk menyatakan variabel-variabel yang digunakan
di dalam macro. Kemudian diikuti keterangan mengenai nilai variable tersebut.
“Dim … As …”
Bilangan bulat: As Integer
Bilangan decimal: As Double
Contoh :
Dim a, b As Double
Dim i, Nmax As Integer

Setelah menyatakan variabel yang digunakan, anda perlu menuliskan macro yang
anda rancang. Contoh: Sub Bouduard(). Perlu diperhatikan nama macro tidak
diperbolehkan menggunakan spasi, namun dapat menggunakan “_”.
“Sub…()”
Setelah penulisan “Sub…()” anda perlu menuliskan sheet pada Excel yang
digunakan anda.
Contoh: anda menggunakan sheet 4 pada tampilan Excel. Anda menuliskan

Sub sepertiga_simpson()
Sheets(4).Activate
ITERASI

Pada perancangan macro seringkali kita memerlukan perhitungan secara berulang


(looping) atau ada yang disebut iterasi. Terdapat beberapa rangkaian yang dapat digunakan
sesuai kebutuhan, antara lain:
a. Do
(aksi yang ingin dilakukan)
Loop

Contoh:

Do
If i > Nmax Then Stop
p = (a + b) / 2
If f(a) * f(p) < 0 Then b = p
If f(a) * f(p) > 0 Then a = p
If Abs(f(p)) < tol Then Stop
i=i+1
Cells(8, 2).Value = p
Loop

b. For … To …
(aksi yang ingin dilakukan jika kondisi tertentu terpenuhi)
Next …
Contoh:

For i = 1 To n - 1
x=x+h
sigma = sigma + 2 * f(x)
t = (t + sigma) * h / 2
Cells(7, 2).Value = t
Next i
Perlu diperhatikan bahwa aksi yang dimaksud diatas harus memiliki batasan akhir
perintah tersebut harus dihentikan, contoh:
If i > Nmax Then Stop
If Abs(f(p)) < tol Then Stop

PENULISAN FUNGSI

Penulisan fungsi dalam macro dilakukan terlebih dahulu sebelum menuliskan “Sub
….()”. Contoh:

Function f(x)

f = x ^ 3 + 4 * x ^ 2 - 10

End Function

PENGGUNAAN “IF”

Penggunaan “if” memudahkan anda saat mengecek nilai dari suatu variabel telah
terpenuhi dengan suatu nilai batas yang anda tetapkan, atau membuat keputusan perlakuan
yang tepat pada suatu nilai (untuk opsi perlakuan >1). 1 “if” harus diakhiri dengan 1 “end
if”.

1. If …. Then …
End If
(untuk 1 opsi perlakuan)

2. If …. Then …
Else …
End If
(untuk opsi perlakuan >1)

Contoh:

If Abs(s) < tol Then Stop

If i Mod 2 = 1 Then

sigma = sigma + 4 * j(x)

Else: sigma = sigma + 2 * j(x)

End If

NOTASI “ ‘ “

Saat merancang macro anda dapat memberikan catatan-catatan singkat mengenai


penjelasan atau deskripsi mengenai macro anda. Dengan menggunakan “ „ “, anda dapat menulis
kalimat Bahasa Indonesia atau kalimat bahasa lain di luar bahasa macro dengan bebas tanpa
mempengaruhi macro anda sama sekali.
Contoh:

' variabel a adalah variabel untuk menunjukkan jumlah massa yang datang hearing
BAB V: PENYELESAIAN NUMERIK PERSAMAAN
DIFERENSIAL BIASA (PDB)
Penyelesaian PDB secara numerik adalah menghitung nilai fungsi di xi+n = xi+ n*h, dengan nilai

n = 0, 1, 2, 3, …, n. h adalah besar langkah (step) perhitungan dalam setiap iterasi. Nilai awal

(initial value) diperlukan untuk memulai proses iterasi.

Hal penting yang perlu diperhatikan:

PDB Orde Satu : y' = f(x,y) Bentuk Baku

dengan harga awal : y(x0) = y0

Untuk PDB orde satu yang tidak mengikuti bentuk baku, PDB tersebut harus diubah menjadi

bentuk baku, contoh:

Metode Numerik untuk penyelesaian PDB:

1. Metode Euler

2. Metode Heun Metode 1 langkah /

3. Metode Deret – Taylor Single Step Method

4. Metode Runge - Kutta

5. Metode Predictor – Corrector Multi Step Method


1. Metode Euler

Persamaan umum:

yi+1 = yi + h* f(xi, yi)

denganketerangan: h = xi+1 – xi

Metode Euler menggunakan hasil iterasi sebelumnya pada perhitungan iterasi

selanjutnya. Contoh: hasil perhitungan iterasi pertama, yi+1, digunakan untuk

perhitungan iterasi kedua, (yi+2).

Iterasi pertama : y1 = y0 + h* f(x0, y0)

Iterasi selanjutnya : y2 = y1 + h* f(x1 , y1)

2. Metode Heun

Solusi PDB dengan Metode Euler digunakan menjadi nilai perkiraan awal (predictor)

pada perhitungan dengan Metode Heun.

Persamaan umum:
Mencari dapat dilakukan perhitungan dengan Metode Euler

Metode Euler: yi+1 = yi + h* f(xi , yi)

Contoh :
3. Metode Runge Kutta

Metode Runge - Kutta yang terkenal dan banyak dipakai karena stabil dan teliti

adalah metode Runge – Kutta Orde Tiga dan Orde Empat. Dalam perhitungan

dibutuhkan nilai awal dan besar langkah yang ingin digunakan.Hasil iterasi

sebelumnya (contoh: yi+1) digunakan kembali untuk perhitungan iterasi selanjutnya

(yi+2), dan selanjutynya.

• Metode Runge – Kutta Orde Tiga berbentuk:

yi+1 = yi + 1/6 * (k1 + 4k2+k3)

k1 = h * f(xi , yi)

k2 = h * f(xi + 0.5h , yi + 0.5k1)

k3 = h * f(xi + h , yi – k1+2k2)

iterasi selanjutnya:

yi+2 = yi+1 + 1/6 * (k1 + 4k2 + k3)

k1 = h * f(xi+1 , yi+1)

k2 = h * f(xi+1 +0.5h , yi + 0.5k1)

k3 = h * f(xi+1 +h , yi – k1+2k2)
• Metode Runge – Kutta Orde Empat berbentuk:

yi+1 = yi + 1/6 * (k1 + 2k2 + 2k3+ k4)

k1 = h * f(xi , yi)

k2 = h * f(xi + 0.5h , yi + 0.5k1)

k3 = h * f(xi + 0.5h , yi + 0.5k2)

k4 = h * f(xi + h , yi + k3)

iterasi selanjutnya:

yi+2 = yi+1 + 1/6 * (k1 + 2k2 + 2k3+ k4)

k1 = h * f(xi+1 , yi+1)

k2 = h * f(xi+1 +0.5h , yi +0.5k1)

k3 = h * f(xi+1 +0.5h , yi +0.5k2)

k4 = h * f(xi+1 +h , yi+1 + k3)


Tugas 1 Praktikum :
Laju pertumbuhan penduduk di suatu daerah dapat dimodelkan dengan Logistic Model
dalam bentuk:

Dimana P adalah jumlah penduduk sutau saat di suatu daerah. Bila 𝑃max adalah jumlah
populasi maksimum yang dapat di tampung suatu daerah yang besarnya 80 juta
penduduk, k adalah konstanta pertumbuhan maksimum penduduk daerah itu pada
kondisi tentu yang besarnya 0.024/tahun, dan jumlah penduduk daerah itu tahun 2020
adalah 4,5 juta jiwa.

Tentukan :
a. Persamaan jumlah penduduk setiap saat
b. Jumlah penduduk daerah tersebut pada tahun 2021, 2022, 2023 dan 2024.
(Pemrogramman VBA dengan Metode Euler dan Heun)
BAB VI: PENYELESAIAN PERSAMAAN
DIFFERENSIAL PARSIAL DENGAN METODE BEDA
HINGGA (FINITE DIFFERENCE METHOD).

Contoh Soal 1 (UAS tahun lalu) :

Difusi zat kimia ke dalam dinding sebuah reactor dapat dituliskan dengan persamaan
deferensial parsial orde dua sebagai berikut:

𝑑𝑐 𝑑2𝑐 𝑑𝑐
=𝐷 − 𝑈 − 𝑘𝑐
𝑑𝑡 𝑑𝑥 2 𝑑𝑥

Dimana c adalah konsentrasi (mg/m3), t adalah waktu (menit), D adalah koefisien difusi
zat kimia yang nilainya 100 m3/menit, U adalah kecepatan difusi zat kimia yang nilainya
1 m/menit dan k adalah laju reaksi kimia yang besarnya 0,015 menit-1. Bila tebal dinding
reactor adalah 5 m dan konsentrasi di dalam tangka konstan sebesar 100 mg/m3, dan
mula-mula konsentrasi di dalam tangki adalah 0 mg/m3.
a. Tentukan persamaan untuk menghitung konsentrasi zat kimia sebagai fungsi
dari konsentrasi pada kedalaman tertentu pada dinding tangki dan juga waktu.
b. Tentukan konsentrasi zat kimia pada penampang melintang dinding tangki
setiap 1 m setelah 0,005 dan 0,01 menit (Δx = 1 m, dan pilih Δt=0,005 menit)

Jawab:
a. 𝑑𝑐 𝑐𝑖𝑡+1 − 𝑐𝑖𝑡 ….(1)
=
𝑑𝑡 ∆𝑡
𝑡
𝑑2 𝑐 𝑐𝑖+1 − 2𝑐𝑖𝑡 + 𝑐𝑖−1
𝑡
….(2)
=
𝑑𝑥 2 ∆𝑥 2
𝑡 𝑡
𝑑𝑐 𝑐𝑖+1 − 𝑐𝑖−1 ….(3)
=
𝑑𝑥 2∆𝑥
𝑐𝑖𝑡+1 − 𝑐𝑖𝑡 𝑡
𝑐𝑖+1 − 2𝑐𝑖𝑡 + 𝑐𝑖−1
𝑡
𝑐𝑡𝑖+1 − 2𝑐𝑡𝑖 + 𝑐𝑡𝑖−1 𝑡
=𝐷 −𝑈 − 𝑘𝑐𝑖
∆𝑡 ∆𝑥 2
∆𝑥2

b. Bisa pakai excel manual atau coding menggunakan VBA


KODE PROGRAM DALAM VBA
- Untuk command “calculate”
Dim D, U, k, delta_t, delta_x, x, t_akhir, n_1, n_2, y, z, w As Double
Dim t, i As Integer

Private Sub CommandButton2_Click()


D = Cells(6, 13)
U = Cells(7, 13)
k = Cells(8, 13)
delta_t = Cells(9, 13) 'selang temperatur tertentu bagaimana distribusi konsentrasi di
dinding
delta_x = Cells(10, 13) 'selang tebal dinding yang ingin dilihat konsentrasinya
x = Cells(11, 13) 'tebal dinding
t_akhir = Cells(12, 13) 'lama difusi

n_2 = (t_akhir / delta_t) + 2 'total baris, kenapa ditambah 2 karena ada saat t = 0 dan
tangki belum diisi serta saat t=0 tapi tangki sudah diisi
n_1 = (x / delta_x) + 2 'total kolom, kenapa ditambah 2 karena mempertimbangkan
untuk kolom t serta kolom C saat x=0

t=1
i=1
Do
y = n_2 'agar terdefinisi saat looping

Cells(2, 1) = "t"
Cells(2, 2) = "C_at_x0"
Cells(2, 3) = "C_at_x1"
Cells(2, 4) = "C_at_x2"
Cells(2, 5) = "C_at_x3"
Cells(2, 6) = "C_at_x4"
Cells(2, 7) = "C_at_x5"

Do
z = n_1 'agar terdefinisi saat looping
If i > z Then Stop

If t = 1 Then
Cells(y + 3 - t, i) = 0 'algoritma saat t=0 serta di dalam tangki belum ada
konsentrasi zat kimia tertentu
End If

If t >= 2 And i = 1 Then 'algoritma untuk menghitung dan menampilkan t tertentu


pada kolom 1
Cells(y + 3 - t, i) = 0 + (t - 2) * delta_t
End If

If t >= 2 And i = 2 Then 'algortima menampilkan konsentrasi konstan atau


konsentrasi pada saat x=0
Cells(y + 3 - t, i) = Cells(13, 13)
End If

If t >= 2 And i > 2 Then 'algortima menghitung konsentrasi pada t dan x tertentu,
w adalah konsentrasi pada t dan x tertentu
w = delta_t * ((D / delta_x ^ 2) * (Cells(y + 3 - t + 1, i + 1) - 2 * Cells(y + 3 - t +
1, i) + Cells(y + 3 - t + 1, i - 1)) - (U / (2 * delta_x)) * (Cells(y + 3 - t + 1, i + 1) -
Cells(y + 3 - t + 1, i - 1)) - (k * Cells(y + 3 - t + 1, i))) + Cells(y + 3 - t + 1, i)
Cells(y + 3 - t, i) = w

End If
i=i+1
Loop Until i = z + 1
i=1
t=t+1
Loop Until t = y + 1
End Sub
Tugas 2 Praktikum:
NIM GENAP
Difusi zat kimia ke dalam dinding sebuah reactor dapat dituliskan dengan persamaan
deferensial parsial orde dua sebagai berikut:

𝑑𝑐 𝑑2𝑐 𝑑𝑐
=𝐷 − 𝑈 − 𝑘𝑐
𝑑𝑡 𝑑𝑥 2 𝑑𝑥

Dimana c adalah konsentrasi (mg/m3), t adalah waktu (menit), D adalah koefisien difusi
zat kimia yang nilainya [2 ANGKA NIM TERAKHIR ANDA] m3/menit, U adalah
kecepatan difusi zat kimia yang nilainya 3 m/menit dan k adalah laju reaksi kimia yang
besarnya 0,015 menit-1. Bila tebal dinding reactor adalah 5 m dan konsentrasi di dalam
tangka konstan sebesar 200 mg/m3, dan mula-mula konsentrasi di dalam tangki adalah
0 mg/m3.
a. Tentukan persamaan untuk menghitung konsentrasi zat kimia sebagai fungsi dari
konsentrasi pada kedalaman tertentu pada dinding tangki dan juga waktu.
b. Tentukan konsentrasi zat kimia pada penampang melintang dinding tangki setiap
1 m dengan t akhir = 0,2 menit (Δx = 1 m, dan pilih Δt=0,005 menit)
Note: misal 12518001 maka D = 1 m3/menit
NIM GANJIL
Difusi zat kimia ke dalam dinding sebuah reactor dapat dituliskan dengan persamaan
deferensial parsial orde dua sebagai berikut:

𝑑𝑐 𝑑2𝑐 𝑑𝑐
=𝐷 − 𝑈 − 𝑘𝑐
𝑑𝑡 𝑑𝑥 2 𝑑𝑥

Dimana c adalah konsentrasi (mg/m3), t adalah waktu (menit), D adalah koefisien difusi
zat kimia yang nilainya [2 ANGKA NIM TERAKHIR ANDA] m3/menit, U adalah
kecepatan difusi zat kimia yang nilainya 3 m/menit dan k adalah laju reaksi kimia yang
besarnya 0,015 menit-1. Bila tebal dinding reactor adalah 10 m dan konsentrasi di dalam
tangka konstan sebesar 200 mg/m3, dan mula-mula konsentrasi di dalam tangki adalah
0 mg/m3.
a. Tentukan persamaan untuk menghitung konsentrasi zat kimia sebagai fungsi dari
konsentrasi pada kedalaman tertentu pada dinding tangki dan juga waktu.
b. Tentukan konsentrasi zat kimia pada penampang melintang dinding tangki setiap
2 m dengan t akhir = 0,2 menit (Δx =2 m, dan pilih Δt=0,005 menit)

Anda mungkin juga menyukai