0% menganggap dokumen ini bermanfaat (0 suara)
196 tayangan28 halaman

Modul Komputasi

Praktikum komputasi geofisika

Diunggah oleh

Muhammad Irfan
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
196 tayangan28 halaman

Modul Komputasi

Praktikum komputasi geofisika

Diunggah oleh

Muhammad Irfan
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 28

MODUL PRAKTIKUM

KOMPUTASI GEOFISIKA (PTF-148)

Oleh:

SONI SATIAWAN S.T., M.Sc


SURYA BAKTI RANGKUTI
KHRISNA NOVIARDI
ARIE SATRIA

PROGRAM STUDI TEKNIK GEOFISIKA


JURUSAN TEKNIK KEBUMIAN
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS JAMBI
2017
TATA TERTIB PRAKTIKUM

1. Setiap praktikan diwajibkan membawa laptop yang telah terinstal software Matlab
dan Phyton demi kelancaran praktikum.
2. Setiap pertemuan praktikum akan terdapat:
 Tugas pendahuluan (tiket masuk untuk praktikum, diberitahukan 2 hari sebelum
praktikum dimulai)
 Test awal (dilakukan selama 10 menit di awal praktikum)
 Test akhir / post test (dilakukan 10 menit sebelum praktikum berakhir)
 Laporan Akhir (*format laporan terdapat pada halaman berikutnya)
3. Tidak ada toleransi keterlambatan untuk praktikan pada setiap pertemuan praktikum.
4. Sewaktu melaksanakan praktikum dilarang membuat onar atau kegaduhan.
5. Diwajibkan membawa modul praktikum setiap pertemuan praktikum dan dianjurkan
juga membawa bahan bacaan yang mendukung sewaktu praktikum berlangsung.
6. Laporan praktikum dikumpulkan H-1 sebelum praktikum dilaksanakan.
7. Dilarang melakukan plagiarism pada setiap laporan.
8. Praktikan diwajibkan menggunakan kemeja atau jaket Geofisika (diatur oleh
asisten), celana panjang, dan sepatu.

Nb: Adapun sanksi yang diterima praktikan apabila melanggar adalah tidak diperkenankan
mengikuti praktikum (dikeluarkan) dan pengurangan nilai praktikum.
*format Laporan : COVER

LAPORAN PRAKTIKUM KOMPUTASI GEOFISIKA 14pt


“JUDUL PRAKTIKUM” 14pt

NAMA PRAKTIKAN
NIM PRAKTIKAN

PROGRAM STUDI TEKNIK GEOFISIKA


JURUSAN TEKNIK KEBUMIAN
FAKULTAS SAINS dan TEKNOLOGI
UNIVERSITAS JAMBI
2017
*format Laporan : KONTEN LAPORAN

1. FLOWCHART : Adalah diagram alir proses pengerjaan pada praktikum


2. CODING : Berisikan coding-coding pada editor yang discreenshot
disertai dengan penjelasan coding-coding tersebut.
3. PROSES MANUAL : Adalah proses hitungan manual yang bertujuan untuk
membandingkan dengan hasil coding (jika ada).
Daftar Isi

Modul 1 : Matlab dan Dasar-Dasar Matlab


Modul 2 : Array dan Matrix
Modul 3 : Interaksi dengan Matlab
Modul 4 : Visualisasi dengan Matlab
Modul 5 : Pemograman
Modul 6 : GUI
Modul 7 : Pengenalan Fortran dan Python
MODUL 1
Matlab dan Dasar-Dasar Matlab

Matlab merupakan singkatan dari Matriks Laboratory yang diciptakan pada akhir
tahun 1970-an oleh Cleve Moler di Universitas New Mexico.MATLAB (Matrix Laboratory)
adalah sebuah program untuk analisis dan komputasi numerik dan merupakan suatu bahasa
pemrograman matematika lanjutan yang dibentuk dengan dasar pemikiran menggunakan sifat
dan bentuk matriks. Versi awal dari matlab digunakan untuk mata kuliah teori matriks,
aljabar linier, dan analisis numeric.Dengan masukan dari pengguna, maka matlab terus
berkembang hingga sekarang ini ditandai dengan pada versi sekarang ini matlab telah banyak
dilengkapi dengan banyak feature dan plugin yang mempermudah dalam melakukan
komputasi dengan jumlah yang banyak.

Matlab banyak dan sering digunakan pada:


a. Matematikan dan komputasi
b. Pengembangan dan algoritma
c. Pemograman, modelling, simulasi, dan pembuatan proto-type
d. Analisa data, eksplorasi dan visualisasi
e. Analisis numeric dan statistic
f. Pengembangan aplikasi teknik

1.1 Menggunakan Matlab dan Dasar-Dasar Matlab


MATLAB ® merupakan bahasa pemrograman tingkat tinggi yang dikembangkan oleh
MathWorksdandikhususkan untuk komputasi numerik, visualisasi, dan pemrograman.Dengan
memanfaatkanMATLAB, pengguna dapat melakukan analisis data, mengembangkan
algoritma, danmembuatmodel maupun aplikasi. Bahasa, tools, dan fungsi-fungsi built-in akan
memudahkanpengguna untukmengeksplorasi berbagai pendekatan dan memperoleh solusi
dengan lebih cepat dibandingkanapabila menggunakan spreadsheets atau bahasa
pemrograman tradisional, seperti C/C++ atauJava™. MATLAB menggunakan konsep
array/matrik sebagai standar variabel elemennya tanpamemerlukan pendeklarasian array
seperti pada bahasa lainnya.Selain itu juga dapat diintegrasikandengan aplikasi dan bahasa
pemrograman eksternal seperti C, Java, .NET, dan Microsoft® Excel®.

Ketika memulai menjalankan matlab, jendela utama akan terlihat seperti gambar berikut.
Gambar 1.Tampilan window utama Matlab.
Keterangan gambar:
 Current folder – untuk mengakses file-file pada direktori saat ini.
 Command Window – untuk menuliskan perintah (sintak program).
 Workspace – untuk mengeksplorasi data yang dibuat atau diimport dari file lain.
 Command History – untuk melihat atau menjalankan kembali perintah yang pernah
dimasukkan sebelumnya pada command line.

Melakukan pemograman dengan matlab dapat menggunakan command window (menuliskan


secara langsung perintah) atau dengan menggunakan M-file (syntak ditulis terlebih dahulu
sebelum dieksekusi).

Latihan 1.
Ketiklah kode-kode berikut pada command window anda masing-masing!

% MATLAB programming
% by : (put your name here)

clear all
clc

disp(‘hello guys, I am a MATLAB programmer wanna be right now’)


disp(‘and This is my first program to calculate the area of a rectangular’)

length = 10;
wide = 5;
area = length * wide;
disp([‘area=’ num2str(area)]);

TUGAS 1
1. Salinlah program pertama anda seperti latihan 1 ke dalam bentuk M-file!
2. Tampilkan variable ‘length’ dan ‘wide’!
3. Simpan program anda tersebut dengan nama ‘programku1’ dan eksekusi program
anda tersebut!
4. Coding, dan hasil eksekusi harus dilampirkan dalam bentuk laporan!

1.1.1 Sintak pada Matlab


MATLAB memiliki sintak tersendiri seperti bahasa pemograman lainnya.Pada MATLAB
hanya
terdapat dua tipe data, yaitu numerik dan string.Seperti yang telah disebutkan sebelumnya,
tidak dibutuhkan pendeklarasian secara eksplisitkarena tipe data akan dikenali oleh
MATLAB secara otomatis. Namun demikian terdapat beberapahal 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 dikenalMATLAB.

Penulisan data tunggal


x = 10
Penulisan data berdimensi banyak (array/ matrix)
x = (1:10) %array
y= [1 2 3;4 5 6]
Data string
x = ‘hola’

Operator Matematika Matlab : Colon; generates regularly


spaced elements and
Operator Purpose represents an entire row or
column.
+ Plus; addition operator.
() Parentheses; encloses
- Minus; subtraction function arguments and
operator. array indices; overrides
precedence.
* Scalar and matrix
multiplication operator. [] Brackets; enclosures array
elements.
.* Array multiplication
operator. . Decimal point.

^ Scalar and matrix … Ellipsis; line-continuation


exponentiation operator. operator

.^ Array exponentiation , Comma; separates


operator. statements and elements in
a row
\ Left-division operator.
; Semicolon; separates
columns and suppresses
/ Right-division operator.
display.
.\ Array left-division operator.
% Percent sign; designates a
comment and specifies
./ Array right-division
formatting.
operator.
_ Quote sign and transpose Ans Most recent answer.
operator.
Eps Accuracy of floating-point
._ Nonconjugated transpose precision.
operator.
i,j The imaginary unit √-1.
= Assignment operator.
Inf Infinity.

Karakter special pada Matlab NaN Undefined numerical result


(not a number).

Name Meaning Pi The number π

1.1.2 Variabel pada Matlab

Latihan 2

x=7*8
y=x*sqrt(16)
sqrt(564)
sqrt(564)/ans

initial_velocity=0;
acceleration=9.82;
time=20;
final_velocity=acceleration*time+initial velocity;

1.1.3 Format Command pada Matlab


Terdapat beberapa penulisan format yang berkaitan pada penulisan decimal pada matlab
sebagai berikut:
a. Pendek
format short
x=7*10/3+5^1.2
b. Panjang
format short
x=7*10/3+5^1.2
c. Format penulisan keuangan
formatbank
Daily_wage=177.576
Weekly_wage=Daily_wage*6
d. Format dalam bentuk eksponential
format short e
x=7*10/3+5^1.2
format long e
x=7*10/3+5^1.2
e. Format perbandingan (ratio)
Format rat
x=7*10/3+5^1.2

1.1.4 Vektor pada Matlab


Sebuah vektor merupakan array satu dimensi, pada Matlab dimungkinkan untuk membuat
dua tipe dari vektor yaitu vektor baris dan vektor kolom.
r=[1 2 3 4 5];
s=[5 6 7 8 9];
t=r+s;

c=[1;2;3;4;5];

1.1.5 Command (Perintah) pada Matlab


Command Purpose Fungsi format
Format Display up to
Clc Clears command window. Function

Clear Removes variables from format Four decimal digits


memory. short (default).

Exist Checks for existence of format 16 decimal digits.


file or variable. long

Global Declares variables to be format Five digits plus


global. short e exponent.

Help Searches for a help format 16 digits plus


topic. long e exponents.

lookfor Searches help entries format Two decimal digits.


for a keyword. bank

Quit Stops MATLAB. format + Positive, negative, or


zero.
Who Lists current variables.
format rat Rational
Whos Lists current variables approximation.
(long display).
format Suppresses some line
compact feeds.
Input dan Output Command
Command Purpose format Resets to less compact
loose display mode.
Disp Displays contents of an
array or string.
Vektor, matrix command
fscanf Read formatted data from Command Purpose
a file.
Cat Concatenates arrays.
format Controls screen-display
format. Find Finds indices of
nonzero elements.
fprintf Performs formatted
writes to screen or Length Computes number of
file. elements.

input Displays prompts and linspace Creates regularly


waits for input. spaced vector.

; Suppresses screen logspace Creates


printing. logarithmically
spaced vector.
Max Returns largest Deal Matches input and
element. output lists.

Min Returns smallest Iscell Identifies cell


element. array.

Prod Product of each


column. Plotting Command
Command Purpose
Reshape Changes size.

Size Computes array size. axis Sets axis limits.

Sort Sorts each column. fplot Intelligent plotting of


functions.
Sum Sums each column.
grid Displays gridlines.
Eye Creates an identity
matrix. Plot Generates xy plot.

Ones Creates an array of Print Prints plot or saves plot to a


ones. file.

Zeros Creates an array of Title Puts text at top of plot.


zeros.
Xlabel Adds text label to x-axis.
Cross Computes matrix cross
products. Ylabel Adds text label to y-axis.

Dot Computes matrix dot Axes Creates axes objects.


products.
Close Closes the current plot.
Det Computes determinant
of an array. close all Closes all plots.

Inv Computes inverse of a Figure Opens a new figure window.


matrix.
Gtext Enables label placement by
Pinv Computes mouse.
pseudoinverse of a
matrix. Hold Freezes current plot.

Rank Computes rank of a Legend Legend placement by mouse.


matrix.
refresh Redraws current figure
Rref Computes reduced row window.
echelon form.
Set Specifies properties of
Cell Creates cell array. objects such as axes.

Celldisp Displays cell array. subplot Creates plots in subwindows.

Cellplot Displays graphical Text Places string in figure.


representation of
cell array. Bar Creates bar chart.

num2cell Converts numeric Loglog Creates log-log plot.


array to cell array.
Polar Creates polar plot.
Semilogx Creates semilog plot. stairs Creates stairs plot.
(logarithmic abscissa).
stem Creates stem plot.
semilogy Creates semilog plot.
(logarithmic ordinate).

TUGAS 2
1. Buatlah program untuk menghitung harga x dan y dari persamaan berikut ini,
a. 2x + 3y = 4
5x + 6y = 7

b. 2x - 6y = 4
6x - 8y = 10

Lampirkan program anda beserta hasilnya. Lampirkan program dan hasil programnya ?
Ditambah flowchart serta tuliskan nama nim anda di script yang akan dilampirkan
MODUL 2
Array dan Matrix
Pada matlab terdapat tiga cara menyatakan sebuah matrix. Cara pertama adalah sebagai
berikut (matrix yang akan diinisiasi adalah matrix A pada tugas 3 modul 1),

clear all
clc
A(1,1)=2;A(1,2)=4;A(1,3)=7;A(2,1)=1;A(2,2)=4;A(2,3)=9;A(3,1)=5;A(3,2)=5;A(3,3)=6;
A

Cara kedua adalah sebagai berikut,

A=[2 4 7
1 4 9
5 5 6]

Sedangkan cara ketiga adalah,

A=[2 4 7;1 4 9;5 5 6]

2.1 Manipulasi matrix pada matlab


a. Operasi transpose
Operasi transpose adalah mengubah elemen baris pada sebuah matrix menjadi elemen
kolom. Pada matlab operasi ini dapat dilakukan dengan menambahkan tanda petik (‘)
setelah nama matrix.

A=[2 4 7;1 4 9;5 5 6]; AT=A’

b. Penjumlahan matrix
Penjumlahan antara matrix hanya dapat dilakukan jika ukuran dari matrix tersebut
sama. Jika ukuran dari matrix tidak sama, maka matrix tidak akan dapat dijumlahkan.
Jika A dan C adalah matrix berukuran 2x3 dan D merupakan A+C, maka secara
matematis,
 d11 d12 d13   a11 a12 a13   c11 c12 c13 
d  
 21 d22 d23  a21 a22 a23  c21 c22 c23 

jika dijabarkan satu persatu maka,s


d11=a11+c11 d12=a12+ c12 d13=a13+c13
d21=a21+c21 d22=a22+ c22 d23=a23+c23
Persamaan diatas dapat disederhanakan menjadi,dij= aij+ cijdimana i =1,2 dan j=1, 2,
3.
Dari persamaan di atas maka secara script penjumlahan matrix A dan Matrix B pada
Matlab adalah sebagai berikut,

clear all; clc


% proses penjumlahan secara matematis (cara pertama)
a=[2 3 4;5 6 7]; c=[4 8 0;2 5 8];%inisiasi matrix a dan matrix b
d(1,1)=a(1,1)+c(1,1); d(1,2)=a(1,2)+c(1,2);d(1,3)=a(1,3)+c(1,3); %perubahan
pada elemen kolom dari 1 hingga 3
d(2,1)=a(2,1)+c(2,1); d(2,2)=a(2,2)+c(2,2); d(2,3)=a(2,3)+c(2,3);%perubahan
pada elemen kolom dari 1 hingga 3
d
----------------------------------------------------------------------------
---
% proses penjumlahan dengan memamfaatkan bahasa komputasi (CARA KEDUA)
% gunakan indeks i dan j sebagai alat bantu, dimana i merupakan elemen baris
matrix dan j adalah elemen kolom.i dari 1 hingga 2 dan j dari 1 hingga 3.
% maka proses penjumlahan matrix a dan c adalah sebagai berikut

for j=1:3% for merupakan fungsi untuk melakukan pengulangan (looping) pada
elemen kolom
d(1,j)=a(1,j)+c(1,j); % looping untuk elemen baris
end% setelah proses looping selesai maka harus ditutup dengan end!!

forj=1:3
d(2,j)=a(2,j)+c(2,j);
end

d
----------------------------------------------------------------------------
--
% Dari cara kedua terlihat, selain elemen kolom (j) yang berulang dari 1
hingga 3, elemen baris (i) juga berulang dari 1 hingga 2. elemen baris
berulang setelah pengulangan elemen kolom selesai dilooping. Sehingga,

for i=1:2
for j=1:3
d(I,j)=a(I,j)+c(I,j);
end
end
----------------------------------------------------------------------------
---
d
----------------------------------------------------------------------------
---

TUGAS 1
Buatlah script program untuk menjumlahkan dua matrix A dan matrix B dengan
ukuran 5 x 7. (setiap praktikan harus berbeda pada harga matrix)!!
Buat juga script program untuk mengurangkan dua buah matrix A dan Matrix yang
berukuran sama!!

c. Perkalian matrix
Matrix dapat dikalikan jika kolom matrix pertamasama dengan baris matrix kedua,
dengan demikian kedua matrix tidak harus memiliki ukuran yang sama. Selain itu jika
sebuah matrix dikalikan dengan matrix inversnya maka akan menghasilkan matrix
identitas. Untuk melakukan perkalian antara elemen, maka gunakan operator (.*):
b=a.*a tidak sama dengan a*a
b=a.^2 tidak sama dengan a^2
a*a = a^2.
Secara matematis, perkalian matrix dapat diturunkan sebagai berikut,
 c11 c12 
 d11 d12   a11 a12 a13  
    c21 c22 
 d 21 d 22   a21 a22 a23  c
 31 c32 
Perkalian matrix di atas dapat dijabarkan sebagai berikut,
d11  a11.c11  a12 .c21  a13 .c31 di1  ai1.c11  ai 2 .c21  ai 3 .c31
d12  a11.c12  a12 .c22  a13 .c32 di 2  ai1.c12  ai 2 .c22  ai 3 .c32
d 21  a21.c11  a22 .c21  a23 .c31 di1  ai1.c11  ai 2 .c21  ai 3 .c31
d 22  a21.c12  a22 .c22  a23 .c32 di 2  ai1.c12  ai 2 .c22  ai 3 .c32

d11  a11.c11  a12 .c21  a13 .c31 dij  ai1.c1 j  ai 2 .c2 j  ai 3 .c3 j
d12  a11.c12  a12 .c22  a13 .c32 dij  ai1.c1 j  ai 2 .c2 j  ai 3 .c3 j
d 21  a21.c11  a22 .c21  a23 .c31 dij  ai1.c1 j  ai 2 .c2 j  ai 3 .c3 j
d 22  a21.c12  a22 .c22  a23 .c32 dij  ai1.c1 j  ai 2 .c2 j  ai 3 .c3 j

d11  a11.c11  a12 .c21  a13 .c31 dij  aik .ckj  aik .ckj  aik .ckj
d12  a11.c12  a12 .c22  a13 .c32 dij  aik .ckj  aik .ckj  aik .ckj
d 21  a21.c11  a22 .c21  a23 .c31 dij  aik .ckj  aik .ckj  aik .ckj
d 22  a21.c12  a22 .c22  a23 .c32 dij  aik .ckj  aik .ckj  aik .ckj

Dari ketiga persamaan di atas terlihat bahwa terdapat 3 indeks bantuan yang digunakan dalam
perkalian matrix yaitu indeks i, j, dan k (sebagai indeks bantuan).Penentuan indeks sangat
menentukan untuk proses looping/ pengulangan. Script perkalian matrix diatas dapat dibuat
seperti berikut,

clear all; clc


% proses perkalian secara matematis (cara pertama)
a=[2 3 4;5 6 7]; c=[4 8;02;5 8];%inisiasi matrix a dan matrix b
d(1,1)=a(1,1).c(1,1)+a(1,2).c(2,1)+a(1,3).c(3,1);%indeks ‘k’ berulang dari
1:3
d(1,2)=a(1,1).c(1,2)+ a(1,2).c(2,2)+a(1,3).c(3,2);%indeks ‘j’ berulang dari
1:2
d(2,1)=a(2,1).c(1,1)+ a(2,2).c(2,1)+a(2,3).c(3,1);%perubahan pada indeks ‘i’
d(2,2)=a(2,1).c(1,2)+ a(2,2).c(2,2)+a(2,3).c(3,2);

% penjabaran untuk menghitung d(1,1)


D(1,1)=0
d(1,1)=d(1,1)+a(1,1).c(1,1);
d(1,1)=d(1,1)+a(1,2).c(2,1);
d(1,1)=d(1,1)+a(1,3).c(3,1);

%terlihat ada pengulangan dari 1:3, dengan demikian script di atas dapat
diubah menjadi berikut ini,
d(1,1)=0;
for k=1:3
d(1,1)=d(1,1)+a(1,k)*c(k,1);
end
% dengan demikian untuk d(1,2), d(2,1), d(2,2) juga akan memiliki script
yang sama.

d(1,2)=0 % menghitung matrix d(1,2) terjadi pengulangan pada indeks j


for k=1:3
d(1,2)=d(1,2)+a(1,k)*c(k,2)
end

d(2,1)=0 %indeks i berubah menjadi 2 dan indeks j kembali menjadi 1


for k=1:3
d(2,1)=d(2,1)+a(2,k)*c(k,1);
end

d(2,2)=0 % indeks i tetap (2) dan indeks j meningkat menjadi 2


for k=1:3
d(2,2)=d(2,2)+a(2,k)*c(k,2);
end

% proses diatas dapat disederhanakan sebagai berikut


for i=1:2
for j=1:2
d(i,j)=0;
end
end

for i=1:2
for j=1:2
for k=1:3
d(i,j)=d(i,j)+a(i,k)*c(k,j);
end
end
end
d
----------------------------------------------------------------------------
---
d. Menghapus baris dan kolom matrix
Baris dan kolom pada matrix juga dapat dihapus dengan menggunakan matrix kosong
([]). Misalkan, a = magic (5); lalu kolom 3 ingin dihapus maka dapat
menggunakan, a(:,3)=[], a. Bagaimana jika ingin menghapus baris pada matrix?

Tugas 2
a. Buatlah matrix seperti berikut ini,
2 4 7 1 2 5 
A  1 4 9  B   2 3 2
5 5 6   4 4 1 

Buatlah script perkalian antara matrix Adengan matrix B dan perkalian masing-
masing matrix dengan matrix identitasnya.
b. Buatlah script program perkalian sebuah matrix berukuran 5x3 yang dikalikan dengan
sebuah vektor.
c. Buatlah script menghitung 5! (faktorial) dan 8! (faktorial)!
MODUL 3
Interaksi dengan MATLAB

3.1 Fungsi
Matlab memudahkan para pengguna untuk berinteraksi dengan file internal (fungsi) serta
file eksternal. Pada dasarnya setiap perintah yang ada di matlab merupakan sebuah fungsi
yang diletakan pada toolbox yang mudah untuk diakses. Walaupun matlab telah
menyediakan fungsi, user pun dapat membuat fungsi yang sesuai dengan kebutuhan user
dan dapat digunakan untuk program lain.

Pada modul ini akan dipaparkan sistematika fungsi pada matlab serta latihan untuk
membangun sebuah fungsi. Berikut adalah struktur sebuah fungsi pada matlab,

function[out 1, out 2,...]=Nama_fungsi(input1, input2, input 3,…)


%penjelasan tentang fungsi
-perintah serta script pada fungsi
-perintah serta script pada fungsi

Berikut adalah beberapa contoh fungsi (penjumlahan, perkalian matrix, dan


perpangkatan sebuah bilangan).

Fungsi penjumlahan dua buah matrix.


--------------------------------------------------------------
---
function D=jumlah(A,C)
--------------------------------------------------------------
---
%ini merupakan fungsi untuk menjumlahkan dua matrix.
%sebelum menggunakan (memanggil) fungsi ini, maka inisiasi
terlebih dahulu matrix yang akan dijumlahkan.
%setelah menginisiasi matrix yang akan dijumlahkan,
selanjutnya serahkan kepada fungsi ini bekerja untuk anda.
%cara menggunakan fungsinya sebagai berikut
%D = jumlah(A,C)
--------------------------------------------------------------
---

inisiasi elemen matrix


dim_A=size(A);dim_B=size(B);
k=dim_A(1);l=dim_A(2);m=dim_B(1);n=dim_B(2);

if dim_A==dim_B==1
for i=1:k
for j=1:l
E(i,j)=A(i,j)+B(i,j);
End
end;
results=num2str(E)
else
disp('Hey you, Do you wanna make me Mad?')
disp('I will kill you if you are still playing with me!!')
end

Setelah membuat script fungsi seperti di atas, simpan script fungsi ini sesuai dengan
nama fungsi ketika dipanggil atau digunakan. Pada script ini, nama fungsi adalah ‘jumlah’.
Setiap kali menggunakan fungsi ini pada script program anda, pastikan file fungsi anda
tersimpan dalam direktori kerja yang sama. Lalu cara menggunakan fungsi tersebut adalah
sebagai berikut.
-----------------------------------------------------------------------------------
---
A=[1 4;3 4;9 8];
B=[21 3;4 8;6 7];

D=jumlah(A,B);
-----------------------------------------------------------------------------------
---

TUGAS
1. Buatlah fungsi perkalian dengan menggunakan script yang telah anda buat pada
pertemuan sebelumnya.
HintNama fungsi terserah anda, namun harus yang mudah diingat ketika akan
menggunakan fungsi tersebut.

2. Buatlah fungsi untuk memangkatkan sebuah bilangan, contoh 10^5.


Hint: gunakan algoritma ketika melakukan factorial.

3.2 Interaksi dengan file eksternal


Selain dapat membuat fungsi sendiri sesuai kebutuhan user, matlab juga dapat
berinteraksi dengan file eksternal. Dua buah fungsi yang sering digunakan untuk
berinteraksi dengan file luar matlab adalah save, digunakan untuk menyimpan
memori pada matlab menjadi file, dan load, digunakan untuk memanggil file eksternal
agar dapat dibaca oleh memory matlab. Beberapa file yang dapat dibaca oleh matlab
antara lain, file ascii (*.txt) dan file Microsoft excel (*.xlsx).

Untuk lebih jelas mengenai interaksi matlab dengan file eksternal, anda dapat explore
nantinya melalui help matlab atau internet.
MODUL 4
Visualisasi dengan MATLAB

4.1 Plotting
Setiap data geofisika akan lebih mudah untuk dianalisa jika dapat divisualkan. Terdapat
beberapa cara dalam memvisualisasikan data geofisika antara lain dengan plotting (2D
dan 3D) serta contour (with shading ataupun without shading). Berikut ini adalah salah
satu cara dalam melakukan ploting pada matlab. Terdapat beberapa bentuk dari fungsi
plot dan ini bergantung kepada argument input seperti berikut,

a. Jika y merupakan sebuah vektor, maka sintak plot(y) akan menghasilkan sebuah
grafik linier. Sumbu x merupakan nilai indeks dari elemen y dan sumbu y merupakan
harga dari vektor y tersebut.
b. Jika terdapat dua buah vektor (x,y), maka plot(x,y) akan menghasilkan grafik y
terhadap x.

Sebagai contoh, coba buat grafik nilai harga sinusdari x (0 – 2pi)! Selain itu buat juga grafik
nilai harga cosines (x) dari 0 – 2 pi).

x=0:360; y=sin(x);
plot(x,y); grid on; title(‘plot sinus’); xlabel(‘x’); ylabel(‘sinus dari
x’)
-----------------------------------------------------------------------------------
---
Sekarang coba tuliskan script seperti berikut ini,
-----------------------------------------------------------------------------------
---
x = 0:360; y=sin(x*pi/180);
plot(x,y,’v’);
----------------------------------
Bagaimana hasilnya?

TUGAS
1. Buatlah grafik sinus dan cosines dari sudut 0 – 2*pi. Plot kedua grafik tersebut dalam
sebuah gambar.

2. Buatlah program T-X diagram dari data seismik refraksi. (data diberikan asisten)

3. Ada system diskrit sbb:


Sinyal pertama: x[i]= 1 2 3
Sinyal kedua: h[i]= 2 1 3

Cari konvolusi 2 sinyal tersebut secara manual dan dengan MATLAB.


MODUL 5
Pemograman Data Geofisika

5.1 Data Gravity


Tujuan dari pengolahan data adalah memproses data hasil akuisisi menjadi data yang
dapat diinterpretasikan agar lebih mudah dipahami. Data hasil pegukuran perlu dikoreksi,
misalnya koreksi alat, tidak dipenuhi asumsi teoritis dengan fakta di lapangan dan
sebagainya. Sebagai contoh dalam gravity nilai gravity mengacu ada suatu datum
tertentu, biasanya sea level sementara pengukuran yang dilakukan adalah pada
permukaan tanah (di atas sea level). Karena itu lperlu koreksi yang seolah-olah
mengembalikan hasil pengukuran ke sea level. Disamping masalah diatas hasil
pengukuran biasanya masih bercampur dengan noise-noise yaitu sesuatu yang
mengganggu sinyal yang akan diukur. Kadang kala noise ini demikian besarnya sehingga
“menenggelamkan” sinyal.

Hukum yang mendasari metode gaya berat adalah Hukum Gravitasi Newton yang
menunjukkan bahwa sifat massa dari benda-benda di alam dimana besarnya massa
tersebut sangat menentukan besarnya gaya tarik menarik di antara benda tersebut. Secara
matematis besarnya gaya tarik menarik tersebut dinyatakan dalam persamaan berikut :

𝑚1 𝑚2
𝐹=𝐺 𝑟̂
𝑟2
TUGAS
Diketahui,
Data Gravitasi (G)= 6,7 x 10³ ,Jari-jari (R)= 5 , Densitas (∆p)=8 , x=30 , xo= 150 , pi = 3,14
Plotting menggunakan Microsoft Excel terlebih dahulu kemudian transformasikan ke
MATLAB

MODUL 6
GUI / Kalkulator Sederhana

GUI atau guide merupakan salah satu tools fungsi pada Matlab yang digunakan untuk
mendesain dan mengembangkan tampilan aplikasi antarmuka yang interaktif. Guide sendiri
bermanfaat untuk dapat mempermudah pemakaian aplikasi yang telah dibuat pada editor.
Berikut ini adalah tahapan dalam membuat gui berupa kalkulator sederhana:
1. Hal yang pertama kali dilakukan adalah menampilkan tools gui.
Guide > Blank (Gui Default) > Save figure pada path Matlab > Ok.

2. Berikut ini adalah tampilan kerja pada Gui. Sebelah kiri merupakan editor gui,
sedangkan bagian kanan merupakan window untuk mendesain GUI

3. Selanjutnya adalah membuat nama aplikasi menggunakan tools static text, untuk
dapat mengeditnya cukup double clik pada konten, maka akan muncul gui inspector,
dimana pada window ini kita dapat melakukan pengeditan pada konten yang dibuat.
Lakukan hal yang sama untuk nilai 1, nilai 2 dan hasil.

4. Langkah berikutnya adalah membuat edit text yang berfungsi sebagai input-an dan
output dari GUI.
Pada pembuatan edit text ini perlu diperhatikan pada bagian Tag yang akan berfungsi
sebagai input output.

5. Membuat button tambah, kurang, kali dan bagi

Untuk dapat digunakan, tombol tersebut harus dibuat terlebih dahulu dibuat callback
dan proses kalkulasinya pada editor.
Lakukan hal yang sama untuk tombol yang lainnya.
6. Lakukan percobaan untuk menguji apakah GUI sudah dapat dijalankan.

TUGAS
1. Buatlah kalkulator trigonometri (kurva sinusoidal dan cosinusoidal)
2. Kerjakan tugas modul 5 dengan menggunakan GUI.
MODUL 7
Pengenalan Fortran dan Phyton

6.1 Sejarah Phyton


Phyton adalah bahasa pemograman interpretatif multiguna dengan filosofi
perancangan yang berfokus pada tingkat keterbacaan kode. Phyton diklaim sebagai bahasa
yang menggabungkan kapabilitas, kemampuan dengan sintaksi kode yang sangat jelas, dan
dilengkapi dengan fungsionalitas pustaka standar yang besar serta komprehensif.
Python sendiri dikembangkan oleh Guido van Rossum pada tahun 1990 di CWI,
Amsterdam sebagai kelanjutan dari bahasa pemrograman ABC. Versi terakhir yang
dikeluarkan CWI adalah 1.2.
Tahun 1995, Guido pindah ke CNRI sambil terus melanjutkan pengembangan Python.
Versi terakhir yang dikeluarkan adalah 1.6. Tahun 2000, Guido dan para pengembang inti
Python pindah ke BeOpen.com yang merupakan sebuah perusahaan komersial dan
membentuk BeOpen PythonLabs. Python 2.0 dikeluarkan oleh BeOpen. Setelah
mengeluarkan Python 2.0, Guido dan beberapa anggota tim PythonLabs pindah ke
DigitalCreations.
Saat ini pengembangan Python terus dilakukan oleh sekumpulan pemrogram yang
dikoordinir Guido dan Python Software Foundation. Python Software Foundation adalah
sebuah organisasi non-profit yang dibentuk sebagai pemegang hak cipta intelektual Python
sejak versi 2.1 dan dengan demikian mencegah Python dimiliki oleh perusahaan komersial.
Saat ini distribusi Python sudah mencapai versi 2.6.1 dan versi 3.0.
Nama Python dipilih oleh Guido sebagai nama bahasa ciptaannya karena kecintaan
Guido pada acara televisi Monty Python's Flying Circus. Oleh karena itu seringkali
ungkapan-ungkapan khas dari acara tersebut seringkali muncul dalam korespondensi antar
pengguna Python.

6.1.1 Fitur pada Phyton


Beberapa fitur yang dimiliki Phyton adalah:
 memiliki kepustakaan yang luas; dalam distribusi Python telah disediakan modul-
modul 'siap pakai' untuk berbagai keperluan.
 memiliki tata bahasa yang jernih dan mudah dipelajari.
 memiliki aturan layout kode sumber yang memudahkan pengecekan, pembacaan
kembali dan penulisan ulang kode sumber.
 berorientasi objek.
 memiliki sistem pengelolaan memori otomatis (garbage collection, seperti java)
 modular, mudah dikembangkan dengan menciptakan modul-modul baru; modul-
modul tersebut dapat dibangun dengan bahasa Python maupun C/C++.
 memiliki fasilitas pengumpulan sampah otomatis, seperti halnya pada bahasa
pemrograman Java, python memiliki fasilitas pengaturan penggunaan ingatan
komputer sehingga para pemrogram tidak perlu melakukan pengaturan ingatan
komputer secara langsung.
 memiliki banyak faslitas pendukung sehingga mudah dalam pengoprasiannya.
Berikut adalah contoh program sederhana yang dibuat menggunakan bahasa
pemograman Phyton. Dan dibawah ini adalah program untuk mencari luas bangun datar
segitiga.

Setelah selesai, lihat hasilnya dengan menekan tombol F5 (Run). Dan dibawah ini
adalah hasil dari script diatas.

6.2 Fortran
Fortran (atau FORTRAN) adalah sebuah bahasa pemrograman. Pertama kali
dikembangkan pada tahun 1956 oleh John Backus di IBM.Digunakan dalam bidang sains
selama 50 tahun kemudian.Ditujukan untuk mempermudah pembuatan aplikasi matematika,
ilmu pengetahuan, dan tehnik.Pertama kali bernama FORTRAN yang merupakan singkatan
dari Formula Translator/Translation, tetapi penggunaan huruf besar kemudian ditiadakan
sejak versi Fortran 90. Merupakan bahasa pemrograman tingkat tinggi pertama dan
prosedural, akan tetapi versi-versi terbaru dari Fortran kemudian dikembangkan dengan
memasukkan kemampuan object-oriented programming. Unggul pada dukungan dalam
menangani bentuk perhitunga, termasuk bilangan kompleks. Kelemahannya pada operasi
input/output yang lalu. Kode sumbernya juga sulit dipahami dibanding bahasa pemrograman
tingkat tinggi lainnya.

Anda mungkin juga menyukai