Modul Komputasi
Modul Komputasi
Oleh:
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
NAMA PRAKTIKAN
NIM PRAKTIKAN
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.
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.
Latihan 1.
Ketiklah kode-kode berikut pada command window anda masing-masing!
% MATLAB programming
% by : (put your name here)
clear all
clc
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!
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;
c=[1;2;3;4;5];
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
A=[2 4 7
1 4 9
5 5 6]
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
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,
%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.
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,
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.
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)
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.
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
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.