Anda di halaman 1dari 37

LAPORAN TUGAS BESAR 1

IF2123 ALJABAR LINEAR DAN GEOMETRI


Sistem Persamaan Linear, Determinan, dan Aplikasinya

Disusun oleh:

Muhammad Neo Cicero Koda (13522108)


Marvin Scifo Yehezkiel Hutahaean (13522110)
Derwin Rustanly (13522115)

Program Studi Teknik Informatika


Sekolah Teknik Elektro dan Informatika
Institut Teknologi Bandung
2023
Daftar Isi

Daftar Isi....................................................................................................................................................................................
BAB I..........................................................................................................................................................................................
1. Tujuan...............................................................................................................................................................................
2. Spesifikasi Program..........................................................................................................................................................
BAB II.........................................................................................................................................................................................
1. Sistem Persamaan Linear.................................................................................................................................................
2. Determinan.......................................................................................................................................................................
3. Matriks Balikan................................................................................................................................................................
4. Interpolasi Polinom..........................................................................................................................................................
5. Regresi Linier Berganda...................................................................................................................................................
6. Bicubic Spline Interpolation.............................................................................................................................................
BAB III.......................................................................................................................................................................................
1. Class Matriks....................................................................................................................................................................
2. Class DriverMatriks.........................................................................................................................................................
3. Class FileHandling...........................................................................................................................................................
4. Class ImageScaling..........................................................................................................................................................
5. Garis Besar Program........................................................................................................................................................
BAB IV.......................................................................................................................................................................................
1. Menentukan solusi dari SPL Ax = b................................................................................................................................
2. Menentukan solusi SPL dalam matriks augmented.........................................................................................................
3. Menentukan solusi SPL berbentuk...................................................................................................................................
4. Menentukan solusi x1,x2, dan x3 dari sistem reaktor dengan persamaan.......................................................................
5. Menentukan interpolasi polinom......................................................................................................................................
6. Menentukan regresi linear berganda................................................................................................................................
7. Menentukan bicubic spline interpolation.........................................................................................................................
BAB V.........................................................................................................................................................................................
1. Kesimpulan.......................................................................................................................................................................
2. Saran dan Komentar.........................................................................................................................................................
3. Refleksi.............................................................................................................................................................................
DAFTAR REFERENSI............................................................................................................................................................

2
BAB I
Deskripsi Masalah
1. Tujuan
Tujuan pengerjaan tugas besar ini adalah:
1.1. Membuat satu atau lebih library aljabar linier dalam Bahasa Java yang berisi:
● Fungsi-fungsi yang dapat menentukan solusi sistem persamaan linier
dengan Metode Eliminasi Gauss, Metode Eliminasi Gauss-Jordan, Metode
Matriks Balikan, dan Kaidah Cramer
● Fungsi-fungsi yang dapat menghitung determinan sebuah matriks dengan
Metode Reduksi Baris dan Metode Ekspansi Kofaktor
● Fungsi-fungsi yang dapat menentukan balikan dari sebuah matriks persegi
1.2. Menggunakan library yang telah disebutkan pada poin (1) untuk menyelesaikan
persoalan Interpolasi Polinom, Interpolasi Bikubik Spline, dan Regresi Linier
Berganda

2. Spesifikasi Program
Adapun spesifikasi dari program yang akan diimplementasikan adalah sebagai berikut.
2.1. Program dapat menerima masukan (input) baik dari keyboard maupun membaca
masukan dari file text. Untuk SPL, masukan dari keyboard adalah m, n, koefisien
aij , dan bi. Masukan dari file berbentuk matriks augmented tanpa tanda kurung,
setiap elemen matriks dipisah oleh spasi. Misalnya,
3 4.5 2.8 10 12
-3 7 8.3 11 -4
0.5 -10 -9 12 0
2.2. Untuk persoalan menghitung determinan dan matriks balikan, masukan dari
keyboard adalah n dan koefisien aij. Masukan dari file berbentuk matriks, setiap
elemen matriks dipisah oleh spasi. Misalnya,
3 4.5 2.8
-3 7 8.3
0.5 -10 -9
Luaran (output) disesuaikan dengan persoalan (determinan atau invers) dan
penghitungan balikan/invers dilakukan dengan metode matriks balikan dan
adjoin.
2.3. Untuk persoalan interpolasi, masukannya jika dari keyboard adalah n, (x0, y0), (x1,
y1), …, (xn, yn), dan nilai x yang akan ditaksir nilai fungsinya. Jika masukannya
dari file, maka titik-titik dinyatakan pada setiap baris tanpa koma dan tanda
kurung. Masukan kemudian dilanjutkan dengan satu buah baris berisi satu buah
nilai x yang akan ditaksir menggunakan fungsi interpolasi yang telah

3
didefinisikan. Misalnya jika titik-titik datanya adalah (8.0, 2.0794), (9.0, 2.1972),
dan (9.5, 2.2513) dan akan mencari nilai y saat x = 8.3, maka di dalam file text
ditulis sebagai berikut:
8.0 2.0794
9.0 2.1972
9.5 2.2513
8.3
2.4. Untuk persoalan regresi, masukannya jika dari keyboard adalah n (jumlah peubah
x), m (jumlah sampel), semua nilai-nilai x1i, x2i, …, xni, nilai yi, dan nilai-nilai xk
yang akan ditaksir nilai fungsinya. Jika masukannya dari file, maka titik-titik
dinyatakan pada setiap baris tanpa koma dan tanda kurung.
2.5. Untuk persoalan SPL, luaran program adalah solusi SPL. Jika solusinya tunggal,
tuliskan nilainya. Jika solusinya tidak ada, tuliskan solusi tidak ada, jika solusinya
banyak, maka tuliskan solusinya dalam bentuk parametrik (misalnya x4 = -2, x3 =
2s – t, x2 = s, dan x1 = t).
2.6. Untuk persoalan polinom interpolasi dan regresi, luarannya adalah persamaan
polinom/regresi dan taksiran nilai fungsi pada x yang diberikan. Contoh luaran
untuk interpolasi adalah
f(x) = -0.0064x2 + 0.2266 x + 0.6762, f(5) = …
dan untuk regresi adalah
f(x) = -9.5872 + 1.0732x1, f(xk) = …
2.7. Untuk persoalan bicubic spline interpolation, masukan dari file text (.txt) yang
berisi matriks berukuran 4 x 4 yang berisi konfigurasi nilai fungsi dan turunan
berarah disekitarnya, diikuti dengan nilai a dan b untuk mencari nilai f(a, b).
Misalnya jika nilai dari f(0, 0), f(1, 0), f(0, 1), f(1, 1), fx(0, 0), fx(1, 0), fx(0, 1), fx(1,
1), fy(0, 0), fy(1, 0), fy(0, 1), fy(1, 1), fxy(0, 0), fxy(1, 0), fxy(0, 1), fxy(1, 1) berturut-
turut adalah 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 serta nilai a dan b
yang dicari berturut-turut adalah 0.5 dan 0.5 maka isi file text ditulis sebagai
berikut:
1234
5678
9 10 11 12
13 14 15 16
0.5 0.5
Luaran yang dihasilkan adalah nilai dari f(0.5, 0.5).
2.8. Luaran program harus dapat ditampilkan pada layar komputer dan dapat
disimpan ke dalam file.
2.9. Program tidak berbasis GUI, melainkan CLI (Command Line Interface).
2.10. Program dapat dibuat dengan pilihan menu. Misalnya, menu:
MENU

4
1. Sistem Persamaaan Linier
2. Determinan
3. Matriks balikan
4. Interpolasi Polinom
5. Interpolasi Bicubic Spline
6. Regresi linier berganda
7. Keluar
Untuk pilihan menu nomor 1 ada sub-menu lagi yaitu pilihan metode:
1. Metode eliminasi Gauss
2. Metode eliminasi Gauss-Jordan
3. Metode matriks balikan
4. Kaidah Cramer
Begitu juga untuk pilihan menu nomor 2 dan 3.

5
BAB II
Teori Singkat

1. Sistem Persamaan Linear


Sistem persamaan linier merupakan suatu kumpulan persamaan aljabar, yang tiap
sukunya mengandung konstanta, atau perkalian konstanta dengan variabel tunggal
dengan pangkat tertinggi 1. Sebuah SPL dengan m buah persamaan dan n variabel x 1 , x2 ,
…, xn berbentuk:
a 11 x 1 +a 12 x 2+. . .+a1 n x n=b1
a 21 x 1+ a22 x 2 +. ..+ a2 n x n=b2
⋮ ⋮⋮ ⋮⋮
a m 1 x 1+ am 2 x2 +. . .+a mn x n=b m
atau dapat dituliskan sebagai perkalian matriks AX=B. Adapun, terdapat 3 kemungkinan
solusi pada sistem persamaan linear, yakni solusi tunggal, solusi banyak (parametrik),
dan tidak memiliki solusi.
Pada program ini, solusi dari sistem persamaan linear dapat dicari menggunakan
beberapa metode yakni, metode Gauss, metode Gauss-Jordan, metode Kramer, dan
metode matriks balikan.

1.1. Metode Gauss


Metode Gauss dapat dilakukan dengan mengubah matriks A dan B menjadi
matriks augmented yang berbentuk sebagai berikut.

Gambar 2.1. Bentuk umum matriks augmented


Kemudian, konversikan matriks augmented tersebut menjadi bentuk matriks
eselon baris dengan memanfaatkan 3 jenis operasi baris elementer, yang meliputi
pertukaran antara 2 baris, penjumlahan atau pengurangan antara 2 baris dengan
dikalikan dengan konstanta, serta perkalian suatu baris dengan suatu konstanta.
Matriks eselon (atau bentuk eselon baris) adalah matriks yang memiliki 1 utama
pada setiap baris, kecuali baris yang seluruhnya nol.

6
Gambar 2.2. Konversi sebuah matriks augmented sembarang menjadi matriks
eselon
Setelah dilakukan konversi matriks ke bentuk eselon baris, proses dilanjutkan
dengan melakukan penyulihan mundur untuk mencari solusi dari masing-masing
variabel.

Dengan metode Gauss, 3 kemungkinan solusi dari Sistem Persamaan Linear dapat
divisualisasikan dalam bentuk matriks, yakni sebagai berikut.

Gambar 2.3. Contoh hasil eliminasi Gauss berupa solusi unik

Gambar 2.4. Contoh hasil eliminasi Gauss dengan solusi banyak

Gambar 2.5. Contoh hasil eliminasi Gauss dengan solusi tidak ada

7
1.2. Metode Gauss-Jordan
Sama halnya dengan metode Gauss, metode Gauss-Jordan juga melibatkan
pengubahan bentuk matriks A dan matriks B menjadi bentuk matriks augmented.
Kemudian, dilakukan konversi matriks augmented ke bentuk matriks eselon baris
tereduksi. Matriks eselon tereduksi adalah matriks dengan tiap kolom yang
memiliki 1 utama memiliki nol di baris yang lain. Fase yang digunakan pada
metode Gauss-Jordan antara lain forward phase (menghasilkan 0 di bawah 1
utama) dan backward phase (menghasilkan 0 di atas 1 utama).

Gambar 2.6. Konversi matriks augmented menjadi matriks eselon baris tereduksi

Berbeda dengan metode Gauss, pada metode ini tidak perlu dilakukan penyulihan
mundur karena nilai variabel langsung diperoleh dari matriks augmented akhir
(jika solusinya unik).

1.3. Kaidah Kramer


Kaidah Kramer melibatkan penggantian matriks A menjadi Aj, yakni matriks
yang diperoleh dengan mengganti entri pada kolom ke-j dari A dengan entri dari
matriks solusi B. Kaidah Kramer hanya dapat menyelesaikan solusi matriks yang
sifatnya unik (determinan matriksnya bukan 0), karena melibatkan operasi
pembagian antara determinan matriks Aj dengan matriks A. Adapun solusi unik
dari matriks dengan memanfaatkan kaidah kramer adalah sebagai berikut.
det ( A j )
x j=
det( A)
1.4. Metode Matriks Balikan
Dengan memanfaatkan perkalian matriks dengan matriks balikan (inversnya),
dapat diperoleh solusi dari sistem persamaan linear. Secara matematis,
penyelesaian dari sistem persamaan linear AX = B dapat dituliskan sebagai
berikut.
AX=B
−1 −1
A AX= A B
−1
X =A B

2. Determinan
Pada sebuah matriks, determinan hanya dapat dihitung jika matriks tersebut
merupakan matriks persegi, yaitu matriks yang memiliki jumlah baris dan kolom yang

8
sama. Ada dua metode yang dapat digunakan untuk menghitung determinan pada sebuah
matriks, yaitu metode reduksi baris dan metode ekspansi kofaktor.
2.1. Metode Reduksi Baris
Pada program ini, metode reduksi baris dilakukan dengan melakukan operasi
baris elementer pada sebuah matriks persegi untuk menghasilkan sebuah matriks segitiga,
baik matriks segitiga bawah maupun matriks segitiga atas. Matriks segitiga bawah adalah
matriks yang memiliki nilai nol pada semua elemen di atas diagonal utama. Matriks
segitiga atas adalah matriks yang memiliki nilai nol pada semua elemen di bawah
diagonal utama. Setelah mendapatkan matriks segitiga, determinan dapat dihitung dengan
mengalikan semua elemen pada diagonal utama matriks segitiga.

Gambar 2.7. Contoh matriks persegi

Gambar 2.8. Contoh matriks segitiga atas dan rumus mencari determinan untuk matriks
segitiga
2.2. Metode Ekspansi Kofaktor
Misalkan terdapat sebuah matriks persegi A. Minor entri (M ij) merupakan
determinan submatriks A yang terdiri dari elemen-elemen A yang tidak terletak pada
baris ke-i dan kolom ke-j. Kofaktor entri (Cij) didefinisikan sebagai (-1)i+jMij.

Gambar 2.9. Pembuatan minor entri dengan mencoret baris ke-1 dan kolom ke-1

Gambar 2.10. Menghitung kofaktor entri dari minor entri pada gambar 2.9.

Determinan sebuah matriks dapat dihitung dengan memilih salah satu dari rumus
berikut:

9
Gambar 2.11. Rumus menghitung determinan dengan metode ekspansi kofaktor
3. Matriks Balikan
Pada sebuah matriks, terdapat balikan dari matriks tersebut. Matriks balikan bisa
disebut juga matriks invers (balikan). Matriks invers adalah balikan dari matriks itu
sendiri. Misalkan matriks A , maka inversnya adalah A−1. Perlu diketahui bahwa untuk
mendapatkan sebuah matriks balikan, determinan dari matriks tersebut tidak boleh sama
dengan 0. Jika determinan matriks = 0, matriks tersebut disebut sebagai matriks singular.
Ada 2 cara untuk mencari matriks balikan, yaitu metode Kofaktor dan metode OBE.

3.1. Metode Adjoin


Pada program ini, metode adjoin adalah metode mencari invers dengan cara
mencari kofaktor dari sebuah matriks terlebih dahulu, lalu membuat matriks adjoinnya
dengan memposisikan kofaktor tersebut lalu ditranspose. Setelah itu, matriks adjoin
dibagi dengan determinan yang didapat.

Gambar 2.12. Proses menghitung invers sebuah matriks dengan metode adjoin

Bisa dilihat kalau determinan matriksnya 0, akan mendapatkan bentuk 1/0 yang
artinya hasil pembagian tersebut undefined. Oleh karena itu, determinan yang didapat
tidak boleh 0.

10
3.2. Metode OBE
Pada program ini, metode OBE dilakukan dengan melakukan operasi baris
elementer pada sebuah matriks persegi untuk menghasilkan sebuah matriks segitiga, baik
matriks segitiga bawah maupun matriks segitiga atas. Kali ini matriks augmentasi-nya
adalah matriks identitas.
−1
[ A∨I ]=[I ∨A ]
Jadi, metode OBE dilakukan sampai terbentuk matriks identitas di sebelah kirinya
dan hasil matriks yang nantinya akan menjadi matriks invers yang ada di sebelahnya.
Disini disajikan contoh dari matriks balikan metode OBE :

Gambar 2.13. Proses menghitung invers matriks dengan metode OBE


4. Interpolasi Polinom
Dalam analisis numerik, interpolasi polinomial adalah sebuah metode interpolasi
untuk suatu himpunan titik, dengan menggunakan polinomial derajat terkecil yang
melewati semua titik pada himpunan tersebut.

Gambar 2.14. Contoh proses interpolasi dari beberapa titik


Apabila diberikan n+1 titik titik berbeda, (x0, y0), (x1, y1), ..., (xn, yn), dapat dibentuk suatu
polinom pn(x) yang menginterpolasi (melewati) semua titik-titik tersebut sedemikian rupa

11
sehingga yi = pn(xi) untuk i = 0, 1, 2, …, n dalam interval tertutup [x0, xn]. Dengan
menyulihkan (xi, yi) ke dalam persamaan polinom pn(x) = a0 + a1x + a2x2 + … + anxn untuk
i = 0, 1, 2, …, n, akan diperoleh n buah sistem persamaan linear dalam a0, a1, a2, …, an,

a0 + a1x0 + a2x02 + ... + an x0n = y0


a0 + a1x1 + a2x12 + ... + an x1n = y1
... ...
a0 + a1xn + a2xn2 + ... + an xnn = yn
Solusi sistem persamaan lanjar ini, yaitu nilai a0, a1, …, an, diperoleh dengan
menggunakan salah satu dari metode penyelesaian yang terdapat pada bagian 1. Apabila
fungsi koefisien dari setiap suku di polinom pn(x) telah ditentukan, nilai fungsi pada atau
yk = pn(xk), dimana x k terletak pada interval tertutup tertutup [x0, xn] dapat diaproksimasi.
5. Regresi Linier Berganda
Regresi linier berganda merupakan metode dalam statistika untuk memodelkan
hubungan antara beberapa variabel bebas dengan satu variabel terikat. Regresi linier
berganda dapat direpresentasikan sebagai model matematis dengan bentuk:
Y = β0 + β 1 X 1 + β 2 X 2 +..+ β k X k +𝝐
Pada rumus ini, Y adalah variabel terikat, X 1 .. Xk adalah variabel bebas, dan β 1..
β p adalah koefisien koefisien yang akan ditentukan nilainya.
Mendapatkan nilai dari setiap β❑ dilakukan dengan menggunakan Normal
Estimation Equation for Multiple Linear Regression, yaitu:

Gambar 2.15. Normal Estimation Equation for Multiple Linear Regression


Pada rumus ini, k adalah jumlah peubah, n adalah jumlah sampel, b merupakan
koefisien-koefisien yang akan ditentukan nilainya, y adalah variabel terikat, dan x adalah
variabel bebas. Sistem persamaan linier yang dihasilkan dapat diselesaikan dengan
menggunakan metode eliminasi Gauss.
6. Bicubic Spline Interpolation
Bicubic spline interpolation adalah metode interpolasi yang digunakan untuk
mencari nilai dari fungsi di antara titik-titik data yang diketahui. Bicubic spline
interpolation melibatkan konsep spline dan konstruksi serangkaian polinomial kubik di
dalam setiap sel segi empat dari data yang diberikan. Pendekatan ini menciptakan
permukaan yang halus dan kontinu, memungkinkan untuk perluasan data secara visual
yang lebih akurat daripada metode interpolasi linear.
Pada interpolasi ini, digunakan 16 nilai yang berupa f (0 , 0), f (0 , 1) , f (1 , 0) ,

12
f (1 ,1), f x (0 , 0), f x (0 , 1), f x (1 , 0), f x (1 , 1), f y (0 , 0), f y (0 , 1), f y (1 , 0), f y (1 ,1), f xy (0 ,0),
f xy (0 ,1), f xy (1 , 0), f xy (1 , 1). 16 nilai tersebut dibuat menjadi matriks 16 x 1. Lalu terdapat
matriks 16 x 16 yang merepresentasikan hasil dari ke-4 persamaan ini.

Gambar 2.16. Rumus bicubic spline interpolation


Nantinya, akan mendapatkan bentuk persamaan matriks dan perkaliannya.
Bentuknya adalah y = Xa

Gambar 2.17. y = Xa pada bicubic spline interpolation


Setelah perkalian ini. Akan didapat persamaan dari matriks 16 x 1. Hasil a ij bisa
didapat dengan menyelesaikan persamaan f (x , y )=n a ij. Setelah mendapatkan hasil dari
a ij, barulah diproses f (a , b), dengan a dan b berada di rentang [0,1]. Dengan masukkan a
dan b tersebut. Gunakkan persamaan tersebut untuk mendapatkan f (a , b) tersebut.

13
Gambar 2.18. Rumus untuk mendapatkan f (a , b)
Dari persamaan ini, akan didapat hasil dari f (a , b) ini. Contoh persamaan-
persamaan yang dapat diterima adalah f (0.5 , 0.5), f (0.2 , 0.8).

BAB III
Implementasi Pustaka dan Program dalam Java

1. Class Matriks
Berikut adalah atribut yang dimiliki oleh Class Matriks:

Nama Tipe Deskripsi

m private int Jumlah baris matriks

n private int Jumlah kolom matriks

mat private float[][] Array float dari matriks

kramerpermit public boolean Izin output kalau sedang


melakukan proses determinan

invertible public boolean Matriks ini ada balikannya


atau tidak

detglobal public double Menyimpan determinan

para_string[] public String[100] String persamaan parameter

scInt static Scanner Membaca input bertipe int

scFlt static Scanner Membaca input bertipe float

scStr static Scanner Membaca input bertipe String

14
Berikut adalah daftar method yang dimiliki oleh Class Matriks:

Nama Tipe Parameter Deskripsi

Matriks Constructor - Inisialisasi matriks

createIdentitas static Matriks int m, int n Membuat matriks


identitas

extendMatriks public Matriks - Memperpanjang


matriks dengan
matriks identitas

getRow public int - Mendapatkan


jumlah baris
matriks

setRow public void int m Mengubah jumlah


baris matriks

getCol public int - Mendapatkan


jumlah kolom
matriks

setCol public void int n Mengubah jumlah


kolom matriks

setMatriks public void int m, int n Mengubah ukuran


matriks

getElmt public float int i, int j Mendapatkan


elemen matriks
dari index tertentu

setElmt public void int i, int j, float val Mengubah elemen


matriks dari index
tertentu

getElmtDoub public double int i, int j Mendapatkan


elemen matriks
bentuk double dari
index tertentu

setElmtDoub public void int i, int j, double val Mengubah elemen


matriks bentuk
double dari index

15
tertentu

isValidRowCol public boolean int m, int n True jika baris dan


kolom kurang dari
sama dengan
kapasitas
maksimum

isElmtZero public boolean int i, int j True jika elemen


yang didapat 0

isElmtZeroDoub public boolean int i, int j True jika elemen


yang didapat dari
matrix double
adalah 0

isRowZero public boolean int i True jika baris


matriksnya isinya 0
semua

isColZero public boolean int j True jika kolom


matriksnya isinya 0
semua

readMatriks public void - Membaca


masukkan matriks

cetakMatriks public void - Mendisplay


matriks di terminal

cetakMatriksDoub public void - Mendisplay


matriks double di
terminal

matrixToString public String - Mengubah matriks


menjadi string

transpose public Matriks - Men-transpose


matriks

multiplyMatriks static Matriks Matriks M1, Matriks M2 Mengalikan 1


matriks dengan
yang lain

multiplyMatriksWithK static Matriks Matriks M1, float K Mengalikan


matriks dengan
sebuah konstan

16
tukarBaris public void int a, int b Tukar 1 baris
matriks dengan
yang lain

kalikanBaris public void int i, float k Mengalikan baris


masukkan dengan
k masukkan

tambahBaris public void int a, int b, float k Menambahkan


baris masukkan
dengan baris
masukkan lainnya
yang sudah dikali k

tukarBarisDoub public void int a, int b Tukar 1 baris


matriks double
dengan yang lain

kalikanBarisDoub public void int i, double k Mengalikan baris


masukkan dengan
k masukkan (Untuk
matriks bentuk
double)

tambahBarisDoub public void int a, int b, double k Menambahkan


baris masukkan
dengan baris
masukkan lainnya
yang sudah dikali k
(Untuk matriks
bentuk double)

SPL static void - Memberi opsi


mengerjakan SPL

hasSolution public boolean - True jika ada solusi

uniqueSolution public boolean - True jika ada solusi


unik

removeNegZero public void - Mengubah -0.0


menjadi 0

removeNegZeroDoub public void - Mengubah -0.0


menjadi 0 di
matriks double

Gauss public void - Menyelesaikan

17
persamaan SPL
dengan metode
Gauss

GaussJordan public void - Menyelesaikan


persamaan SPL
dengan metode
Gauss-Jordan

GaussJordanDoub public void - Menyelesaikan


persamaan SPL di
matriks double
dengan metode
Gauss-Jordan

getParametricSolution public string float[] var_index, int n Mendapatkan


solusi parameter
dari SPL

metodeBalikan public Matriks - Mendapatkan


solusi SPL dari
matriks balikan

sparsity public int float[] var_index, int col Mendapatkan


jumlah elemen dari
sebuah baris

checkParametric public boolean int var_index, float[] Cek jika persamaan


var_array, int col masukkan adalah
persamaan
parameter

getSolution public Matriks String method Melakukan


pengerjaan solusi
SPL dari masukkan
method

Determinan static void - Memberi opsi


pengerjaan
determinan

DeterminanOBE public void - Mengerjakan


determinan dengan
metode OBE

Minor public Matriks float[][] m, int a, int b, Mencari matriks


int row, int col minor dari sebuah
elemen

18
DeterminanMinor public float Matriks m Mengerjakan
determinan dengan
metode Kofaktor
dan minor

Kramer public Matriks - Mendapatkan


solusi SPL dengan
metode Kramer

isSquare public boolean - Mengembalikan


true apabila jumlah
baris dan kolom
matriks sama

invers static void - Menu untuk


memilih metode
yang digunakan
untuk mendapatkan
matriks balikan

inversOBE public Matriks - Mendapatkan


matriks balikan
dengan metode
operasi baris
elementer

inversAdjoin public Matriks - Mendapatkan


matriks balikan
dengan metode
adjoin yang
melibatkan matriks
kofaktor

power static float float a, float b Mengembalikan


pangkat dari 2
variabel a dan b

interPol static void - Menginterpolasi


nilai fungsi pada
titik xk yang berada
di interval tertutup
[x0,xn]

regLinGanda static void - Melakukan regresi


linear terhadap
beberapa variabel
bebas dengan

19
memanfaatkan
beberapa sampel

BicubicSplineInterpolation static void - Menginterpolasi


titik yang berada di
rentang interval
[0,1] berdasarkan 4
poin normalisasi
dan memanfaatkan
nilai fungsi f
turunan parsial fx,
fy, fxy

ImageInterpolation static void Matriks m, float a, float b Menginterpolasi


gambar dengan
memanfaatkan
bicubic spline
interpolation

2. Class DriverMatriks
Class ini tidak memiliki atribut.
Nama Tipe Parameter Deskripsi

main public static void String[] args Program utama

3. Class FileHandling
Berikut adalah atribut yang dimiliki oleh Class FileHandling:
Nama Tipe Deskripsi

scInt static Scanner Membaca input bertipe int

scFlt static Scanner Membaca input bertipe float

scStr static Scanner Membaca input bertipe String

Berikut merupakan daftar method yang dimiliki oleh Class FileHandling


Nama Tipe Parameter Deskripsi

Read public static void String path, Matriks Membaca input


M matriks dari file
eksternal

Write public static void String output Menuliskan output ke

20
file eksternal

4. Class ImageScaling
Tidak ada atribut di Class ImageHandling
Berikut adalah daftar method yang dimiliki oleh Class ImageHandling
Nama Tipe Parameter

bacaImage static String String fileName

cetakImage static void String fileName,


BufferedImage img

getAij static Matriks Matriks I

BicubicSpline static float Matriks A, double x, double y

rgbAlpha static int int pixel

rgbRed static int int pixel

rgbGreen static int int pixel

rgbBlue static int int pixel

ImageInterpolator public static void -

5. Garis Besar Program


Program ini adalah program yang berisi pustaka untuk menentukan solusi SPL dengan
beberapa metode, menghitung determinan, menentukan invers sebuah matriks, dan menggunakan
pustaka tersebut untuk menyelesaikan persoalan seperti interpolasi polinom, regresi linier
berganda, interpolasi gambar, dan interpolasi bikubik spline. Program ini berbasis CLI dan
dijalankan dengan mengetik perintah berikut ini pada command line:

Gambar 3.1. Cara menjalankan program melalui command line.

Setelah memasuki program, pengguna akan melihat tampilan berupa menu dengan
beberapa pilihan perhitungan yang ingin dilakukan. Pilihan tersebut dapat memiliki sub-menu
untuk memilih metode perhitungan yang diinginkan, memilih opsi masukan, atau memilih opsi
penyimpanan luaran. Masukan dapat berasal dari ketikan pengguna ataupun dari sebuah file.
Terdapat juga opsi untuk menyimpan luaran program ke dalam suatu file. Setelah selesai
menjalankan sebuah fitur, pengguna akan dikembalikan ke menu utama dan dapat menggunakan
fitur-fitur lain atau keluar dari program.

21
Gambar 3.2. Tampilan menu utama program

Gambar 3.3. Contoh tampilan sub-menu untuk memilih opsi masukan

Gambar 3.4. Tampilan ketika keluar dari program


Program terdiri dari empat class. Class pertama adalah class Matriks. Class ini berisi
fungsi fungsi yang dapat melakukan operasi terhadap matriks, seperti menghitung solusi SPL,
determinan, invers matriks, interpolasi polinom, regresi linier berganda, dan interpolasi bicubic
spline.
Class kedua adalah class DriverMatriks yang berisi menu utama program dan berupa
driver dari seluruh program. Class ini mengandung menu yang berisi opsi-opsi fitur yang ingin
digunakan dan akan memanggil fungsi-fungsi pada class Matriks jika diberi masukan yang
sesuai oleh pengguna.
Class selanjutnya adalah class FileHandling yang berisi fungsi Read dan fungsi Write.
Fungsi Read akan menerima path dari suatu file dan akan membaca isi dari file tersebut untuk
diproses. Fungsi write berguna untuk menyimpan luaran yang dihasilkan oleh program ke dalam
suatu path yang diberikan oleh pengguna.
Class yang terakhir adalah class ImageScaling yang berisi fungsi-fungsi yang dibutuhkan
untuk melakukan perbesaran gambar. Pertama, akan diminta untuk memasukkan path dari
gambar, lalu akan diproses sampai gambar diperbesar sesuai keinginan pengguna. Terakhir,

22
pengguna akan menginput path untuk menjadi lokasi gambar yang diperbesar tersebut disimpan.
Beginilah contohnya.

Gambar yang
sebelah kiri adalah
gambar yang
berukuran 500 x 453 dan gambar yang sebelah kanan adalah gambar yang berukuran 5000 x
4530. Terlihat bahwa gambar berhasil diperbesar.

23
BAB IV
Eksperimen

1. Menentukan solusi dari SPL Ax = b


1.1.

1.2.

24
1.3.

25
1.4.

n=6

n = 10

26
2. Menentukan solusi SPL dalam matriks augmented
2.1.

27
2.2.

3. Menentukan solusi SPL berbentuk


3.1.

28
3.2.

4. Menentukan solusi x1,x2, dan x3 dari sistem reaktor dengan persamaan

29
5. Menentukan interpolasi polinom
5.1.

x = 0.2

30
x = 0.55

x = 0.85

x = 1.28

5.2.

16/07/2022

10/08/2022

31
05/09/2022

13/07/2022

5.3.

n = 10 dan misal ingin mencari f(1.1)

32
6. Menentukan regresi linear berganda

33
7. Menentukan bicubic spline interpolation

f(0,0) =

f(0,5,0,5) =

34
f(0,25,0,75) =

f(0,1,0,9) =

BAB V
Penutup

35
1. Kesimpulan
Berdasarkan implementasi dari program yang telah dirancang, dapat disimpulkan
beberapa poin berikut.
1.1. Program berbasis Command Line Interface (CLI) yang dapat menerima masukan
dari keyboard maupun dari file eksternal, serta dapat mencetak keluaran pada
layar maupun pada file eksternal.
1.2. Program tersusun atas 3 file (library), yakni Matriks.java sebagai library matriks
utama, DriverMatriks.java sebagai program utama, serta FileHandling.java
sebagai library untuk membaca dan menulis matriks dari/ke file eksternal.
1.3. Program terbagi menjadi 6 menu utama, yakni Sistem Persamaan Linier,
Determinan, Invers Matriks, Interpolasi Polinomial, Interpolasi Bicubic Spline,
dan Regresi Linier Berganda.
1.4. Detail dan teknis lebih lanjut mengenai library dan implementasi dari masing-
masing menu dapat dilihat pada bab III dan bab IV.

2. Saran dan Komentar


Ada beberapa saran dan komentar yang bisa kami dapatkan setelah merancang program
ini, yakni sebagai berikut.
2.1. Program dapat diberikan Graphical User Interface (GUI) agar pengguna bisa lebih
nyaman dalam menggunakan programnya dan tidak melihat terminalnya.
2.2. Kompleksitas algoritma dari program yang dibuat dapat diminimasi agar program
dapat berjalan dengan lebih efisien.
2.3. Perlu ada sistem pembulatan ke sekian angka dibelakang koma yang tetap agar
nilai dari matriks bisa didapat dengan lebih efisien.

3. Refleksi
Tubes ini adalah media yang baik untuk memperkenalkan kami dengan Object-
Oriented Programming melalui Java. Tubes ini juga adalah gambaran kami untuk tubes-
tubes kedepannya dan memberi kami insight yang baru tentang time-management dan
priority-management. Selain itu, tubes ini menjadi tempat kami untuk bonding dengan
satu sama lain dan belajar bagaimana bekerja sebagai satu tim karena tentu masih ada
kekurangan dari kami yang membuat tubes ini tidak selalu berjalan dengan mulus dan
hasilnya pun juga masih dapat dimaksimalkan.

36
DAFTAR REFERENSI

Anton, Howard. Elementary Linear Algebra with Applications Eleventh Edition. USA:
Wiley, 2014.
https://informatika.stei.itb.ac.id/~rinaldi.munir/AljabarGeometri/2023-2024/Algeo-03-
Sistem-Persamaan-Linier-2023.pdf (Diakses pada 28 September 2023)
https://informatika.stei.itb.ac.id/~rinaldi.munir/AljabarGeometri/2023-2024/Algeo-05-
Sistem-Persamaan-Linier-2023.pdf (Diakses pada 28 September 2023)
https://informatika.stei.itb.ac.id/~rinaldi.munir/AljabarGeometri/2023-2024/Algeo-08-
Determinan-bagian1-2023.pdf (Diakses pada 28 September 2023)
https://informatika.stei.itb.ac.id/~rinaldi.munir/AljabarGeometri/2023-2024/Algeo-09-
Determinan-bagian2-2023.pdf (Diakses pada 28 September 2023)

37

Anda mungkin juga menyukai