Anda di halaman 1dari 49

MODUL PRAKTIKUM

ALGORITMA DAN KOMPUTASI NUMERIK

LABORATORIUM KOMPUTASI
PROGRAM STUDI FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS PADJADJARAN
2019
KATA PENGANTAR

Diktat ini disusun untuk pedoman dalam melaksanakan praktikum Algoritma dan
Komputasi Numerik di Program Studi Fisika FMIPA Universitas Padjadjaran, khususnya
untuk mahasiswa Fisika semester empat. Diktat ini terdiri dari duabelas modul yang terdiri dari
3 modul pengenalan matlab dan 8 modul metoda numerik, ditambah dengan satu modul untuk
proyek mandiri dimana proyek tersebut merupakan penerapan dari seluruh metode yang telah
dipelajari. Diharapkan dengan adanya diktat ini mahasiswa dapat mempelajari metode numerik
dengan baik.
Kami menyadari bahwa diktat ini masih jauh dari kata sempurna. Oleh karena itu, kami
mengharapkan kritik dan saran yang membangun untuk perbaikan diktat ini menjadi lebih baik.
Semoga diktat inidapat bermanfaat untuk perkembangan ilmu komputasi di Program Studi
Fisika.

Jatinangor, Februari 2019

Dr. Sahrul Hidayat


DAFTAR ISI

KATA PENGANTAR .......................................................................................................................... 2


DAFTAR ISI ........................................................................................................................................ 1
Modul 1. ............................................................................................................................................... 4
1.1. Tujuan .................................................................................................................................. 4
1.2. Percobaan ............................................................................................................................ 4
1.3. Tugas Pendahuluan........................................................................................................... 10
1.4. Tugas Akhir ....................................................................................................................... 10
Modul – 2. .......................................................................................................................................... 11
2.1. Tujuan ................................................................................................................................ 11
2.2. Percobaan .......................................................................................................................... 11
2.3. Tugas Pendahuluan........................................................................................................... 13
2.4. Tugas Akhir ....................................................................................................................... 13
Modul – 3 ........................................................................................................................................... 15
3.1. Tujuan ................................................................................................................................ 15
3.2. Percobaan .......................................................................................................................... 15
3.3. Tugas Pendahuluan........................................................................................................... 18
3.4. Tugas Akhir ....................................................................................................................... 18
Modul – 4 ........................................................................................................................................... 20
4.1. Tujuan ................................................................................................................................ 20
4.2. Teori ................................................................................................................................... 20
4.2.1. Metode Tertutup ....................................................................................................... 20
4.2.2. Metode Terbuka ........................................................................................................ 21
4.3. Percobaan .......................................................................................................................... 22
4.4. Tugas Pendahuluan........................................................................................................... 23
4.5. Tugas Akhir ....................................................................................................................... 23
Modul – 5 ........................................................................................................................................... 24
5.1. Tujuan ................................................................................................................................ 24
5.2. Teori ................................................................................................................................... 24
5.2.1. Metode Pangkat (Power Method) ............................................................................ 24
5.2.2. Metode Pangkat Inversi (Invers Power Method) .................................................... 26
5.2.3. Spektral Radius ......................................................................................................... 26

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 1


5.3. Percobaan .......................................................................................................................... 26
5.4. Tugas Pendahuluan........................................................................................................... 27
5.5. Tugas Akhir ....................................................................................................................... 27
Modul – 6 ........................................................................................................................................... 28
6.1. Tujuan ................................................................................................................................ 28
6.2. Teori ................................................................................................................................... 28
6.2.1. Metode Iterasi Jacobi ................................................................................................ 29
6.2.2. Metode Iterasi Gauss-Seidel ..................................................................................... 29
6.2.3. Successive Over Relaxation (SOR)........................................................................... 30
6.3. Percobaan .......................................................................................................................... 30
6.4. Tugas Pendahuluan........................................................................................................... 30
6.5. Tugas Akhir ....................................................................................................................... 31
Modul – 7 ........................................................................................................................................... 32
7.1. Tujuan ................................................................................................................................ 32
7.2. Teori ................................................................................................................................... 32
7.2.1. Interpolasi Polinomial dan Polinomial Taylor ........................................................ 33
7.2.2. Interpolasi Lagrange ................................................................................................. 33
7.3. Percobaan .......................................................................................................................... 34
7.4. Tugas Pendahuluan........................................................................................................... 34
7.5. Tugas Akhir ....................................................................................................................... 34
Modul – 8 ........................................................................................................................................... 35
8.1. Tujuan ................................................................................................................................ 35
8.2. Teori ................................................................................................................................... 35
8.3. Percobaan .......................................................................................................................... 36
8.4. Tugas Pendahuluan........................................................................................................... 37
8.5. Tugas Akhir ....................................................................................................................... 37
Modul – 9 ........................................................................................................................................... 38
9.1. Tujuan ................................................................................................................................ 38
9.2. Teori ................................................................................................................................... 38
9.2.1. Metode Trapesium .................................................................................................... 38
9.2.2. Metode Simpson ........................................................................................................ 38
9.3. Percobaan .......................................................................................................................... 39
9.4. Tugas Pendahuluan........................................................................................................... 39
9.5. Tugas Akhir ....................................................................................................................... 39

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 2


Modul – 10 ......................................................................................................................................... 41
10.1. Tujuan ............................................................................................................................ 41
10.2. Teori ............................................................................................................................... 41
10.3. Percobaan ...................................................................................................................... 42
10.4. Tugas Pendahuluan ....................................................................................................... 42
10.5. Tugas Akhir ................................................................................................................... 42
Modul – 11 ......................................................................................................................................... 43
11.1. Tujuan ............................................................................................................................ 43
11.2. Teori ............................................................................................................................... 43
11.2.1. Metode Forward Euler ............................................................................................. 43
11.2.2. Metode Runge-Kutta Orde Empat........................................................................... 44
11.3. Percobaan ...................................................................................................................... 44
11.4. Tugas Pendahuluan....................................................................................................... 45
11.5. Tugas Akhir ................................................................................................................... 45
Modul – 12 ......................................................................................................................................... 46
12.1. Tujuan ............................................................................................................................ 46
12.2. Percobaan ...................................................................................................................... 46
Daftar Pustaka ..................................................................................................................................... 47

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 3


Modul 1
Pengenalan Matlab
1.1. Tujuan

Dalam modul ini mahasiswa diharapkan mengetahui dan memahami konsep-konsep


dasar pemrograman dengan matlab yang diindikasikan dengan kemampuan membuat program
sederhana, mampu menggunakan statement input dan output, serta mampu membuat
visualisasi grafik dan animasi sederhana.

1.2. Percobaan

a. Pengenalan windows matlab


Ketika memulai menjalankan MATLAB, window utama akan terlihat seperti gambar berikut:

Keterangan :
o Current Folder – untuk mengakses file-file pada direktori saat ini.
o Command Window – untuk menuliskan perintah (sintak program).
o Workspace – untuk mengeksplorasi data yang dibuat atau diimport dari file lain.
o Command History – untuk melihat atau menjalankan kembali perintah yang pernah
dimasukkan sebelumnya pada command line.

Dalam melakukan pemrograman menggunakan bahasa MATLAB, Anda dapat menggunakan


beberapa cara sebagai berikut :

Menggunakan Command Window


Cara ini adalah yang paling sering dilakukan oleh pemula. Perintah akan dieksekusi secara
langsung baris perbaris. Untuk membuat program, Anda hanya perlu mengetikkan perintah
pada prompt MATLAB dalam Command Window

Contoh:

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 4


>> p = 10; Tekan tombol enter kemudian ketikkan :
>> l = 7; Tekan tombol enter kemudian ketikkan :
>> luas = p * l
Hasil akhir :
>> luas = 70
>>

Jika Anda mengakhiri perintah dengan tanda (;) titik koma, MATLAB akan melakukan
komputasi namun tidak menampilkan display output pada Command Window. Anda dapat
memanggil kembali perintah sebelumnya dengan menekan tombol up dan down-arrow (↑ dan
↓). Jika perhitungan menggunakan langkah-langkah yang cukup panjang, maka menggunakan
Command Window menjadi kurang efisien.

Menggunakan M-File
Tekan enter, selanjutnya akan muncul MATLAB editor. Disini Anda dapat mengetikkan
program yang akan dijalankan.

% MATLAB programming % by : (tuliskan nama anda)


clear all; clc;
disp(‘Selamat Pagi Fisika! Selamat belajar MATLAB’);
p = 10; l = 7; area = p * l;
disp([‘Luas area : ‘ num2str(area)]);

Langkah selanjutnya adalah menyimpan file tersebut, misalnya simpan dengan nama
latihan1.m. Untuk menjalankannya, buka kembali Command Window, kemudian ketikkan
nama file (tanpa ekstensi) sebagai berikut :

>> latihan1

Tekan enter. Program Anda selesai dijalankan

b. Sintak Dasar pada MATLAB


Seperti bahasa pemrograman lainnya, MATLAB juga memiliki sintak tersendiri. Pada
MATLAB hanya terdapat dua tipe data, yaitu numerik dan string. Tidak dibutuhkan
pendeklarasian secara eksplisit karena tipe data akan dikenali oleh MATLAB secara otomatis.
Namun demikian terdapat beberapa hal penting yang harus diperhatikan dalam penulisan
sintak:
• Penamaan variabel bersifat case sensitive.
• Penamaan variabel harus selalu diawali dengan huruf, tidak boleh dengan simbol atau
angka.
• Penamaan variabel dan M-File tidak boleh sama dengan nama-nama default yang
dikenal MATLAB.

Cara Penulisan Variabel


Data Numerik Tunggal:
x = 20;
Data Numerik Berdimensi Banyak (Array/Matrik):
x = [ 20 11; 20 13 ];

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 5


Data String:
x = ‘bonjour’;

Operasi dan Fungsi-Fungsi Matematika


Berikut ini adalah tabel operator matematika yang digunakan dalam pemrograman
MATLAB:
Operasi Simbol Contoh
Penjumlahan + X+Y
Pengurangan - X–Y
Perkalian * X*Y
Pembagian / atau \ X / Y atau X \ Y
Perpangkatan ^ X^Y

Selain itu MATLAB juga menyediakan fungsi-fungsi matematika, di antaranya:


Fungsi Keterangan
exp Eksponensial
log Logaritma natural
log10 Logaritma basis 10
log2 Logaritma basis 2
sqrt Akar pangkat
cos Kosinus
sin Sinus
tan Tangen

Input dan Output


Untuk meminta input dari user, MATLAB menyediakan fungsi input. Contoh sintak
penulisannya sebagai berikut:

rho = input('Masukkan nilai hambatan: ')


kalimat = input('Masukkan kata/kalimat: ','s')

Baris pertama digunakan jika input yang diharapkan berupa angka sedangkan baris kedua
digunakan jika input yang diharapkan berupa string.
Sedangkan untuk menampilkan output program ke layar, MATLAB menyediakan fungsi disp
dan fprintf. Sintak penulisannya sebagai berikut:

a=input ('masukkan panjang sisi bujur sangkar: ');


luas=a*a;
disp ('Luas persegi adalah: '); disp (luas)
Atau:
a=input ('masukkan panjang sisi bujur sangkar: ');
luas=a*a;
fprintf('Luas bujur sangkar adalah: %5.2f \n', luas)

Kontrol Aliran
a. Kondisional dengan (if … elseif … else … end)
Kondisional digunakan untuk mengontrol alur suatu program. Kondisional if-else sering
digunakan di dalam program. Cara penulisannya sebagai berikut:

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 6


if syarat1
perintah-perintah
elseif syarat2
perintah-perintah
else
perintah-perintah
end

Contoh 1:
a=input(Masukkan bilangan a: ');
if rem(a,2) == 0
disp('a adalah bilangan genap')
end

Contoh 2:
n=input('Masukkan nilai n: ');
if n < 0 % jika n negatif
disp('Masukan harus bilangan positif');
elseif rem(n,2) == 0 % jika n posisif dan bulat
A = n/2;
fprintf('A= %3.0f \n', A);
else
A = (n+1)/2; % jika n positif dan ganjil
fprintf('A= %3.0f \n', A);
end

b. Perulangan dengan (for … end)


Sintak ini digunakan untuk melakukan pengulangan proses yang telah diketahui banyaknya
perulangan yang harus dijalankan. Cara penulisannya sebagai berikut:
for variabel = mulai: interval: akhir
perintah-perintah
end

Contoh :
N=5; for i=1:N
fprintf ('%i. Saya mahasiswa Fisika \n',i);
end

c. Perulangan dengan (while … end)


Sintak ini digunakan untuk melakukan pengulangan proses yang tidak diketahui banyaknya
perulangan yang harus dijalankan. Yang diketahui hanyalah syarat atau kondisi kapan
program akan tetap dijalankan. Cara penulisannya sebagai berikut:

while syarat
perintah-perintah
end

Cara penulisan syarat, menggunakan ekspresi matematika yang meliputi :


== sama dengan
~= tidak sama dengan

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 7


> lebih besar dari
>= lebih besar atau sama dengan
< lebih kecil dari
<= lebih kecil atau sama dengan

Sedangkan untuk mengkombinasikan menggunakan operator logika berikut ini :


& and
| or
Contoh :
%Program mencetak deret bilangan
i=1;
while(i<=6)
x=1;
while(x<=i)
fprintf('%i',x);
x=x+1;
end
fprintf('\n');
i=i+1;
end

d. Kondisional dengan (switch … case … otherwise … end)


Penulisan sintak switch-case sebagai berikut :
switch variabel
case nilai1
perintah-perintah
case nilai2
perintah-perintah
.
.
.
otherwise
perintah-perintah
end
Contoh :
fprintf('Pilih salah satu program..\n');
fprintf('1: menghitung luas bujur sangkar: \n ');
fprintf('2: menghitung luas persegi panjang: \n ');
fprintf('3: menghitung luas persegi panjang: \n ');
fprintf('4: menghitung luas persegi panjang: \n ');
no=input('Anda ingin menghitung luas 1,2,3 atau 4 \n');
switch no
case 1
a=input('masukkan panjang sisi bujur sangkar:');
luas=a*a;
fprintf('Luas bujur sangkar adalah %5.2f \n',luas);
case {2,3,4}
a=input('masukkan panjang persegi panjang: ');
b=input('masukkan lebar persegi panjang: ');
luas=a*b;

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 8


fprintf('Luas persegi panjang adalah %5.2f',luas);
otherwise
fprintf('Ulangi pilihan yang ada...!!')
end

e. Pernyataan continue
Pernyataan continue berfungsi melewatkan kendali ke iterasi berikutnya di dalam perulangan
for maupun while.
N=20;
for i=1:N
if (i<5)
continue;
end
fprintf('%i. Saya mahasiswa Fisika \n',i);
end

f. Pernyataan break
Pernyataan break berfungsi untuk menghentikan eksekusi loop for maupun loop while.
N=20;
for i=1:N
if (i>5)
break;
end
fprintf('%i. Saya mahasiswa Fisika \n',i);
end

g. Interaksi dengan File MAT


File dengan ekstensi MAT adalah file biner yang hanya dapat dibuka oleh MATLAB. Jenis file
MAT dapat menyimpan informasi data berupa variabel beserta nilai-nilainya tanpa merepotkan
Anda untuk mengatur format datanya. Satu file MAT dapat menyimpan beberapa variabel
sekaligus beserta nilainya. Berikut ini adalah sintak untuk menggunakan fungsi save:
save [nama_file] var1 var2;
Nama_file diisi dengan nama file yang akan kita simpan, diketikkan tanpa ekstensi. File
tersebut akan otomatis berekstensi MAT dan menyimpan data nilai-nilai var1 dan var2.
Contoh:
clear all; clc;
X = rand(20,20);
Y = rand(10,10);
save datarandom X Y;
disp('Data telah disimpan!');
Setelah script tersebut dijalankan maka pada directori aktif saat ini akan ada file baru dengan
nama datarandom.mat. Untuk mengambil kembali data yang telah disimpan tadi, gunakan
fungsi load dengan sintak sebagai berikut:
load datarandom.mat
disp(X)

h. Interaksi dengan File Teks


Untuk menyimpan dalam format teks ascii menggunakan sintak sebagai berikut :
save nama_file variabel –ascii
Contoh:

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 9


disp('Program save file txt');
A = input('masukkan nama depan : ','s');
B = input('masukkan nama belakang : ','s');
save namadepan.txt A -ascii;
save namabelakang.txt B -ascii;
disp('Data telah disimpan!');
Untuk memanggil dan membaca file script nya sama seperti membaca file mat.

i. Interaksi dengan Ms. Excel


Anda dapat membaca sebuah file Ms. Excel dari MATLAB dengan cara sebagai berikut:
num = xlsread(filename)
Sintak tersebut bertujuan untuk membaca data dari worksheet pertama pada file Ms. Excel
dengan nama sesuai dengan filename dan mengembalikan data numerik yang akan disimpan
pada array num. Apabila yang akan dibaca adalah worksheet tertentu maka sintaknya sebagai
berikut:
num = xlsread(filename,sheet)
Untuk menuliskan data pada sebuah file Ms. Excel menggunakan cara sebagai berikut:
xlswrite('filename',A)
Sintak tersebut bertujuan untuk menuliskan array A ke dalam worksheet pertama pada file
Excel, dimulai pada cell A1. Apabila akan dituliskan bukan pada worksheet pertama maka
menggunakan sintak sebagai berikut :
xlswrite('filename',A,sheet)
Contoh:
d = {'waktu', 'suhu'; 1 23; 2 25; 3 27};
xlswrite('contoh.xls',d);
Untuk membaca file Excel yang telah anda simpan, ketikan perintah berikut:
A = xlsread('contoh.xls')
Jika muncul error, perhatikan direktori tempat anda menyimpan file, pastikan di direktori
Document.

1.3. Tugas Pendahuluan


1. Pelajari program yang dituliskan pada Modul 1 dan cobalah jalankan setiap contoh
tersebut.
2. Buatlah Algoritma (flow chart) dari Tugas membuat program pada Tugas Akhir di
bawah
1.4. Tugas Akhir
1. Buatlah script matlab yang meminta inputan dari user untuk menghitung luas dan
volume dari bangun ruang (Balok, Tabung dan kerucut). Contoh tampilan: Pilihan
bangun ruang :
1. Balok 2. Tabung 3. Kerucut
(jika 1) Masukkan Panjang, lebar dan tinggi Balok:
2. Buatlah program untuk menampilkan solusi dari persamaan kuadrat (ax2 + bx + c)
dengan meng-inputkan koefisien a, b dan c. Solusi terdiri dari 3 kemungkinan: akar
kembar, akar berbeda dan solusi komplek.
3. Buatlah algoritma dan program untuk menampilkan Tabel perkalian dari 1 sampai 100
dengan menggunakan perulangan.

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 10


Modul – 2
Array dan Matrik

2.1. Tujuan
Dalam modul ini mahasiswa diharapkan dapat mengoperasikan array dalam berbagai
macam pengolahan data matriks.

2.2. Percobaan
Untuk memasukkan matrik pada MATLAB, ada beberapa cara yang dapat dilakukan :
• Memasukkan secara langsung dengan menuliskan semua elemennya.
• Meng-load matrik dari file eksternal
• Meng-generate matrik menggunakan fungsi-fungsi built-in
• Membuat matrik dengan fungsi yang Anda buat sendiri dan disimpan dalam file
Untuk membuat array dengan empat elemen pada satu baris, setiap elemen harus dipisahkan
dengan koma (,) atau spasi. Contohnya sebagai berikut :
A = [1 2 3 4]
Untuk membuat matrik yang memiliki beberapa baris, maka setiap barisnya harus dipisahkan
dengan tanda titik koma (;). Contohnya sebagai berikut :
A = [1 2 3; 4 5 6; 7 8 10]
Selain itu MATLAB juga menyediakan empat buah fungsi untuk membuat matrik :
• zeros : semua elemennya bernilai nol.
• ones : semua elemennya bernilai satu.
• rand : elemen-elemennya bernilai random dengan distribusi uniform.
• randn : elemen-elemennya bernilai random dengan distribusi normal.
Sebagai contoh perintah untuk menampilkan matrik berukuran 5x1 dengan elemennya semua
bernilai nol :
Z = zeros(5,1)
Sedangkan contoh untuk menampilkan matrik berukuran 3x3 dengan elemen-elemennya
dibangkitkan secara random :
R = rand(3,3)

a. Operasi-Operasi pada Array dan Matrik


MATLAB memungkinkan pemrosesan semua nilai pada sebuah matrik menggunakan sebuah
operator matematika atau fungsi tunggal.
A = [1 2 3; 4 5 6; 7 8 10];
A + 10
Untuk melakukan transpose pada sebuah matrik, gunakan tanda petik atas (‘) :
A’
Untuk melakukan perkalian pada matrik, gunakan operator (*). Sebagai contoh, sebuah matrik
apabila dikalikan dengan hasil inversnya maka akan menghasilkan matrik identitas :
P = A * inv(A)
Untuk melakukan perkalian elemen by elemen pada matrik (bukan perkalian matrik), gunakan
operator (.*) :
P = A .* A
Berikut ini daftar operator pada array :

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 11


Operator Deskripsi
+ Penambahan
- Pengurangan
.* Perkalian per elemen
./ Pembagian per elemen
.\ Pembagian kiri per elemen
.^ Perpangkatan per elemen

Operasi pada array sangat bermanfaat untuk pembentukan tabel. Misal diberikan n sebuah
vector kolom sebagai berikut :
n = (0:9) ';
kemudian fungsi berikut ini akan membuat sebuah table yang berisi bilangan kuadrat dan
perpangkatan dari 2 :
B = [n n.^2 2.^n]
Selain operasi-operasi yang telah dijelaskan di atas, MATLAB memiliki beberapa fungsi yang
sering digunakan untuk operasi pada matrik, di antaranya :

Fungsi Deskripsi
diag Untuk mengambil elemen diagonal pada sebuah matrik
inv Untuk melakukan operasi inverse pada matrik
size Untuk mengetahui dimensi sebuah matrik
sort Untuk melakukan pengurutan pada matrik

Untuk mengetahui lebih detail cara penggunaan dari masing-masing fungsi tersebut, pada
Command Window ketikkan :
help nama_fungsi

b. Konkatenasi
Konkatenasi merupakan proses penggabungan dua buah array sehingga diperoleh sebuah array
dengan ukuran yang lebih besar. Tanda [ ] merupakan operator untuk konkatenasi.
A = [1 2 3; 4 5 6; 7 8 10];
B = [A, A]
Operasi di atas disebut dengan konkatenasi horizontal dan dapat dilakukan apabila banyaknya
baris kedua array sama. Selain itu, apabila banyaknya kolom pada dua buah array sama maka
dapat dilakukan operasi konkatenasi vertikal sebagai berikut :
B = [A; A]

c. Indeks pada Array


Setiap variabel pada MATLAB merupakan sebuah array yang dapat terdiri atas beberapa
bilangan. Jika Anda ingin mengakses sebuah elemen pada array, maka harus menggunakan
indeks. Sebagai contoh, diberikan matrik magic square 4x4 sebagai berikut :
A = magic(4)
Terdapat dua buah cara untuk mengakses suatu elemen tertentu pada sebuah array. Cara paling
umum adalah dengan menyebutkan baris dan juga kolomnya seperti contoh berikut :
A(3,4)
Cara kedua adalah dengan melakukan iterasi ke bawah pada setiap kolom secara berurutan :
A(15)
Anda juga dapat menambahkan satu elemen baru pada matrik di luar ukuran dimensi saat ini.
Secara otomatis ukuran matrik akan bertambah sehingga dapat menampung elemen tersebut.

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 12


A(4,5) = 17
Untuk mengakses beberapa elemen pada array, gunakan operator (:) yang memungkinkan
Anda untuk menspesifikasikan rentang dalam format start:end. Sebagai contoh, berikut ini akan
ditampilkan tiga elemen pertama pada kolom ke-2 matrik A :
A(1:3,2)
Jika tidak dituliskan nilai awal maupun nilai akhir, maka penggunaan tanda (:) akan
menspesifikasikan semua elemen pada baris atau kolom yang dimaksud. Sebagai contoh,
berikut ini akan ditampilkan semua elemen pada baris ke-3 matrik
A : A(3,:)

d. Menghapus Baris dan Kolom


Anda dapat menghapus baris atau kolom dari sebuah matrik dengan menggunakan sepasang
tanda kurung siku ([]). Misalkan terdapat matrik X sebagai berikut :
X = magic(4);
Kemudian akan dihapus kolom kedua dari matrik X, menggunakan :
X(:,2) = []
Untuk menghapus baris pertama dari matrik X, menggunakan :
X(1,:) = []
Jika yang ingin dihapus hanya satu buah elemen saja, maka hasilnya bukan lagi sebuah matrik,
sehingga ekspresi seperti berikut ini :
X(1,2) = []
akan menghasilkan error.

2.3. Tugas Pendahuluan


1. Pelajari program yang dituliskan pada Modul 2 dan cobalah jalankan setiap contoh
tersebut.
2. Pelajari dan jelaskan fungsi dari beberapa script matlab berikut:
pascal, round, ceil, fix, floor, eye, eig, repmat

2.4. Tugas Akhir


1. Buat program untuk menginput angka sebanyak N, dimana N ditentukan oleh inputan
user. Output program adalah bilangan maksimum, minimum dan rata-rata dari angka-
angka tersebut. (Gunakan array untuk menyimpan data angka-angka tersebut)
Contoh:
input N: 4
angka[1]: 3
angka[2]: 11
angka[3]: 8
angka[4]: -5
Nilai maksimum= 11
Nilai minimum=-5
Rata-rata= 4.25

2. Buatlah program untuk menyimpan inputan berupa N buah bilangan integer ke dalam
array, kemudian dari bilangan-bilangan yang disimpan tersebut dapat ditampilkan
bilangan-bilangan yang habis dibagi 4, bilangan ganjil, bilangan genap dan bilangan
prima.
Contoh:
input: 1 1 2 2 8 6 3 4 2 18 16 7 4

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 13


output bilangan yang habis dibagi 4: 8 4 16 4
output bilangan ganjil: 1 1 3 7
output bilangan genap: 2 2 8 6 4 2 18 16 4
output bilangan prima: 3 7

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 14


Modul – 3
Visualisasi Data

3.1. Tujuan
Mahasiswa diharapkan mampu menampilkan data dalam bentuk grafik dengan beragam
jenis tampilan 1D, 2D dan 3D.
3.2. Percobaan
Terdapat beberapa bentuk dari fungsi plot, tergantung pada argumen inputnya.
• Jika y adalah sebuah vector, maka sintak plot(y) akan menghasilkan sebuah grafik
linear dengan sumbu x merupakan nilai index dari elemen y, sedangkan sumbu y
merupakan nilai y itu sendiri.
• Jika terdapat dua vector sebagai argumennya, maka sintak plot(x,y) akan
menghasilkan grafik y versus x.
Sebagai contoh, sebuah vektor x bernilai antara 0 sampai dengan 2, hitung nilai sinusnya,
kemudian plot hasilnya :
x = 0: 0.01: 2*pi;
y = sin(x);
plot(x,y)
Tambahkan label axis dan judul grafik :
xlabel('x = 0 s.d 2\pi')
ylabel('sinus dari x')
title('Plot grafik sinus','FontSize',12)
Karakter \pi digunakan untuk membuat simbol π dan properti FontSize digunakan untuk
memperbesar ukuran text yang digunakan untuk judul. Hasilnya sebagai berikut :

a. Membuat Plot Multiple Dataset pada Satu Gambar


Beberapa pasangan argumen x-y akan menghasilkan beberapa grafik dengan menggunakan
sekali pemanggilan fungsi plot. MATLAB akan menggunakan warna yang berbeda untuk
masing-masing garis. Sebagai contoh, perintah berikut ini akan melakukan plot terhadap tiga
buah fungsi yang berbeda :
x = 0:pi/100:2*pi;
y = sin(x);
y2 = sin(x-.25);
y3 = sin(x-.5);
plot(x,y,x,y2,x,y3)
legend('sin(x)','sin(x-.25)','sin(x-.5)')

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 15


Tampilannya adalah sebagai berikut:

b. Mengubah Bentuk dan Warna Garis


Anda dapat mengubah warna, bentuk garis, dan juga marker (seperti tanda plus dan
lingkaran) ketika Anda melakukan plot data menggunakan perintah berikut ini :
plot(x,y,'color_style_marker')
color_style_marker merupakan sebuah string yang terdiri atas satu sampai empat buah
karakter yang merepresentasikan warna, bentuk garis, dan tipe marker. Sebagai contoh :
plot(x,y,'r:+')
Perintah di atas akan melakukan plot data menggunakan dotted line berwarna merah dan
menempatkan sebuah marker + pada setiap titik data. Berikut ini tabel simbol yang dapat
digunakan:

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 16


c. Menampilkan Beberapa Plot dalam Satu Figure
Perintah subplot memungkinkan Anda untuk menampilkan beberapa plot pada sebuah
window yang sama. Perintah berikut ini,
subplot(m,n,p)
akan membagi figure window ke dalam matrik subplot berukuran mxn dan memilih subplot
ke-p untuk plot saat ini. Penomoran plot dimulai dari baris pertama pada figure window,
kemudian baris kedua, dst. Sebagai contoh, perintah berikut ini akan melakukan plot data ke
dalam empat buah bagian subregion pada figure window:
t = 0:pi/10:2*pi;
[X,Y,Z] = cylinder(4*cos(t));
subplot(2,2,1); mesh(X)
subplot(2,2,2); mesh(Y)
subplot(2,2,3); mesh(Z)
subplot(2,2,4); mesh(X,Y,Z)

d. Visualisasi Data 2D dengan Fungsi Bar


Fungsi bar digunakan untuk menampilkan data dalam grafik batang. Sintak penulisannya
sebagai berikut :
bar(x,y);
Contoh:
sudut = [0:5:180];
y = cos(sudut*pi/180);
bar(sudut,y)
title('Grafik Cosinus');
xlabel('Sudut dalam derajat');
ylabel('Nilai cosinus');

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 17


e. Visualisasi Data 3D
Plot tiga dimensi biasanya digunakan untuk menampilkan suatu permukaaan yang
didefinisikan oleh fungsi dengan dua buah variabel, z = f(x,y). Untuk memperoleh z, pertama-
tama buatlah sekumpulan titik (x,y) pada domain fungsi menggunakan meshgrid.
[X,Y] = meshgrid(-2:.2:2);
Z = X .* exp(-X.^2 - Y.^2);
Kemudian buat plot permukaannya.
surf(X,Y,Z)
Selain surf, dapat juga menggunakan fungsi mesh untuk menampilkan data dalam bentuk
permukaan 3D. Cirinya berupa grid-grid yang menghubungkan 4 titik terdekat dalam ruang
3D. Sintak penulisannya sebagai berikut :
mesh(Z)
Dapat juga menggunakan pcolor untuk menampilkan data 3D dalam bentuk permukaan 2D
(tampak atas). Cirinya berupa grid berwarna yang menunjukkan bobot nilai tertentu. Sintak
penulisannya sebagai berikut :
pcolor(Z)
Fungsi contourf digunakan untuk membuat garis kontur dari data 3D. Garis-garis kontur ini
dibuat dengan teknik interpolasi dari titik-titik terdekat dan pada setiap level kontur diberikan
warna sesuai bobot garis konturnya. Sintak penulisannya sebagai berikut :
obj_handle = contourf(Z)
clabel(obj_handle)
obj_handle adalah object handle yang dibutuhkan untuk menampilkan label pada garis kontur.
Hasilnya sebagai berikut :

3.3. Tugas Pendahuluan


1. Pelajari contoh-contoh pada latihan di atas
2. Pelajari dan cobalah fungsi marker untuk menghasilkan plot grafik dengan beragam
variasi warna dan style (seperti di tuliskan di table di atas).
3.4. Tugas Akhir
Berikut ini adalah data nilai matakuliah pemrograman dari sekelompok mahasiswa :

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 18


No mhs Kuis UTS UAS
1 81 65 86
2 90 75 78
3 91 93 79
4 63 67 54
5 50 75 48
6 27 74 44
7 54 39 64
8 95 65 70
9 96 71 75
10 15 70 27
11 97 75 67
12 95 72 65
13 48 46 32
14 80 97 88
15 14 28 49
16 42 69 59
17 91 85 68
18 79 95 58
19 95 68 66
20 80 76 86
Salinlah data tersebut ke dalam file excel, kemudian bacalah file excel tersebut
menggunakan MATLAB. Hitunglah nilai akhir tiap mahasiswa dengan rumus sebagai
berikut :
Nilai akhir = 40% x UTS + 40% x UAS + 20% x Kuis
a. Plot grafik nilai mahasiswa, sumbu Y terdiri dari nilai kuis, UTS dan UAS,
sedangkan sumbu X menyatakan no. mahasiswa
b. Laporkan nilai akhir mahasiswa dalam bentuk grafik batang, sumbu x menyatakan
no. mahasiswa dan sumbu y menyatakan nilai akhir dari mahasiswa

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 19


Modul – 4
Solusi Persamaan Non-linier

4.1. Tujuan

Mahasiswa diharapkan mampu menemukan solusi persamaan non-linier menggunakan


metode terbuka dan tertutup, mengetahui bagaimana menentukan laju konvergensi setiap
metode, serta mengetahui perbedaan dan cara penggunaan setiap metode.

4.2. Teori

Persamaan non-linier banyak digunakan dalam bidang teknik maupun sains. Secara
umum, semua persamaan pada permasalahan dalam bentuk ini akan diubah menjadi bentuk
𝑓 (𝑥 ) = 0, dengan f yang merupakan bentuk fungsi non-linier dari variabel x. Contoh dari
bentuk fungsi non-linier adalah :

a. 𝑦 = 𝑓 (𝑥 ) = 𝑥 2 + 2𝑥 3 + 2 = 0
20.98
b. 𝑦 = 𝑓 (𝑥 ) = =0
𝑥

Bentuk umum dari 𝑓 (𝑥 ) = 0 merupakan persamaan dengan variabel tunggal yaitu 𝑥.


Akan tetapi, persamaan non-linier juga dapat terdiri dari variabel ganda (multivariabel) atau
lebih dari satu variabel. Nilai dari x pada persamaan 𝑓 (𝑥 ) = 0 merupakan penyelesaian dari
persamaan tersebut yang kemudian disebut sebagai akar persamaan. Sebagai contoh, bentuk
persamaan kuadrat 𝑓 (𝑥 ) = 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 = 0 mempunyai akar-akar persamaan dengan
bentuk penyelesaian secara analitis dengan menggunakan Persamaan 2.1

−𝑏 ± √𝑏2 − 4𝑎𝑐
𝑥1,2 = (2.1)
2𝑎

Metode penyelesaian akar-akar persamaan secara komputasi numerik dapat dibedakan


menjadi dua macam, yaitu metode tertutup dan metode terbuka. Setiap metode memiliki
karakteristik penggunaan masing-masing serta memiliki kelebihan tersendiri.

4.2.1. Metode Tertutup

Salah satu jenis dari metode tertutup adalah metode bisection. Tahap pertama metode
bisection adalah menetapkan nilai sembarang a dan b sebagai batas segmen nilai fungsi yang

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 20


dicari. Batasan a dan b memberikan harga bagi fungsi 𝑓 (𝑥 ) untuk 𝑥 = 𝑎 dan 𝑥 = 𝑏. Langkah
selanjutnya adalah memeriksa apakah 𝑓 (𝑎) × 𝑓 (𝑏) < 0. Apabila terpenuhi syarat tersebut,
berarti terdapat akar fungsi dalam segmen tinjauan.

𝑎+𝑏
Dengan rumusan 𝑚 = , diperiksa apakah nilai mutlak 𝑓 (𝑚) < 10−6 (batas
2

simpangan kesalahan). Jika benar, nilai 𝑥 = 𝑚 adalah solusi yang dicari. Jika tidak, ditetapkan
batasan baru dengan mengganti nilai 𝑏 = 𝑚 apabila 𝑓(𝑎) × 𝑓 (𝑚) < 0, dan mengganti 𝑎 =
𝑚 bila 𝑓(𝑎) × 𝑓 (𝑚) > 0. Begitu seterusnya hingga kondisi 𝑓 (𝑚) < 10−6 terpenuhi.

Dalam proses perulangan, khususnya menentukan nilai 𝑓 (𝑥 ) ≈ 0, suatu kriteria untuk


menghentikan proses tersebut akan diperlukan. Kriteria tersebut antara lain :

1. Jumlah iterasi maksimum.


2. Tingkat kesalahan maksimum atau nilai 𝑓(𝑥) minimum.

4.2.2. Metode Terbuka

a. Metode Iterasi Titik Tetap

Metode ini menawarkan pencarian akar-akar persamaan dari persamaan non-linier


dengan metode iterasi. Tahap pertama metode ini adalah menyusun persamaan 𝑓 (𝑥 ) = 0
menjadi bentuk 𝑥 = 𝑔(𝑥). Lalu, bentuklah menjadi prosedur iterasi 𝑥𝑟+1 = 𝑔(𝑥𝑟 ) dan tebaklah
sebuah nilai awal 𝑥0 , lalu hitung nilai 𝑥1 , 𝑥2 , 𝑥3 , …, yang akan konvergen ke akar sejati 𝑠
sehingga 𝑓 (𝑠) = 0 dan 𝑠 = 𝑔(𝑠) atau diperoleh hasil yang divergen. Kondisi berhentinya
iterasi dinyatakan bila memenuhi Persamaan 2.2 atau Persamaan 2.3 jika menggunakan
perumusan kesalahan relatif.

|𝑥𝑟+1 − 𝑥𝑟 | < 𝜖 (2.2)

𝑥𝑟+1 − 𝑥𝑟
| |<𝜖 (2.3)
𝑥𝑟+1

Sebagai contoh, untuk mendapatkan akar persamaan 𝑥 3 − 3𝑥 − 20 = 0, langkah


pertama yang dilakukan adalah mengubah persamaan dalam bentuk 𝑥 = 𝑔(𝑥). Perubahan ini
dapat dilakukan melalui empat cara :

1. 𝑥 = (3𝑥 + 20)1/3
2. 𝑥 = (𝑥 3 − 20)/3

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 21


3. 𝑥 = 20/(𝑥 2 − 3)
20 1/2
4. 𝑥 = (3 + )
𝑥

Semua persamaan di atas harus diuji secara numerik yang akan menghasilkan solusi yang
sama dengan persamaan 𝑥 3 − 3𝑥 − 20 = 0.

b. Metode Newton-Raphson

Salah satucara untuk menentukan akar persamaan non-linier adalah dengan


menggunakan metode Newton-Raphson yang dasarnya menggunakan uraian deret Taylor.
Pada mulanya, nilai awal 𝑥𝑖 akan diperkirakan, kemudian titik tersebut dipotongkan dengan
kurva dari persamaan non-linier yang diketahui. Selanjutnya garis singgung ditarik dari titik
tersebut sehingga memotong sumbu x di titik 𝑥𝑖+1 . Garis singgung tersebut pada dasarnya
merupakan tangen atau slope pada titik yang ditentukan sebelumnya. Slope merupakan turunan
pertama dari 𝑓(𝑥𝑖 ) sehingga hubungan yang didapatkan adalah

𝑓 (𝑥𝑖 )
𝑓 ′ (𝑥 ) = (2.4)
(𝑥𝑖 − 𝑥𝑖+1 )

Apabila Persamaan 2.4 diatur kembali, akan menghasilkan Persamaan 2.5 yang disebut
dengan persamaan Newton-Raphson.

𝑓 (𝑥𝑖 )
𝑥𝑖+1 = 𝑥𝑖 − (2.5)
𝑓 ′(𝑥𝑖 )

4.3. Percobaan

Buatlah program dengan menggunakan bahasa matlab untuk menentukan solusi dari
persamaan non-linier berikut menggunakan metode Bisection, iterasi titik tetap, dan Newton-
Raphson :

a. 𝑥 2 − 3𝑥 − 10 = 0 untuk−1 ≤ 𝑥 ≤ 1
𝜋 𝜋
b. sin(𝑥 ) = 0 untuk− 4 ≤ 𝑥 ≤ 2

c. 𝑥 3 − 3𝑥 − 20 = 0 untuk 1 ≤ 𝑥 ≤ 4
d. 𝑒 −2𝑥 − 4𝑥 untuk 0 ≤ 𝑥 ≤ 1
e. 𝑥𝑒 −𝑥 + cos(2𝑥 )untuk0 ≤ 𝑥 ≤ 1 dan 1 ≤ 𝑥 ≤ 2 dan−1 ≤ 𝑥 ≤ 1

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 22


4.4. Tugas Pendahuluan

Hitunglah berapa iterasi yang diperlukan untuk mencapai konvergensi dalam mencari
solusi persamaan 𝑥 2 − 3𝑥 − 10 = 0 menggunakan metode Bisection dengan tingkat
kesalahan yang diperbolehkan bernilai 10−3 serta nilai 𝑎 = 1 dan 𝑏 = 3,5. Bandingkan
dengan hasil yang didapat jika dikerjakan secara analitik menggunakan Persamaan 2.1.

4.5. Tugas Akhir

1. Buatlah program dengan menggunakan bahasa matlab untuk menentukan solusi dari
persamaan non-linier pada bagian Percobaan menggunakan metode Secant dan Regula
Falsi.
2. Buatlah tabel perbandingan untuk metode Bisection, iterasi titik tetap, Newton-
Raphson, Secant, dan Regula Falsi dalam menentukan solusi persamaan 𝑒 −2𝑥 − 4𝑥 =
0 dengan parameter yang sama (error, toleransi, batas/tebakan awal, dan hasilnya
apakah konvergen/divergen) untuk setiap metode. Sertakan pula jumlah
langkah/jumlah iterasi yang terjadi saat melakukan proses perhitungan. Kemudian
buatlah analisa berdasarkan tabel tersebut.

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 23


Modul – 5
Nilai dan Vektor Eigen

5.1. Tujuan

Mahasiswa diharapkan mampu menghitung nilai dan vektor eigen dari suatu matriks
bujursangkar menggunakan metode pangkat (Power Method) dan metode pangkat inversi
(Invers Power Method).

5.2. Teori

Nilai eigen atau nilai karakteristik dan vektor eigen atau vektor karakteristik yang sesuai
dari suatu matriks 𝑁 × 𝑁yaitu A didefinisikan sebagai nilai skalar 𝜆 dan vektor 𝒗yang bukan
nol dan memenuhi Persamaan 3.1

𝐴𝑣 = 𝜆𝑣 ↔ (𝐴 − 𝜆𝐼 )𝑣 = 0 (𝑣 ≠ 0) (3.1)

dengan(𝜆, 𝒗) disebut sebagai pasangan eigen danada sejumlah N pasangan eigen dari matriks
𝑁 × 𝑁. Bagaimana cara menentukan nilai eigen? Ada beberapa hal yang perlu diperhatikan,
yaitu :

a. Agar Persamaan 3.1 berlaku untuk matriks bukan nol 𝒗, matriks [𝐴 − 𝜆𝐼] harus bersifat
singular. Artinya, nilai determinan dari matriks [𝐴 − 𝜆𝐼]harus bernilai 0.
b. Determinan dari matriks [𝐴 − 𝜆𝐼] merupakan deret polynomial derajat N dalam bentuk
𝜆.

Hal yang pertama kali harus dilakukan untuk menghitung nilai eigen 𝜆𝑖 adalah
menemukan solusi dari persamaan karakteristik seperti pada Persamaan 3.2.

|𝐴 − 𝜆𝐼 | = 𝜆𝑁 + 𝑎𝑁−1 𝜆𝑁−1 + ⋯ + 𝑎1 𝜆 + 𝑎0 = 0 (3.2)

Lalu substitusikan nilai𝜆𝑖 , satu per satu, kedalam Persamaan 3.1 untuk menentukan vektor
eigen 𝒗𝒊 .

5.2.1. Metode Pangkat (Power Method)

Secara teoritis, metode pangkat dapat dijelaskan sebagai berikut :

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 24


• Untuk matriks persegi A yang berukuran 𝑁 × 𝑁 mempunyai nilai eigen 𝜆1 , 𝜆2 , …,
𝜆𝑁 dimana |𝜆1 | > |𝜆2 | > ⋯ > |𝜆𝑁 | dengan N vektor eigen bebas 𝒗1 , 𝒗2 , …, 𝒗𝑁 ,
maka ada suatu vektor 𝒗 yang dapat dituliskan sebagai penjumlahan dari vektor-
vektor eigen tersebut.

𝒗 = 𝐶1 𝒗1 + 𝐶2 𝒗2 + ⋯ + 𝐶𝑁 𝒗𝑁 = ∑ 𝐶𝑖 𝒗𝑖 (3.3)
𝑖=1

Dengan mengalikan kedua sisi Persamaan 3.3 dengan 𝐴, 𝐴2 , 𝐴3 , … , 𝐴𝑘 dan menggunakan


𝐴𝑣𝑖 = 𝜆𝑖 𝑣𝑖 , 𝑖 = 1, 2, … , 𝑁, kita bisa peroleh Persamaan 3.4.

𝐴𝑘 𝒗 = 𝑦 (𝑘) = ∑ 𝐶𝑖 𝜆𝑘𝑖 𝒗𝑖 (3.4)


𝑖=1

Faktorkan nilai eigen terbesar 𝜆𝑘𝑖 keluar

𝑁
𝜆𝑖 𝑘
𝑘
𝐴 𝒗=𝑦 (𝑘)
= 𝜆𝑘1 ∑ 𝐶𝑖 ( ) 𝒗𝑖 (3.5)
𝜆1
𝑖=1

𝜆 𝑘
Tetapi karena |𝜆1 | > |𝜆𝑖 | untuk 𝑖 = 1, 2, … , 𝑁, jika 𝑘 → ∞maka (𝜆 𝑖 ) → 0dan Persamaan
1

3.5berubah menjadi Persamaan 3.6.

𝐴𝑘 𝒗 = 𝑦 (𝑘) = 𝜆𝑘1 𝐶1 𝒗1 (3.6)

Pada Persamaan 3.6 dengan menggunakan 𝐶1 = 1 dapat diekspresikan 𝐶1 𝒗1 = 𝒗𝟏 , sehingga


diperoleh Persamaan 3.7 untuk nilai salah satu vektor eigen.

𝐴𝑘 𝒗𝟏 = 𝑦 (𝑘) = 𝜆𝑘1 𝒗1 (3.7)

Setelah 𝑦 (𝑘) dihitung, 𝜆𝑘1 diambil dari nilai elemen terbesar vektor 𝑦 (𝑘) sehingga 𝒗1 akan
mempunyai sebuah elemen unitas. Proses ini terus diulang hingga memenuhi kondisi rasio
perbedaan nilai eigen lebih kecil dari toleransi yang diinginkan sesuai dengan Persamaan 3.8.

𝑦 𝑘+1
𝜆1 = 𝑘 < 𝜖 (3.8)
𝑦

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 25


5.2.2. Metode Pangkat Inversi (Invers Power Method)

Tujuan dari penggunaan metode pangkat inversi adalah untuk menentukan nilai eigen
terkecil dengan menerapkan metode pangkat pada matriks 𝐴−1. Metode ini digunakan pada
kasus dimana matriks A bersifat non singular dan tidak memiliki nilai eigen bernilai nol. Asal
pemikiran dari metode ini adalah Persamaan 3.9

𝐴𝒗 = 𝜆𝒗 → 𝐴−1 𝒗 = 𝜆−1 𝒗 (3.9)

Ini berarti bahwa matriks invers 𝐴−1memiliki nilai-nilai eigen yang merupakan kebalikan dari
nilai-nilai eigen matriks A.

1
𝜆𝑁 = (3.10)
𝑛𝑖𝑙𝑎𝑖 𝑒𝑖𝑔𝑒𝑛 𝑡𝑒𝑟𝑏𝑒𝑠𝑎𝑟 𝑑𝑎𝑟𝑖 𝐴−1

5.2.3. Spektral Radius

Spektral radius 𝜌(𝐴) dari matriks 𝐴definisikan degan Persamaan 3.11.


𝜌(𝐴) = max|𝜆| (3.11)

5.3. Percobaan

Buatlah program dengan menggunakan bahasa matlab untuk menentukan nilai dan
vektor eigen menggunakan metode pangkat serta metode pangkat inversi untuk matriks-
matriks berikut: (Tidak diperbolehkan menggunakan toolbox eigen dari matlab)

4 1 0
a. 𝐴 = [0 2 1 ]
0 1 −1
3 −1 0
b. 𝐴 = [−2 4 −3]
0 −1 1
20 −4 8
c. 𝐴 = [−40 8 −20]
−60 12 −26

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 26


5.4. Tugas Pendahuluan

1. Buatlah program dengan menggunakan bahasa matlab untuk mencari invers dari
sebuah matriks 3 × 3. (tidak menggunakan toolbox invers dari matlab)
2. Hitung nilai dan vektor eigen dari matriks no (a) yang terdapat pada bagian Percobaan
secara analitik menggunakan bantuan persamaan karakteristik.

5.5. Tugas Akhir

1. Bagaimana cara menentukan semua nilai eigen dari matriks A yang berukuran 3 × 3?
(Sebagai catatan: metode pangkat hanya menghitung nilai eigen terbesar sedangkan
metode pangkat inversi hanya menghitung nilai eigen terkecil. Bagaimana jika kita
ingin menghitung nilai eigen diantara nilai eigen terbesar dan terkecil?) Buatlah
program dengan menggunakan bahasa matlab untuk menghitung semua nilai eigen dari
matriks A yang berukuran 3 × 3. (Matriks yang digunakan ditentukan oleh asisten)

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 27


Modul – 6
Metode Iterasi Untuk Sistem Persamaan Linier

6.1. Tujuan

Mahasiswa diharapkan mampu menentukan solusi dari sistem persamaan linier


menggunakan metode iterasi serta mampu membedakan penggunaan metode langsung dan
metode tidak langsung dalam menentukan solusi persamaan linier. Selain itu, mahasiswa juga
diharapkan mampu menentukan laju konvergensi dari metode iterasi yang digunakan.

6.2. Teori

Sistem persamaan linier (SPL) terdiri dari banyak persamaan, metode langsung seperti
eliminasi Gauss menjadi tidak efisien jika digunakan dalam perhitungan komputasi karena
ukuran matriks yang besar. Untuk permasalahan seperti ini, metode iterasi menjadi lebih efisien
untuk digunakan dalam perhitungan komputasi. Bentuk umum dari SPL ditunjukkan oleh
Persamaan 4.1.

𝑎11 𝑥1 + 𝑎12 𝑥2 + ⋯ + 𝑎1𝑛 𝑥𝑛 = 𝑏1

𝑎21 𝑥1 + 𝑎22 𝑥2 + ⋯ + 𝑎2𝑛 𝑥𝑛 = 𝑏2

𝑎31 𝑥1 + 𝑎32 𝑥2 + ⋯ + 𝑎3𝑛 𝑥𝑛 = 𝑏3

⋮ ⋮ ⋮ ⋮ ⋮

𝑎𝑛1 𝑥1 + 𝑎𝑛2 𝑥2 + ⋯ + 𝑎𝑛𝑛 𝑥𝑛 = 𝑏𝑛 (4.1)

Persamaan 4.1 dapat juga dinyatakan dalam bentuk matriks menjadi Persamaan 4.2

𝐴𝑥 = 𝑏 (4.2)

dengan 𝐴 merupakan matriks yang terdiri dari koefisien-koefisien pada SPL dan berukuran
𝑛 × 𝑛, 𝑥 merupakan matriks vektor yang merupakan solusi dari SPL, serta matriks 𝑏 yang
terdiri dari nilai-nilai pada sisi kanan SPL. Elemen-elemen pada matriks 𝐴 dan
vektor𝑏mempunyai nilai yang didapat dari formulasi permasalahan sedangkan elemen-elemen
pada vektor𝑥 merupakan jawaban permasalahan yang harus dihitung.

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 28


Metode iterasi melibatkan sebuah proses yang mengonversi sistem 𝐴𝑥 = 𝑏 menjadi
sistem ekuivalen 𝑥 = 𝑇𝑥 + 𝑐, untuk matriks 𝑇 dan vektor𝑐 yang tetap. Metode ini diawali
dengan aproksimasi awal 𝑥 (0) untuk mencapai solusi 𝑥 dengan menggenerasi vektor barisan
{𝑥 𝑘 }∞
𝑘=0 yang konvergen terhadap 𝑥, atau dapat ditulis

𝑥 𝑘 = 𝑇𝑥 𝑘−1 + 𝑐, 𝑢𝑛𝑡𝑢𝑘 𝑠𝑒𝑡𝑖𝑎𝑝 𝑘 = 1, 2, 3, … (4.3)

Persamaan 4.3 dapat didekomposisi menjadi Persamaan 4.4.

𝐴= 𝐿+𝐷+𝑈 (4.4)

dengan 𝐿 merupakan matriks lower triangular dengan nilai nol pada diagonal, 𝐷 merupakan
matriks diagonal dengan elemen yang tidak nol, dan 𝑈 merupakan matriks upper triangular
dengan nilai nol pada elemen diagonalnya.

6.2.1. Metode Iterasi Jacobi

Metode iterasi Jacobi dilakukan dengan mengubah Persamaan 4.2 menjadi Persamaan
4.3 dengan terlebih dahulu didekomposisikan matriks 𝐴 sesuai dengan Persamaan 4.4. Metode
ini dapat ditulis dalam bentuk matriks menjadi Persamaan 4.5.

𝑥 𝑘 = 𝐷 −1 (𝐿 + 𝑈)𝑥 𝑘−1 + 𝐷 −1 𝑏, 𝑑𝑒𝑛𝑔𝑎𝑛 𝑘 = 1, 2, … (4.5)

Secara komponen, Persamaan 4.5 dapat ditulis menjadi Persamaan 4.6.

𝑖−1 𝑛
1
𝑥𝑖𝑘 = − (∑ 𝑎𝑖𝑗 𝑥𝑗 + ∑ 𝑎𝑖𝑗 𝑥𝑗 − 𝑏𝑖 ) , 𝑢𝑛𝑡𝑢𝑘 𝑖 = 1, 2, … , 𝑛 (4.6)
𝑎𝑖𝑖
𝑗=1 𝑗=𝑖+1

Norm yang sering digunakan adalah 𝑙∞ norm. Sedangkan kriteria konvergensi untuk metode
iterasi ditunjukkan oleh Persamaan 4.7.

𝜌 (𝑇 ) < 1 (4.7)

dengan𝜌(𝑇) menyatakan spektral radius dari matriks 𝑇.

6.2.2. Metode Iterasi Gauss-Seidel

Metode ini merupakan perbaikan dari metode iterasi Jacobi yang dianggap memiliki laju
konvergen yang lambat. Metode ini dapat dilakukan dengan cara yang sama pada metode
Iterasi Jacobi, namun dengan mengubah Persamaan 4.5 menjadi Persamaan 4.8.

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 29


𝑥 𝑘 = (𝐷 − 𝐿)−1 𝑈𝑥 𝑘−1 + (𝐷 − 𝐿)−1 𝑏, 𝑑𝑒𝑛𝑔𝑎𝑛 𝑘 = 1, 2, … (4.8)

Secara umum, Persamaan 4.8 dapat ditulis menjadi Persamaan 4.9.

𝑖−1 𝑛
1
𝑥𝑖𝑘 = − (∑ 𝑎𝑖𝑗 𝑥𝑗𝑘+1 + ∑ 𝑎𝑖𝑗 𝑥𝑗𝑘 − 𝑏𝑖 ) , 𝑢𝑛𝑡𝑢𝑘 𝑖 = 1, 2, … , 𝑛 (4.9)
𝑎𝑖𝑖
𝑗=1 𝑗=𝑖+1

6.2.3. Successive Over Relaxation (SOR)

Metode ini diperoleh dengan cara mengekstrapolasi metode iterasi Gauss-Seidel sehinga
muncul faktor relaksasi 𝜔. Secara matriks, metode ini dapat dituliskan dalam Persamaan 4.10.

𝑥 𝑘 = (𝐷 − 𝜔𝐿)−1 + [𝜔𝑈 + (1 − 𝜔)𝐷 ]𝑥 𝑘+1 + 𝜔(𝐷 − 𝜔𝐿)−1 𝑏 (4.10)

Jika nilai 𝜔 = 1, maka metode ini akan kembali menjadi metode iterasi Gauss-Seidell.

6.3. Percobaan

Buatlah program dengan menggunakan bahasa matlab untuk menentukan solusi


persamaan linier dari persamaan-persamaan berikut menggunakan metode Iterasi Jacobi,
Gauss-Seidel, dan SOR :

2𝑥1 + 3𝑥2 = 5
a.
𝑥1 − 6𝑥2 = 9
−3𝑥1 − 0.1𝑥2 − 0.2𝑥3 = 7.85
b. 0.1𝑥1 + 7𝑥2 − 0.3𝑥3 = −19.3
0.3𝑥1 − 0.2𝑥2 + 10𝑥3 = 71.4
𝑎 + 3𝑏 − 𝑐 + 0.3𝑑 = 28
c. 𝑏 − 9.8𝑐 = 12
3𝑎 − 4𝑏 + 2𝑐 = −2
1.4𝑎 − 2.4𝑐 = 3

6.4. Tugas Pendahuluan

1. Turunkan Persamaan 4.5, 4.8, dan 4.10 menggunakan metode dekomposisi matriks
serta nyatakan dalam bentuk komponen.
2. Apakah yang dimaksud dengan norm matriks dan norm vektor?
3. Hitunglah solusi dari sistem persamaan linier di bawah menggunakan iterasi Jacobi
hingga iterasi ke-3.

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 30


−3𝑥1 − 0.1𝑥2 − 0.2𝑥3 = 7.85
0.1𝑥1 + 7𝑥2 − 0.3𝑥3 = −19.3
0.3𝑥1 − 0.2𝑥2 + 10𝑥3 = 71.4

6.5. Tugas Akhir

Tentukan besar masing-masing arus listrik (I1, I2, dan I3) pada rangkaian dibawah ini,
dengan menggunakan sistem persamaan linier.

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 31


Modul – 7
Interpolasi

7.1. Tujuan

Mahasiswa diharapkan mampu menentukan solusi dari permasalahan interpolasi dengan


menggunakan metode Polinomial, Lagrange, dan Newton Forward Difference, serta mampu
membedakan penyelesaian masalah dengan metode interpolasi dan ekstrapolasi.

7.2. Teori

Interpolasi digunakan untuk menghubungkan titik data diskrit dengan cara yang dapat
diterima sehingga seseorang bisa mendapatkan perkiraan yang beralasan dari suatu titik data
diantara data-data yang diberikan. Kurva yang dibentuk oleh proses interpolasi akan selalu
melewati seluruh titik data yang ada.

Sebagai ilustrasi, terdapat data tentang jumlah penduduk pada suatu daerah dalam
kurun waktu 1950 hingga 2000 dengan pengambilan data setiap 10 tahun. Hal itu dijelaskan
pada Tabel 5.1

Tabel 5.1 Jumlah penduduk di daerah X pada tahun 1950-2000

Tahun 1950 1960 1970 1980 1990 2000

Jumlah 34.704 69.168 97.115 148.442 211.707 264.002


Penduduk

Jika dilihat berdasarkan tabel data di atas, akan muncul pertanyaan yang baru bagaimana jika
kita ingin mengetahui jumlah penduduk pada tahun 1955 atau pada tahun 1998? Bila hubungan
fungsional antara kedua variabel, tahun dan jumlah penduduk, diketahui maka masalah ini
tentunya mudah untuk diselesaikan. Tetapi pada umumnya hubungan tersebut tidak diketahui
atau bila diketahui maka hanya dalam bentuk umumnya saja dimana koefisien-koefisien dari
hubungan fungsional itu tetap tidak diketahui. Dalam situasi seperti ini, biasanya yang dapat
dilakukan untuk menentukan solusi permasalahan tersebut adalah menggunakan metode

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 32


interpolasi. Dengan kata lain, interpolasi mengijinkan kita untuk membuat suatu fungsi
pendekatan yang mampu merepresentasikan hubungan antara variabel bebas dan variabel
terikat secara pasti. Fungsi pendekatan itu dapat berupa fungsi polynomial maupun fungsi
trigonometri. Dasar pemilihan fungsi pendekatan tersebut dapat ditetapkan dengan teorema
Weierstrass :

Teorema I

Bagi setiap fungsi 𝑓(𝑥) kontinu dalam suatu interval [𝑎, 𝑏], maka dapat dinyatakan
dalam interval tersebut suatu fungsi polynomial 𝑃𝑛 (𝑥) dengan suatu derajat ketelitian
tertentu sedemikian rupa sehingga |𝑓(𝑥 ) − 𝑃(𝑥)| < 𝜖 untuk setiap nilai x dalam [𝑎, 𝑏]
dimana 𝜖 merupakan bilangan positif.

Teorema II

Setiap fungsi 𝑓(𝑥)kontinu periodik2𝜋 dapat disajikan dalam bentuk fungsi seri
trigonometri hingga 𝑔(𝑥 ) = 𝑎0 + 𝑎1 sin 𝑥 + 𝑎2 sin 2𝑥 + ⋯ + 𝑎𝑛 sin 𝑛𝑥 + 𝑏1 cos 𝑥 +
𝑏2 cos 2𝑥 + ⋯ + 𝑏𝑛 cos 𝑛𝑥 dengan |𝑓(𝑥 ) − 𝑔(𝑥 )| < 𝛿 untuk 𝑥 dalam interval [𝑎, 𝑏]
dimana 𝛿 merupakan bilangan positif.

7.2.1. Interpolasi Polinomial dan Polinomial Taylor

Salah satu teknik interpolasi yang sering digunakan untuk menghampiri suatu fungsi
kontinu adalah interpolasi polynomial yang dirumuskan dengan Persamaan 5.1.

𝑃𝑛 (𝑥 ) = 𝑎𝑜 + 𝑎1 𝑥 + ⋯ + 𝑎𝑛−1 𝑥 𝑛−1 + 𝑎𝑛 𝑥 𝑛 (5.1)

dengan𝑛merupakan bilangan integer non-negatif dan 𝑎𝑜 , 𝑎1 , … , 𝑎𝑛 merupakan konstanta riil.

7.2.2. Interpolasi Lagrange

Apabila pengamatan data tidak berjarak sama atau interval antar variabel bebas tidak
seragam, perumusan interpolasi yang digunakan mengacu pada penurunan rumusan oleh
Lagrange. Polinomial Lagrange dapat dinyatakan dalam bentuk Persamaan 5.2.

𝑃𝑛 (𝑥 ) = ∑𝑛𝑖=0 𝑎𝑖 𝐿𝑖 (𝑥) = 𝑎0 𝐿0 (𝑥 ) + 𝑎1 𝐿1 (𝑥 ) + ⋯ + 𝑎𝑛 𝐿𝑛 (𝑥 ) (5.2)

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 33


Dengan

𝑎𝑖 = 𝑓 (𝑥𝑖 ), 𝑖 = 0, 1, 2, … , 𝑛

𝑛
(𝑥 − 𝑥𝑗 )
𝐿𝑖 (𝑥 ) = ∏
(𝑥𝑖 − 𝑥𝑗 )
𝑗=0
𝑗≠𝑖

7.3. Percobaan

1. Untuk fungsi 𝑓(𝑥) di bawah ini dengan diketahui data 𝑥0 = 0, 𝑥1 = 0.6, 𝑥2 = 0.9,
gunakan interpolasi polynomial derajat satu dan dua untuk menghampiri nilai 𝑓(0.45).
Buatlah dalam program dengan menggunakan bahasa matlab.
1. 𝑓 (𝑥 ) = sin 𝑥
ln(2𝑥+3)
2. 𝑓 (𝑥 ) = 2𝑥 2

3. 𝑓 (𝑥 ) = 𝑒 𝑥 + √(2𝑥 + 1)

1
4. 𝑓(𝑥) = 1+16𝑥2

2. Gunakan metode Interpolasi Lagrange derajat satu, dua dan tiga untuk memprediksi
populasi daerah “X” sesuai dengan Tabel 5.1 pada tahun 1945, 1955, 1965, 1975, 1985,
1995, 2005.

7.4. Tugas Pendahuluan

Jelaskan apa yang dimaksud dengan ekstrapolasi. Apa perbedaan ekstrapolasi dan
interpolasi?

7.5. Tugas Akhir

Buatlah program menggunakan bahasa matlab untuk soal-soal yang ada pada
Percobaan dengan menggunakan metode Newton Forward Difference.

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 34


Modul – 8
Regresi

8.1. Tujuan

Mahasiswa mampu mengaproksimasi suatu kelompok data dengan pendekatan suatu


fungsi menggunakan metode regresi.

8.2. Teori

Regresi adalah teknik pencocokan kurva yang dilakukan untuk mengaproksimasi suatu
kelompok data berketilitian rendah dengan suatu fungsi. Contoh data berketelitian rendah
adalah hasil pengamatan, percobaan di laboratorium atau data statistik.

Tabel 6.1Contoh data hasil percobaan


X 1 2 3 4 5 6 7 8 9 10
Y 1.8 3.5 4.2 4.9 5.3 6 6.8 6.5 6.4 6.9

Jika data di dalam tabel 6.1 diplotkan ke dalam grafik, maka dapat terlihat hubungan
antara variabel x dan y cenderung memiliki hubungan yang linier.
8
7
6
5
4
Y

3
2
1
0
0 2 4 6 8 10 12
X

Gambar 6.1.Grafik hubungan y terhadap x pada data Tabel 6.1


Garis putus-putus pada grafik diatas merupakan hasil dari interpolasi, sedangkan garis
lurus merupakan hasil dari regresi. Bagaimana bentuk fungsi yang cocok untuk mewakili tren
data tersebut? Bagaimana error yang dihasilkan oleh fungsi yang kita buat dalam
mengaproksimasi data tersebut?

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 35


Salah satu pendekatan dalam menentukan approksimasi linier terbaik dengan cara
meminimasi penjumlahan kuadrat error yang dihasilkan antara nilai 𝑦𝑖 dengan kurva linier
yang dibuat
𝑁

𝐸 (𝑎0 , 𝑎1 ) = ∑|𝑦𝑖 − (𝑎1 𝑥𝑖 + 𝑎0 )|2 (6.1)


𝑖=1

Pendekatan ini disebut dengan metoderegresi kuadrat terkecil. Untuk menentukan konstanta-
konstanta 𝑎0 dan 𝑎1 kita gunakan pendekatan turunan parsial Persamaan 6.1 terhadap masing-
masing konstanta, lalu kita set persamaan tersebut sama dengan nol. Persamaan terakhir yang
diperoleh disebut dengan persamaan normal. Dengan cara ini kitaakan bertemu kembali dengan
masalah aljabar linier seperti dalam percobaan Metnum-4. Adakalanya aproksimasi linier
bukan merupakan aproksimasi terbaik.Oleh karena itu digunakan aljabar polinum seperti pada
Persamaan 5.1, sehingga Persamaan 6.1 akan berubah menjadi Persamaan 6.2, yang merupakan
formulasi umum untuk menghitung error pada metoderegresi kuadrat terkecil.
𝑁

𝐸 (𝑎0 , … , 𝑎𝑛 ) = ∑|𝑦𝑖 − 𝑃𝑛 (𝑥𝑖 )|2 (6.2)


𝑖=1

Dari Persamaan 6.2 dapat pula kita turunkan persamaan normal untuk pendekatan Regresi
Kuadrat Terkecil untuk polinom derajat ke n.

8.3. Percobaan

1. Gunakan aproksimasi linier menggunakan metode regresi kuadrat terkecil untuk


mencocokan kurva dengan data pada tabel 6.1.
2. Amati kurva yang dihasilkan apabila pendekatan kurva tabel 6.1 menggunakan metode
regresi kuadrat terkecil untuk polinom derajat 2.
3. Plot kurva yang dihasilkan oleh percobaan 1 dan 2
4. Aproksimasi data pada tabel 6.2 di bawah ini menggunakan metode regresi kuadrat
terkecil untuk polinom derajat 1, 2 dan 3. Plot data beserta polinomnya.

Tabel 6.2. Data percobaan


1.3 1.5 1.9 2.1
2.54 2.21 2.18 2.6

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 36


8.4. Tugas Pendahuluan

1. Turunkan persamaan normal untuk metode regresi kuadrat terkecil untuk polinom
derajat ke-n.
2. Bagaimana cara kita mengaproksimasi suatu data yang mempunyai tren eksponensial?

8.5. Tugas Akhir

Buat program dengan Bahasa matlab untuk menyelesaikan contoh kasus yang
diberikan oleh asisten! Plot kurvanya!

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 37


Modul – 9
Integrasi Numerik

9.1. Tujuan

Mahasiswa mampu menghitung integral secara numerik suatu fungsi menggunakan


metode segiempat, trapesium, titik tengah dan simpson.

9.2. Teori

9.2.1. Metode Trapesium

Metode trapesium merupakan metode integrasi numerik yang diturunkan melalui


interpolasi linier yang dituliskan dengan Persamaan 7.1.

𝑏
𝑏−𝑎
𝐼 = ∫ 𝑓(𝑥 )𝑑𝑥 = [𝑓(𝑎) + 𝑓 (𝑏)] + 𝐸 (7.1)
𝑎 2

Metode ini mengaproksimasi suatu fungsi dengan pendekatan trapesium, dalam Persamaan 7.1
terlihat bahwa suatu fungsi f (x) dihampiri dengan perhitunganluas trapesium. Persamaan 7.1
merupakan formulasi integrasi numerik menggunakan satu buah trapesium, dengan demikian
error E yang dihasilkan cukup besar. Oleh karena itu Persamaan 7.1 diperluas, sehingga jumlah
trapesium yang digunakan sebanyak N buah, shingga persamaan 7.1 berubah menjadi
Persamaan 7.2.
𝑏 𝑁−1

𝐼 = ∫ 𝑓 (𝑥 )𝑑𝑥 = [𝑓(𝑎) + 2 ∑ 𝑓 (𝑎 + 𝑗ℎ) + 𝑓 (𝑏)] + 𝐸 (7.2)
𝑎 2
𝑗=1

𝑏−𝑎
denganℎ = 𝑁

9.2.2. Metode Simpson

Metode ini diturunkan melalui polinom Newton orde dua yang dirumuskan melalui
Persamaan 7.3.

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 38


𝑏 𝑁−1 𝑁−2

𝐼 = ∫ 𝑓(𝑥)𝑑𝑥 = [𝑓(𝑎) + 4 ∑ 𝑓(𝑎 + 𝑗ℎ) + 2 ∑ 𝑓(𝑎 + 𝑗ℎ) + 𝑓(𝑏)] + 𝐸 (7.3)
𝑎 3
𝑗=1(𝑔𝑎𝑛𝑗𝑖𝑙) 𝑗=2(𝑔𝑒𝑛𝑎𝑝)

Persamaan 7.3 merupakan formulasi Simpson 1/3 dimana penjumlahan pertama dikhususkan
untuk i yang ganjil dan penjumlahan kedua untuk i genap. Metode ini hanya berlaku untuk nilai
N genap, dan nilai hyang sama dengan yang dirumuskan pada metode trapesium. Kekurangan
metode Simpson 1/3 yang hanya berlaku untuk 𝑁 genap diperbaiki oleh metode Simpson 3/8
yang dirumuskan sebagai berikut :
𝑏
3
𝐼 = ∫ 𝑓 (𝑥 )𝑑𝑥 = ℎ[𝑓0 + 3𝑓1 + 3𝑓2 + 𝑓3 ] + 𝐸 (7.4)
𝑎 8
𝑏−𝑎
dengan ℎ = . Persamaan 7.4 hanya berlaku untuk satu interval saja. Jika interval data yang
3

digunakan lebih dari satu, persamaan 7.4 harus diubah ke dalam bentuk umum persamaan
metode Simpson 3/8. Metode simpson 3/8 berlaku untuk nilai N berupa bilangan kelipatan 3.

9.3. Percobaan

1. Aproksimasi integral-integral berikut menggunakan metode trapesium dengan nilai


𝑁 ∈ {2,4,6,8,16,32,64}
2
a. ∫−2 𝑥𝑒 2𝑥 𝑑𝑥
1 ln(1+𝑥)
b. ∫0 𝑑𝑥
𝑥
2 𝑥𝑠𝑖𝑛(𝑥)
c. ∫0 𝑑𝑥
(𝑥−1)2

2. Ulangi percobaan no.1 dengan menggunakan metode Simpson 1/3


3. Ulangi percobaan no.1 dengan menggunakan metode Simpson 3/8

9.4. Tugas Pendahuluan

1. Jelaskan bagaimana nilai N sangat berpengaruh terhadap error yang dihasilkan!


2. Kerjakan soal pada percobaan no.1 dengan menggunakan metode persegi dan titik
tengah secara numerik. Bandingkan dengan hasil yang diperoleh secara analitik.

9.5. Tugas Akhir

1. Laju seorang penerjun payung selama melayang di udara setelah payungnya


mengembang adalah

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 39


𝑔𝑚
𝑣 (𝑡 ) = [1 − 𝑒 −𝑐 𝑡/𝑚 ]
𝑐
dimana 𝑔 = 9,8 𝑚𝑠 −2 adalah percepatan gravitasi, 𝑚 = 68,1 𝑘𝑔 adalah massa
penerjun, 𝑐 = 12,5 𝑘𝑔. 𝑠 −1 adalah hambatan oleh udara. Berapa jarak yang ditempuh
oleh penerjun tersebut selama 10 detik? Jarak yang ditempuh penerjun dapat dihitung
dengan menggunakan hubungan
𝑡
ℎ = ∫ 𝑣(𝑡) 𝑑𝑡
0

buatlah program menggunakan bahasa matlab dengan metode yang telah dipelajari
pada modul ini.
2. Bandingkan hasil percobaan untuk metode trapesium dan simpson 1/3.
3. Diberikan tabel sebagai berikut :
𝑥 𝑓(𝑥)
0 1
0.25 0.8
0.625 0.6
0.75 0.57
0.875 0.53
1 0.5

Bagaimana cara mencari integral dari data dengan interval yang tidak seragam seperti
pada tabel di atas?

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 40


Modul – 10
Diferensiasi Numerik

10.1. Tujuan

Mahasiswa mampu mendiferensiasi numerik suatu fungsi dengan menggunakan metode


aproksimasi beda hingga.

10.2. Teori

Diferensiasi numerik adalah proses perhitungan turunan fungsi dari data suatu fungsi.
Untuk beberapa kasus, suatu fungsi memiliki bentuk yang rumit sehingga perhitungan dengan
cara analitik merupakan pekerjaan yang tidak praktis. Namun fungsi tersebut dapat kita cari
turunannya dengan pendekatan numerik, salah satu metodenya adalah metode aproksimasi
beda hingga.

Metode aproksimasi beda hingga untuk menentukan turunan suatu fungsi didasari oleh
ekspansi deret Taylor dari suatu fungsi f(x) disekitar titik x. Dari ekspansi deret taylor akan
diperoleh Persamaan 8.1 – 8.3

𝑓 (𝑥 + ℎ) − 𝑓 (𝑥 ) ℎ ′′
𝑓 ′ (𝑥 ) = − 𝑓 (𝑥 ) (8.1)
ℎ 2

𝑓(𝑥 ) − 𝑓 (𝑥 − ℎ) ℎ ′′
𝑓 ′ (𝑥 ) = + 𝑓 (𝑥 ) (8.2)
ℎ 2

𝑓 (𝑥 + ℎ) − 𝑓(𝑥 ) ℎ2 ′′′
𝑓 ′ (𝑥 ) = − 𝑓 (𝑥 ) (8.3)
ℎ 6

Persamaan 8.1 merupakan persamaan untuk forward difference orde pertama.


Persamaan 8.2 merupakan persamaan untuk backward difference orde pertama. Persamaan 8.3
merupakan persamaan untuk central difference orde pertama. Dimana suku kedua pada ruas
kanan persamaan-persamaan ini merupakan errorpemotongan. Untuk orde kedua atau orde
yang lebih tinggi, ekspansi deret taylor dapat digunakan kembali.

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 41


10.3. Percobaan

1. Hitung turunan pertama dari fungsi 𝑓 (𝑥 ) = sin4 (3 − 2𝑥) pada 𝑥 = 1 dengan nilai
ℎ ∈ {0.001 , 0.005 , 0.05 , 0.1 , 0.5} untuk setiap metode. Hitung pula error yang
dihasilkan.
sin 3𝑥
2. Hitung turunan pertama dari fungsi 𝑓 (𝑥 ) = 𝑥 𝑐𝑜𝑠 2𝑥 pada 𝑥 = 1 dengan nilai ℎ ∈

{0.001 , 0.005 , 0.05 , 0.1 , 0.5} untuk setiap metode. Hitung pula error yang
dihasilkan.

10.4. Tugas Pendahuluan

1. Jelaskan apa yang dimaksud dengan h, dan apa pengaruhnya terhadap nilai error!
2. Hitunglah nilai turunan untuk soal No. 1 dan No. 2 pada Percobaan praktikum dengan
cara analitik.

10.5. Tugas Akhir

1. Selidiki apa yang terjadi apabila step size h(intervalnya) berbeda.


2. Sebuah mobil dengan massa 1200 𝑘𝑔 melaju dengan kecepatan yang berubah-ubah.
Diperoleh data jarak yang ditempuh mobil terhadapa waktu sebagai berikut:
t (s) x (m)
0 0
0.1 2
0.25 2.8
0.38 3.5
0.56 4

Tentukan impuls yang terjadi yang dihasilkan mobil saat 𝑡 = 0, 0.25, dan 0.56.
3. Dalam kondisi seperti apa setiap metode dapat digunakan? jelaskan

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 42


Modul – 11
Persamaan Diferensial Biasa

11.1. Tujuan

Dalam modul ini mahasiswa diharapkan mampu memecahkan masalah persamaan


diferensial biasa menggunakan metode Euler dan Runge – Kutta.

11.2. Teori

Kasus persamaan diferensial biasa (PDB) merupakan salah satu kasus yang sering
dijumpai dalam bidang sains maupun teknik. Persamaan diferensial biasa menggambarkan
suatu bentuk persamaan matematis yang mengandung turunan dari suatu fungsi terhadap satu
variabel bebas. Secara sederhana, persamaan diferensial biasa dapat dituliskan sebagai berikut
𝑑𝑦
𝑦′ = = 𝑓 (𝑦, 𝑡) 𝑦(0) = 𝑦0 (9.1)
𝑑𝑡

Dalam Persamaan9.1 turunan pertama dari y diketahui sebagai fungsi 𝑓(𝑦, 𝑡) yang merupakan
fungsi dari 𝑦 dan 𝑡 dengan 𝑦(0) = 𝑦0 merupakan nilai awalnya. Untuk menghitung fungsi 𝑦
yang tidak diketahui maka kita dapat secara langsung mengintegrasi secara numerik
Persamaan9.1. Akan tetapi bila 𝑓 merupakan fungsi dari 𝑦 maka proses integrasi menjadi
berbeda.

11.2.1. Metode Forward Euler

Metode Forward Euler ini diturunkan melalui deret Taylor (lihat modul 7), bila ditulis
kembali menggunakan pendekatan forward difference, maka metode Euler dapat ditulis
menjadi Persamaan 9.2
𝑦𝑛+1 − 𝑦𝑛
𝑦𝑛′ ≈ (9.2)

Seringkali Persamaan 9.2 ditulis dalam bentuk Persamaan 9.3
𝑦𝑛+1 = 𝑦𝑛 + ℎ 𝑓(𝑦𝑛 , 𝑡𝑛 ) (9.3)

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 43


dengan h menyatakan interval waktu. Untuk memecahkan Persamaan 9.1, maka Persamaan 9.3
diselesaikan secara rekursif sampai dengan akhir interval waktu 𝑡. Selain itu Persamaan 9.2
dapat dinyatakan dalam bentuk backward difference. Meskipun metode forward Euler sangat
sederhana, namun kita harus hati-hati terhadap dua kemungkinan error yang muncul, pertama
adalah error dalam pemotongan deret (truncation error) dan yang kedua adalah konstanta
waktu yang berharga negatif. Hal ini bisa kita atasi dengan menggunakan nilai ℎ yang sangat
kecil sekali.

11.2.2. Metode Runge-Kutta Orde Empat

Metode ini merupakan metode yang cukup handal dalam menyelesaikan masalah
persamaan diferensial biasa. Beberapa pendahulunya seperti metode RK orde 1,2 dan 3, telah
ditutupi oleh metode RK-4, karena metode ini mempunyai orde akurasi yang lebih tinggi
dibandingkan yang lainnya. Metode RK-4 diturunkan melalui pendekatan integral Simpson
1/3 atau 3/8. Melalui integral Simpson 1/3 maka metode RK-4 dapat ditulis menjadi
Persamaan 9.4.
𝑘1 = ℎ𝑓 (𝑦𝑛 , 𝑡𝑛 )
1 1
𝑘2 = ℎ𝑓 (𝑦𝑛 + ℎ, 𝑡𝑛 + 𝑘1 )
2 2
1 1
𝑘3 = ℎ𝑓 (𝑦𝑛 + ℎ, 𝑡𝑛 + 𝑘2 )
2 2
𝑘4 = ℎ𝑓 (𝑦𝑛 + ℎ, 𝑡𝑛 + 𝑘3 )
1
𝑦𝑛+1 = 𝑦𝑛 + [𝑘1 + 2𝑘2 + 2𝑘3 + 𝑘4 ] (9.4)
6

11.3. Percobaan

1. Diketahui PDB sebagai berikut:


𝑑𝑦
a. = 5 exp(−0.2𝑡 2 ) − 𝑦 2 dengan 𝑦(0) = 0
𝑑𝑡
𝑑𝑦
b. + 𝑡𝑦 2 = 1 dengan 𝑦(0) = 1
𝑑𝑡
𝑑𝑦
c. + 10𝑦 = exp(−𝑡) dengan 𝑦(0) = 5
𝑑𝑡

Tentukan 𝑦(0.1) menggunakan metode Forward Euler! Gunakan variasi ℎ ∈


{0.01 ; 0.001 ; 0.0001}

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 44


2. Selesaikan persoalan no. 1 untuk menentukan 𝑦(0.1) menggunakan metode RK-4!
Kemudian bandingkan hasilnya dengan metode Forward Euler.

11.4. Tugas Pendahuluan

1. Turunkan formulasi error untuk masing-masing metode di atas!


2. Jelaskan mengapa nilai ℎ sangat berpengaruh terhadap error yang dihasilkan!
𝑑𝑦
= 4𝑡 3 + 𝑡 2 + 10𝑡 + 7
𝑑𝑡
Selesaikan persamaan diferensial biasa di atas secara analitik!

11.5. Tugas Akhir

1. Pergerakan suatu sistem massa, pegas dan damper mengalami pergerakan setelah gaya
aktuasi F(t) diberikan seperti gambar dibawah ini.

Jika persamaan pergerakan oleh massa ini diberikan oleh hukum Newton berupa
persamaan :
𝑚𝑥̈ = −𝑘𝑥 − 𝑐𝑥̇ + 𝐹(𝑡)
Jika 𝑥(0) = 𝑥̇ (0) = 0 , 𝑚 = 5000 𝑘𝑔, 𝑐 = 5000𝑁𝑠/𝑚 , 𝑘 = 50000𝑁/𝑚 dan
gaya aktuasi sebesar 5000 𝑁 untuk 0 ≤ 𝑡 ≤ 1 detik dan 0 𝑁untuk𝑡 > 1 detik. Maka
hitunglah pergerakan dari massa benda selama 10 detik !
𝑑𝑦
2. 𝑑𝑡
= 1 + 𝑦 exp(−𝑡) dengan 𝑦(1) = 10 dan ℎ ∈ {0.1 ; 0.01} . Tentukan nilai 𝑦(0)!

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 45


Modul – 12
Proyek

12.1. Tujuan

Mahasiswa mampu menyelesaikan masalah dalam fisika melalui pendekatan solusi


numerik.

12.2. Percobaan

Buatlah program numerik yang dapat menyelesaikan permasalahan fisika. Percobaan


pada modul ini dilakukan dalam dua pertemuan. Permasalahan yang diajukan akan
dipresentasikan di hadapan asisten pada pertemuan pertama. Jika tidak disetujui maka
praktikan perlu mencari topik baru untuk dijadikan kajian pada proyek ini dan dipresentasikan
pada waktu yang disepakati. Jika telah disetujui maka praktikan akan membuat program dan
program yang telah dibuat akan dipresentasikan pada pertemuan kedua. Proyek ini dikerjakan
secara berkelompok yang diatur oleh asisten. Masalah yang diajukan harus menggunakan
metode numerik yang telah diajarkan selama kuliah/praktikum dan TIDAK BOLEH SAMA
antara satu kelompok dengan kelompok lainnya. Laporan proyek dikumpulkan pada
pertemuan ketiga dengan sistematika sebagai berikut :
1. Pendahuluan
1.1.Latar Belakang
1.2.Rumusan Masalah
1.3.Tujuan
2. Teori Dasar
1.1.Tinjauan pustaka secara fisika
1.2.Tinjauan pustaka secara metode numerik
2. Deskripsi program
3. Flowchart
4. Pembahasan (program, tampilan, analisa)
5. Kesimpulan
6. Daftar Pustaka

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 46


Daftar Pustaka

1. Sasongko, Setia Budi. 2010. Metode Numerik dengan Scilab. Yogyakarta : Andi Offset.
2. Kosasih, P. Buyung. 2006. Komputasi Numerik, Teori dan Aplikasi. Yogyakarta : Andi
Offset.
3. Purcell, Varberg, Rigdon. 2003. Kalkulus Jilid 2 Edisi Kedelapan (Terjemahan).
Jakarta : Erlangga.
4. Frank Ayres dan Elliot Mendelson. 2006. Schaum’s Outlines, Kalkulus Edisi Keempat
(terjemahan). Jakarta : Erlangga.

Diktat Praktikum Algoritma dan Komputasi Numerik – LABKOM 2019 47

Anda mungkin juga menyukai