1
SI – 2201 METODA NUMERIK
TUGAS 1 PEMROGRAMAN FORTRAN
Kelompok 04 Bernoulli
Kevin Daffa Arrahman 15015111
Ramadhan Dwi Kurniawan 15015112
Nauviero Farizi Syarif 15015113
Azmi Zain 15015114
Nicholas Kevin Juandi 15015115
Gelasius Galvindy 15015116
Anugerah Tito Pambudi 15015117
Christopher Gilbert 15015118
Dominix 15015119
Restika Risnu 15015120
Dosen : Prof. Ir. Binsar Hariandja, M.Eng., Ph.D
PROGRAM STUDI TEKNIK SIPIL
FAKULTAS TEKNIK SIPIL DAN LINGKUNGAN
INSTITUT TEKNOLOGI BANDUNG
2017
DAFTAR ISI
BAB I 3
PENDAHULUAN 3
1.1 Latar Belakang 3
1.2 Tujuan 4
BAB II 5
TEORI DASAR 5
2.1 Matriks 5
2.2 Operasi Matriks 5
2.3 Jenis Matriks 6
2.4 Metode Gauss Jordan dalam Invers Matriks 7
BAB III 10
PROGRAM 10
3.1 Syarat Matriks Dalam Menggunakan Program 10
3.2 Diagram Alir 10
3.3 Program 12
3.4 Cara Penggunaan Program 12
3.5 Script Program 12
BAB IV 16
KESIMPULAN DAN SARAN 16
4.1 Kesimpulan 16
4.2 Saran 16
BAB V 17
PENUTUP 17
DAFTAR PUSTAKA 18
BAB I
PENDAHULUAN
1.1 Latar Belakang
Zaman semakin berkembang, kebutuhan dan keinginan manusia juga semakin lama semakin bervariasi. Dalam rangka memenuhi kebutuhan-kebutuhan tersebut tentunya diperlukan suatu ilmu. Pada bahasan kali ini, kita akan lebih berfokus pada bidang rekayasa.
Masalah-masalah rekayasa terkadang muncul dengan tiba-tiba. Perkara-perkara tersebut bisa saja mudah namun bisa juga rumit. Contoh masalah yang rumit adalah masalah yang hanya dapat diselesaikan dengan menggunakan matriks. Matriks sendiri juga memiliki banyak metode yang membuat penyelesaian masalah menjadi semakin rumit.
Penyelesaian masalah dengan menggunakan matriks memiliki banyak metode. Pada makalah ini, hanya akan dibahas metode invers matriks. Metode ini pada umumnya digunakan untuk menyelesaikan masalah dengan variabel yang banyak dalam kehidupan sehari-hari. Waktu penyelesaian manual akan sangat lama jika variabel yang ingin dicari jumlahnya banyak. Inovasi dalam mempercepat penyelesaian masalah dengan metode diatas sangatlah dibutuhkan agar permasalahan di lapangan juga dapat diselesaikan dengan waktu yang jauh lebih cepat dibandingkan sebelumnya.
Teknologi komputer berkembang dengan sangat cepat dibandingkan bidang ilmu lainnya. Ilmu ini juga banyak membantu permasalahan di bidang lain seperti transportasi, kedokteran, dan keinsinyuran. Dengan memanfaatkan ilmu komputer, kita dapat membuat banyak perhitungan menjadi lebih cepat. Permasalahan perhitungan perkalian matriks yang terlalu lama dapat diselesaikan dengan menggabungkan ilmu metode numerik dengan ilmu komputer. Pembuatan program penghitung dengan metode tersebut dapat dilakukan dengan mengetahui prinsip dasar metode tersebut dan mengetahui bahasa pemrograman itu sendiri.
Penggunaan komputer dalam perhitungan sangatlah efektif. Proses perhitungan dengan cara manual yang biasanya dilakukan dalam waktu belasan menit dapat disingkat menjadi hitungan detik atau bahkan kurang dari satu detik dengan menggunakan program komputer. Maka dari itu, pembuatan program sangatlah dibutuhkan.
1.2 Tujuan
Menyelesaikan perhitungan invers matriks orde bebas dengan cepat
Memenuhi tugas kuliah kelas metoda numerik
BAB II
TEORI DASAR
2.1 Matriks
Matriks adalah kumpulan bilangan, simbol, atau ekspresi, yang tersusun dalam baris dan kolom. Adapun matriks ditandai dengan kurung ( ( ) ) atau kurung siku ( [ ] ) sebelum dan sesudah matriks. Sebuah matriks mempunyai ukuran yang disebut dengan ordo. Ordo matriks berbentuk a x b dengan a banyak baris dan b banyak kolom. Seperti contohnya, matriks dengan 2 baris dan 3 kolom yaitu
Pemanfaatan matriks misalnya dalam menemukan solusi sistem persamaan linear. Penerapan lainnya adalah dalam transformasi linear, yaitu bentuk umum dari fungsi linear, misalnya rotasi dalam 3 dimensi.
Matriks seperti halnya variabel biasa dapat dimanipulasi, seperti dikalikan, dijumlah, dikurangkan dan didekomposisikan. Dengan representasi matriks, perhitungan dapat dilakukan dengan lebih terstruktur.
Dalam penotasiannya, seringkali menggunakan huruf kapital (seperti A), dan ordo atau seterusnya dengan huruf kecil.
2.2 Operasi Matriks
Adapun matriks digunakan untuk memecahkan masalah-masalah, seperti persamaan linier. Maka dari itu, matriks dapat diberlakukan beberapa operasi seperti pada tabel di bawah ini,
Tabel 1. Operasi Matriks
Operasi
Definisi
Contoh
Penjumlahan dan pengurangan
Penjumlahan A+B dari mxn matriks A dan B sesuai indeksnya:
(A + B)i,j = Ai,j+ Bi,j,dimana 1 i m dan 1 j n.
{\displaystyle {\begin{bmatrix}1&3&1\\1&0&0\end{bmatrix}}+{\begin{bmatrix}0&0&5\\7&5&0\end{bmatrix}}={\begin{bmatrix}1+0&3+0&1+5\\1+7&0+5&0+0\end{bmatrix}}={\begin{bmatrix}1&3&6\\8&5&0\end{bmatrix}}}
Perkalian
Perkalian dua matriks didefinisikan jika dan hanya jika jumlah kolom dari matriks kiri adalah sama dengan jumlah baris dari matriks sebelah kanan. Jika A adalah matriks m x n dan B adalah matriks n x p, maka produk matriks mereka AB adalah matriks m x p yang entri diberikan oleh produk titik baris yang sesuai dari A dan sesuai kolom B:
{\displaystyle 2\cdot {\begin{bmatrix}1&8&-3\\4&-2&5\end{bmatrix}}={\begin{bmatrix}2\cdot 1&2\cdot 8&2\cdot -3\\2\cdot 4&2\cdot -2&2\cdot 5\end{bmatrix}}={\begin{bmatrix}2&16&-6\\8&-4&10\end{bmatrix}}}
Tidak ada pembagian dalam matriks dikarenakan tidak ada kondisi yang memampukan matriks dibagi oleh matriks lainnya.
Jenis Matriks
Matriks Baris
Matriks yang hanya mempunyai satu baris saja. Secara umum, ordo matriks baris berbentuk 1 x n dengan n menentukan banyak kolom dari matriks tersebut
Matriks Kolom
Matriks kolom adalah matriks yang hanya terdiri dari satu kolom saja. Dalam ordonya, m x 1.
Matriks Nol
Matriks yang semua komponennya bilangan nol (0).
Matriks Persegi
Matriks persegi adalah matriks yang memiliki baris dan kolom sama banyak. Maka bisa dinotasikan An x n dimana n menyatakan baris dan kolom. Matriks ini juga biasa disebut sebagai matriks persegi berordo n. Pada matriks ini terdapat diagonal utama, yaitu komponen matriks yang letak barisnya sama dengan letak kolomnya, seperti A11, A22, dst.
Matriks Segitiga Atas
Matriks persegi dimana semua komponen di bawah diagonal utamanya adalah nol (0).
Matriks Segitiga Bawah
Layaknya matriks segitiga atas, namun nol (0) di atas diagonal utama.
Matriks Diagonal
Matriks ini termasuk matriks persegi karena mensyaratkan banyak baris sama dengan banyak kolom. Suatu matriks persegi disebut sebagai matriks diagonal jika semua komponen diagonal utamanya tidak nol dan semua komponen lainnya nol.
Matriks Skalar
Matriks skalar adalah matriks diagonal dengan semua komponen diagonal utamanya merupakan bilangan yang sama. Jika komponen diagonal utamanya 1, matriks tersebut dinamakan matriks identitas.
Matriks Identitas
Seperti yang telah dijelaskan di matriks skalar, bahwa matriks identitas memiliki komponen diagonal utamanya 1 dan lainnya nol.
2.4 Metode Gauss Jordan dalam Invers Matriks
Prosedur ini didasarkan pada konsep untuk melakukan operasi spesifik pada Augmented Matrices dalam rangka menyederhanakannya ke bentuk dimana solusi dari sistem dapat dipastikan dengan melakukan pemeriksaan.
Metode Gauss-Jordan ini menghasilkan matriks dengan bentuk baris eselon yang tereduksi (reduced row echelon form), sementara eliminasi Gauss hanya menghasilkan matriks sampai pada bentuk baris eselon (row echelon form).
Bentuk Gauss-Jordan untuk invers matriks:
dimana
A = Matriks
I = Matriks Identitas
= Invers Matriks
Contoh mencari invers matriks dengan metode Gauss-Jordan:
Dengan Gauss-Jordan Elimination, bentuknya jadi seperti ini:
Operasi aritmatika berpua penjumlahan, pengurangan, pengalian dan pembagian bisa digunakan untuk menyelesaikan invers matriks ini.
1 .Sekarang kita kurangkan baris ketiga dengan 5x baris pertama.
2. Tambahkan baris ketiga dengan 4x baris kedua.
3. Kurangkan baris kedua dengan 4x baris ketiga.
4. Kurangkan juga baris pertama dengan 3x baris ketiga.
5. Kurangkan baris pertama dengan dua kali baris kedua.
Bagian di sebelah kanan adalah invers matriks A
Gauss-Jordan bisa digunakan untuk mencari invers matriks berorde berapapun, selama matriksnya merupakan matriks persegi.
BAB III
PROGRAM
3.1 Syarat Matriks Dalam Menggunakan Program
Dalam menggunakan program ini untuk mencari suatu invers matriks, dibutuhkan beberapa syarat matriks yang diperlukan, yaitu :
Dimensi matriks diketahui
Dimensi matriks persegi
Matriks non-singular (memiliki invers)
3.2 Diagram Alir
Berikut diagram alir dalam proses program
3.3 Program
Program disusun dalam bahasa FORTRAN dengan nama program 'INVMAT.FOR'. Susunan program dapat dilihat pada script program.
3.4 Cara Penggunaan Program
Pastikan matriks diketahui dimensinya dan merupakan matriks persegi serta non-singular.
Input matriks pada file 'MATRIKS M.DAT'.
Ubah nilai 'S' yang merupakan jumlah elemen pada sisi matriks pada baris ke-14 di program. Misalnya matriks 4×4 maka S=4. (default, S = 3).
Ubah Format Output sesuai yang diinginkan pada baris ke-126 dengan aturan :
sFw.m
s = jumlah elemen pada sisi matriks (sama dengan point 3).
w = jumlah karakter yang akan keluar, penghitungan karakter termasuk tanda positif/negatif, angka, dan titik.
m = jumlah angka dibelakang titik.
3.5 Script Program
PROGRAM FORTRAN : INVMAT.FOR
PROGRAM INVMAT
C DEKLARASI VARIABEL
C S=SISI MATRIKS
C M=MATRIKS INPUT
C I=MATRIKS IDENTITAS
C M=TEMPORARY MATRIKS INPUT
C TI=TEMPORARY MATRIKS INDENTITAS
C H=MATRIKS HASIL
C TUKAR=MATRIKS UNTUK PENUKARAN BARIS
C C=KONSTANTA PENGALI
C D=PEMBAGI
C TF=TRUE FALSE
INTEGER, PARAMETER :: S=3 !UBAH INI SESUAI SISI MATRIKS
REAL, DIMENSION(S,S) :: M,I,TM,TI,H
REAL, DIMENSION(1,S) :: TUKARM, TUKARI
REAL :: C, D
LOGICAL :: TF
C MEMBUKA FILE INPUT DAN OUTPUT
OPEN (UNIT=2,FILE='MATRIKS M.DAT',STATUS='OLD')
OPEN (UNIT=3,FILE='INVERS M.DAT',STATUS='UNKNOWN')
C INISIALISASI NILAI ELEMEN
DO 02 J=1,S
DO 01 K=1,S
M(J,K)=0.0
I(J,K)=0.0
TM(J,K)=0.0
TI(J,K)=0.0
H(J,K)=0.0
01 CONTINUE
02 CONTINUE
C MEMBACA MATRIKS
DO 10 J=1,S
READ(2,*) (M(J,K), K=1,S)
10 CONTINUE
C TRANSFER M KE TM
DO 12 J=1,S
DO 11 K=1,S
TM(J,K)=M(J,K)
11 CONTINUE
12 CONTINUE
C MEMBUAT MATRIKS IDENTITAS
DO 22 J=1,S
DO 21 K=1,S
IF (J==K) THEN
I(J,K)=1.0
ELSE
I(J,K)=0.0
END IF
21 CONTINUE
22 CONTINUE
C TRANSFER I KE TI
DO 24 J=1,S
DO 23 K=1,S
TI(J,K)=I(J,K)
23 CONTINUE
24 CONTINUE
C JIKA ELEMEN MATRIKS (1,1) = 0 ; DITUKAR
IF (TM(1,1)==0) THEN
TF=.FALSE.
DO 62 J=2,S
DO 61 WHILE (TF.EQV..FALSE.)
IF(TM(J,1)/=0) THEN
DO 60 K=1,S
TUKARM(1,K)=TM(1,K)
TM(1,K)=TM(J,K)
TM(J,K)=TUKARM(1,K)
TUKARI(1,K)=TI(1,K)
TI(1,K)=TI(J,K)
TI(J,K)=TUKARI(1,K)
60 CONTINUE
TF=.TRUE.
END IF
61 CONTINUE
62 CONTINUE
END IF
C LEADING ONE
IF (TM(1,1)/=1) THEN
D=TM(1,1)
DO 30 K=1,S
TM(1,K)=TM(1,K)/D
TI(1,K)=TI(1,K)/D
30 CONTINUE
END IF
C GAUSS JORDAN 0
DO 33 L=1,S
DO 32 J=1,S
IF (L/=J) THEN
C=(-TM(J,L))/(TM(L,L))
DO 31 K=1,S
TM(J,K)=TM(J,K)+(C*TM(L,K))
TI(J,K)=TI(J,K)+(C*TI(L,K))
31 CONTINUE
END IF
32 CONTINUE
33 CONTINUE
C GAUSS JORDAN 1
DO 35 J=1,S
D=TM(J,J)
DO 34 K=1,S
TM(J,K)=TM(J,K)/D
TI(J,K)=TI(J,K)/D
34 CONTINUE
35 CONTINUE
C HASIL
DO 42 J=1,S
DO 41 K=1,S
H(J,K)=TI(J,K)
41 CONTINUE
42 CONTINUE
C OUTPUT
DO 50 J=1,S
WRITE(3,1002) (H(J,K), K=1,S)
1002 FORMAT(3F7.4) !UBAH INI SESUAI FORMAT OUTPUT YANG DIINGINKAN
50 CONTINUE
STOP
END PROGRAM INVMAT
BAB IV
KESIMPULAN DAN SARAN
4.1 Kesimpulan
Penyelesaian invers matriks dengan metode Gauss-Jordan dapat dilakukan dengan menggunakan Fortran. Pembuatan program diawali dengan membreakdown logika pemrogaman prosedur invers matriks dan menjadikannya diagram alir. Selanjutnya, program dibuat dengan mengikuti diagram alir logika pemrograman tersebut. Program secara keseluruhan dapat dilihat pada lampiran program.
4.2 Saran
Dalam melakukan coding Fortran, sering kali hasil yang diinginkan tidak didapatkan pada percobaan pertama. Terus lakukan trial and error, periksa tiap line coding hingga progam berhasil dijalankan.
Untuk membuat program yang menjalankan suatu fungsi tertentu, kita perlu memahami logika pemrograman dari fungsi yang akan kita jadikan program. Fungsi utama tersebut kita breakdown menjadi fungsi-fungsi lebih kecil yang bisa diterjemahkan dalam bahasa Fortran. Oleh karena itu, membuat diagram alir dari logika pemrograman fungsi yang akan kita buat programnya sangatlah penting.
Perhatikan variabel yang nilainya ingin dipertahankan dengan frekuensi tertentu pada looping.
BAB V
PENUTUP
Demikianlah makalah yang kami buat, semoga bermanfaat dan menambah wawasan bagi orang yang membaca makalah ini. Penulis juga memohon maaf apabila ada kesalahan dan kekurangan dalam penulisan kata ataupun kalimat yang tidak jelas dan kurang bisa dimengerti. Untuk kedepannya, penulis akan lebih fokus dan lebih rinci dalam menjelaskan makalah dengan sumber-sumber yang lebih banyak.
Dengan dibuatnya makalah ini, penulis mengharapkan pembaca akan bertambah motivasinya dalam mempelajari pemrograman fortran dan lebih memahami tentang mudahnya invers matriks orde bebas dengan menggunakan program fortran ini.
Sekian penutup dari kami semoga berkenan di hati dan kami ucapkan terima kasih yang sebesar-besarnya.
DAFTAR PUSTAKA
Catatan Kuliah Dr. Eng. Febri Zukhruf. Matematika Rekayasa (Sistem Persamaan Linear). Institut Teknologi Bandung.
"Mencari Invers Matriks Gauss-Jordan" (http://ahzae.blogspot.co.id/2011/10/mencari-invers-matriks-gauss-jordan.html, laman diakses 7 Februari 2017 pk. 21.55 WIB)