Tim Penyusun :
Indriati Retno Palupi, S.Si., M.Si.
Wiji Raharjo, S.Si., M.Sc.
Tim Asisten Komputasi Geofisika
Nama :
NIM : a
Plug :
Puji syukur kehadirat Allah SWT atas segala rahmat, hidayah dan inayahNya sehingga
kami dapat menyelesaikan Modul Praktikum Komputasi ini dengan baik. Modul Praktikum ini
disusun bersama-sama tim dosen pengampu mata kuliah Komputasi Geofisika dan Inversi
Geofisika dan Tim Asisten Komputasi Geofisika untuk memberikan petunjuk praktikum bagi
mahasiswa Jurusan Teknik Geofisika Universitas Pembangunan Nasional “Veteran”
Yogyakarta.
Pada pelaksanaannya mahasiswa diharapkan dapat mengaplikasikan metode Numerik
dan Pemrograman dalam penerapannya di bidang Komputasi Geofisika. Selain itu mahasiswa
juga diharapkan telah mempersiapkan dasar teori dari beberapa buku referensi yang telah
tersedia di perpustakaan. Pelaksanaan praktikum ini meliputi pre-test, pengamatan/pelaksanaan
praktikum, dan pembuatan laporan sementara pada saat setelah praktikum. Untuk laporan akhir
disusun satu minggu setelah pelaksanaan ke dalam loker dosen pengampu.
Pada kesempatan ini kami mengucapkan banyak terimakasih kepada semua pihak yang
telah membantu dalam penelitian ini. Terutama kepada dosen-dosen Teknik Geofisika UPN
“Veteran” Yogyakarta yang telah memberikan masukan saran dan kritik.
Demikian pengantar dari kami semoga buku panduan praktikum ini dapat bermanfaat
dan dapat menambah ilmu pengetahuan untuk semua pihak yang menggunakan panduan ini,
terimakasih.
Tim Penyusun
II
DAFTAR ISI
DAFTAR PUSTAKA
LAMPIRAN
BAB I
F.Tab Menu
C.Current B.Workspace
Folder Window Window
A.Command Window
E.Command
D.Details Window History Window
1
BAB I MATLAB DAN ALGORITMA
a) Command Window
Command Window adalah jendela Command tempat interaksi utama MatLab. Pada
Command Window terdapat tanda “>>” yang merupakan prompt Matlab untuk mengekesekusi
perintah-perintah yang telah diprogram. Pada command window dapat dilakukan suatu proses
seperti meng-input variabel, melakukan perhitungan matriks, plotting variabel dan
memperlihatkan hasil perhitungan yang dilakukan. Pekerjaan pada command window bersifat
real time yang artinya segala bentuk proses dan hasilnya bila ingin disimpan dilakukan secara
manual satu per satu, dimana variabel awal dan hasil berbentuk matriks disimpan terpisah
dengan hasil berupa grafik.
b) Workspace Window
Workspace window merupakan jendela dimana keluaran dari setiap pekerjaan yang
dilakukan di MatLab seperti variabel atau hasil perhitungan ditampilkan. Pada jendela
workspace juga dapat dilakukan perubahan terhadap variabel – variabel keluaran dari setiap
pekerjaan yang dilakukan. Setiap keluaran dari pekerjaan yang dilakukan pada MatLab dapat
disimpan sebagai file berekstensi (*.mat) dimana variabel – variabel dapat disimpan satu – persatu
atau disimpan sekaligus.
Current Folder Window merupakan jendela yang menampilkan lokasi directory dari file
MatLab yang dijalankan atau tersimpan. Lokasi directory dari file MatLab yang akan
dijalankan akan otomatis diarahkan, karena setiap eksekusi file MatLab perlu dilakukan pada
directory tempat file MatLab disimpan.
d) Details Window
Details window merupakan jendela yang menampilkan komentar pada baris pertama
setiap page break dan setiap tombol fungsi pada script GUI. Details window mempermudah
kita untuk melakukan perubahan terhadap script yang dibuat pada editor window, dimana lebih
mudah untuk mencari letak kesalahan berdasarkan bagian – bagian yang dibuat dan
ditampilkan pada jendela ini.
Command History Window merupakan jendela yang menampilkan history dari pekerjaan
yang dilakukan di MatLab, mulai dari proses inputan pada command window sampai aktifitas
pekerjaan scrip.
2
f) Tab Menu
Pada tab menu, ada beberapa menu yang digunakan sesuai dengan keperluan. Default
menu yang terdapat pada MatLab ada 3, yaitu Home menu, Plots menu, dan Apps menu. Ada
beberapa menu yang munncul ketika editor window dibuat, dimana menu – menu ini digunakan pada
editor menu. Menu – menu itu antara lain Editor menu, Publish menu, dan View menu. Home menu
digunakan untuk melakukan eksekusi dasar seperti membuat halaman editor baru, mengatur layout
tampilan jendela, import dan export data, serta pengaturan terhadap MatLab. Pada Plots menu
digunakan untuk melakukan visualisasi data yang berada pada workspace window. Visualisasi data
dapat berupa 2D atau 3D sesuai kebutuhan. Program MatLab juga menyediakan aplikasi – aplikasi
sainstik pada apps menu dimana aplikasi – aplikasi umum sudah ada dan tinggal digunakan, serta dapat
di-download pada website resmi.
Ketika dibuat sebuah jendela editor yang baru, 3 menu akan muncul pada tab menu. Menu – menu
itu antara lain editor menu, publish menu, dan view menu. Editor menu digunakan untuk melakukan
eksekusi pada script pada jendela editor, dimana eksekusi – eksekusi yang dilakukan dalam kategori
file, navigation, edit, breakpoint, dan run. Publish menu digunakan untuk melakukan publikasi
terhadap script dan hasilnya, dimana bentuk dari publikasi ini berbentuk file berekstensi (.html). View
menu digunakan untuk mengatur tampilan dari jendela editor, dimana perletakan, ukuran dan
banyaknya jendela editor dapat kita atur dalam menu ini.
Gambar 1.2. Menu – Menu Pada Tab Menu Matlab (Matlab Versi R2017.A)
3
BAB I MATLAB DAN ALGORITMA
Spasi, tanda (,) dan tanda (:) antar elemen memisahkan data secara horisontal atau
membentuk kolom matriks (untuk tanda (:), bila membentuk suatu interval, akan
membentuk matriks kolom dengan jumlah elemen sesuai interval yang dibuat).
Tanda (;) antar elemen memisahkan data secara vertikal atau membentuk baris matriks.
Untuk matriks berordo tertentu, elemen – elemen matriks harus seimbang jumlahnya.
Bila antar data tidak ada spasi ataupun tanda yang memisahkannya, data – data tersebut
akan dieksekusi sebagai 1 elemen matriks.
Bila tidak ada elemen matriks yang diinput, maka akan dieksekusi sebagai elemen kosong.
Gambar 1.3. Bentuk – Bentuk Matriks Yang Dihasilkan Dari Setiap Penulisan Dan Output Pada
Workspace.
4
Bentuk matriks yang dapat di bentuk pada MatLab menggunakan fungsi yang disediakan
dapat digunakan sesuai kebutuhan (fungsi – fungsi pembentuk matriks dapat dilihat pada
kamus), misalnya untuk membentuk sebuah matriks identitas dapat digunakan fungsi ones.
Operasi matematika pada matriks pada dasarnya sama dengan operasi matematika biasa,
seperti penambahan, pengurangan, perkalian dan pembagian, hanya saja perkalian dan
pembagian pada matriks ada yang melibatkan hanya elemen tiap matriksnya saja tetapi juga
ada juga yang melibatkan array pada matriks.
Sistem persamaan linear merupakan kumpulan dari sejumlah persamaan linear (pangkat
satu) yang sering dinyatakan dalam bentuk :
dengan y adalah vektor kolom, A adalah matriks dan x adalah variabel yang dicari nilainya.
Penyelesaian persamaan linear dapat dilakukan dengan menggunakan invers matriks.
Langkahnya adalah dengan mengalikan invers matriks A pada kedua ruas dari persamaan
tersebut di atas sehingga diperoleh persamaan:
=( . A)x
= x
Persamaan terakhir menunjukkan bahwa nilai x diperoleh dengan mengalikan invers matrik A
dengan vektor kolom y.
1.3. Algoritma
Teks algoritma berisi deskripsi langkah – langkah penyelesaian masalah. Deskripsi tersebut
dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.
Tidak ada notasi yang baku dalam penulisan algoritma seperti notasi bahasa pemrograman.
Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmit.
Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini
dikarenakan teks algoritma tidak sama dengan teks program. Namun supaya notasi
algoritma mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka
sebaiknya notasi algoritmik berkorespondensi dengan notasi bahasa pemrograman secara
umum.
Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi
algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer,
pseudocode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam
notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis program
sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalankannya.
Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh
komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman.
Perlu diingat bahwa setiap algoritma perlu ditranslasikan ke dalam bahasa pemrograman
yang digunakan, karena pseudocode dalam algoritma tidak dapat dijalankan oleh komputer.
Dapat dilihat pada gambar 1.4 bahwa proses translasi dari algoritma ke bahasa pemrograman
yang digunakan akan mudah dilakukan apabila notasi atau susunan algoritma jelas.
6
Gambar 1.4. Proses Translasi Atau Terjemah Dari Suatu Algoritma Ke Dalam Suatu Bahasa
Pemrograman (Algoritma Pengolahan Seismik Refraksi Ke Pseudocode Matlab).
Perintah – perintah yang disusun dalam bahasa pemrograman yang dipilih dapat disusun
sesuai dengan algoritma yang dibentuk. Perlu diperhatikan bahwa berbagai model algoritma
yang ada memiliki susunan dan pseudocode yang berbeda pula. Dalam menyusun algoritma,
ada 3 model algoritma yang dapat digunakan untuk menyusun sebuah algoritma, yaitu :
1) Model pengulangan.
2) Model runtunan.
3) Model pemilihan.
7
BAB I MATLAB DAN ALGORITMA
1) Model Perulangan
Pada algoritma dengan model perulangan, pemecahan masalah yang digunakan dilakukan
dengan cara mencari hasil yang mendekati kebenaran dari interval data yang dimiliki.
Maksudnya adalah untuk mencari hasil yang diinginkan, diperlukan perhitungan yang berulang
secara terus – menerus sehingga mencapai syarat yang diinginkan dalam suatu interval.
Pseudocode dalam MatLab yang umum digunakan dalam model ini adalah for-end, while-end,
if-else-end, dan if-end.
2) Model Runtunan
Model runtunan merupakan model yang umum digunakan untuk menyusun sebual
algoritma. Model ini cukup mudah untuk dibuat, karena model ini dibentuk dari proses
pemecahan masalah yang dilakukan secara bertahap. Jadi untuk dapat membangun model ini,
kita harus memahami urutan langkah kerja dalam pemecahan masalah.
3) Model pemilihan
Dalam model algoritma pemilihan, diperlukan beberapa kondisi untuk menyelesaikan suatu
permasalahan. Kondisi dalam suatu permasalahan ini dipilih berdasarkan bentuk permasalahan
dan hasil yang diinginkan. Dalam model pemilihan hasil yang didapatkan bisa berupa sebuah
solusi atau beberapa solusi. Pseudocode dalam MatLab yang umum digunakan dalam model
ini adalah if-end, switch-case-end, dan if-elseif-end.
Pada dasarnya proses pemrograman pada MatLab menggunakan pseudocode yang telah
disediakan oleh MatLab itu sendiri. Berbeda dengan aplikasi pemrograman yang lain,
pseudocode yang tersedia dalam MatLab mempermudah proses pemrograman karena fungsi
matematika telah tersedia dan akan langsung muncul hasil bila kita menggunakan fungsi yang
tersedia serta menginput variabel. Proses translasi algoritma ke pseudocode MatLab cukup
mudah, mengingat pseudocode yang disediakan oleh MatLab disesuaikan dengan fungsi
matematika yang kita ketahui. Sebelum melakukan translasi dari algoritma ke pseudocode
MatLab, diperlukan kemampuan untuk menyusun sebuah algoritma yang baik.
8
awal yang berisi data – data dari beberapa parameter. Hal yang perlu dilakukan dalam
menyusun sebuah algoritma yang baik adalah :
Menentukan target dari algoritma, yaitu berupa hasil yang diinginkan, baik itu berbentuk
data maupun berbentuk visualisasi.
Menentukan bentuk algoritma yang dibuat. Hal ini dapat ditentukan dari masalah dan target
yang ingin dicapai, dimana dibutuhkan pemahaman tentang proses pemecahan masalah
untuk mencapai target yang ditentukan.
Memperhatikan parameter – parameter yang dibutuhkan dalam algoritma dan tidak
dibutuhkan. Hal ini perlu dilakukan mengingat penambahan variabel yang tidak diproses
akan membuat algoritma menjadi tidak efisien.
Memperhatikan aturan dalam penulisan variabel dan fungsi pada MatLab (dapat dilihat
pada kamus), dimana salah dalam penulisan tidak dapat dieksekusi oleh MatLab.
Contoh pada kasus sistem persamaan non – linear dengan pendekatan numerik metode
tertutup (metode bagi dua). Pada kasus ini parameter awal yang dimiliki berupa persamaan dan
hasil yang ingin didapatkan berupa akar persamaan dan ditentukan menggunakan metode bagi
dua. Langkah – langkah yang dilakukan untuk mendapatkan hasil akar persamaan yang
memenuhi persamaan dengan metode bagi dua adalah :
1. Menentukan selang terkecil (a) dan selang terbesar (b) yang mengandung minimal satu
buah akar serta menentukan nilai toleransi.
2. Mencari nilai selang terkecil (fxa) dan nilai selang terbesar (fxb) yang memenuhi
persamaan.
3. Mengalikan nilai selang terkecil (fxa) dan nilai selang terbesar (fxb), kemudian memilih
langkah yang akan diambil berdasarkan syarat dari metode bagi dua, jika fxa*fxb<0, maka
persamaan memiki akar dan proses dilanjutkan, jika fxa*fxb>0, maka tidak memiliki akar
dan proses dihentikan. Bentuk algoritma ini merupakan bentuk algoritma pemilihan.
4. Menentukan syarat perhitungan, dimana nilai absolut dari hasil persamaan (fx) lebih dari
nilai toleransi, maka perhitungan akan diulang sampai syarat tidak terpenuhi atau nilai
absolut dari hasil persamaan (fx) kurang dari nilai toleransi.
5. Mencari nilai hasil bagi 2 (x0) antara selang terkecil (a) dan selang terbesar (b), kemudian
nilai ini digunakan untuk mencari nilai yang memenuhi persamaan (fx) sehingga didapat
nilai hasil persamaan (fx0).
6. Menentukan syarat pemilihan selang yang baru, dimana syarat yang pertama hasil
perkalian nilai persamaan pada selang terkecil dengan nilai persamaan pada hasil bagi dua
9
BAB I MATLAB DAN ALGORITMA
antar selang kurang dari 0 (fxa*fx0<0), maka nilai persamaan pada hasil bagi dua menjadi
selang terbesar (fx0=fxb). Jika hasil perkalian nilai persamaan pada selang terkecil dengan
nilai persamaan pada hasil bagi dua antar selang kurang dari 0 (fxa*fx0>0), maka nilai
persamaan pada hasil bagi dua menjadi selang terkecil (fx0=fxa). Proses ini kemudian
kembali lagi ke nomor 4 sampai syarat terlewati.
Dari parameter awal, tujuan dan proses di atas maka dapat dibangun skema algoritma sebagai
berikut :
10
Bagian 1
Bagian 2
Bagian 3
Bagian 4
Bagian 6
Bagian 7
Bagian 8
Bagian 5
Bagian 8
Gambar 1.5. Diagram Algoritma Yang Dapat Dibentuk Dari Langkah – Langkah Yang Diketahui.
11
BAB I MATLAB DAN ALGORITMA
b. Proses Translasi
Setelah dibentuk suatu algoritma yang mudah dipahami, kemudian dilakukan proses
translasi. Dimulainya proses translasi sebaiknya dilakukan secara berurutan mulai dari awal.
Contohnya jika kita telah memiliki algoritma seperti pada gambar 1.5, maka dapat dimulai
translasi sesuai bagian – bagian yang ada. Proses itu dapat dilakukan sebagai berikut :
Bagian 1
Pada bagian ini, dibuat sebuah fungsi pada file function yang berbeda dengan persamaan
yang akan dicari akarnya, sehingga membentuk :
Bagian 2
Inti pada bagian ini adalah untuk membuat variabel – variabel yang akan digunakan, yaitu
batas terbesar, batas terkecil dan nilai toleransi sehingga membentuk :
Bagian 3
Pada bagian ini dilakukan proses subtitusi nilai x dengan nilai batas terkecil dan terbesar,
sehingga terbentuk :
12
Bagian 4
Pada bagian ini, proses yang dilakukan adalah melakukan uji awal apakah persamaan
memiliki akar persamaan dengan syarat yang ditentukan, sehingga membentuk :
Bagian 5
Pada bagian ini, dibuat suatu perulangan perhitungan, di mana proses mencari akar didapat
dari proses membagi dua antara selang tertinggi dengan selang terendah, sehingga terbentuk :
Bagian 6
Yang dilakukan pada bagian ini adalah proses membagi dua antara titik selang tertinggi
dengan titik selang terendah sehingga mendapatkan nilai tengah yang baru. Untuk membantu
proses perulangan perlu dibuat sebuah variabel indeks baru untuk menunjukan iterasi ke berapa
proses ini telah terjadi, dimana pembentukan indeks hanya cukup ditambah dengan satu,
sehingga membentuk :
13
BAB I MATLAB DAN ALGORITMA
Bagian 7
Proses yang terjadi pada bagian ini adalah setelah dilakukannya pembagian antar titik
selang tertinggi dengan terendah, terbentuk titik baru. Titik baru ini kemudian ditentukan
sebagai selang tertinggi atau selang terendah sehingga terbentuk algoritma pemilihan untuk
memilih apakah titik yang baru merupakan selang terendah atau selang tertinggi berdasarkan
syarat yang digunakan, sehingga membentuk :
Bagian 8
Pada bagian ini, jika syarat perulangan sudah tidak terpenuhi atau nilai toleransi didapatkan
maka nilai akhir merupakan solusi dari persamaan yang ada. Bentuk pseudocode yang dapat
dibuat berbentuk :
Bila seluruh pseudocode yang ada disatukan, maka akan terlihat sebagai berikut :
14
Gambar 1.14. Bentuk Pseudocode Secara Utuh.
15
BAB II
Jumlah elemen – elemen pada setiap variabel atau ukuran matriks setiap variabel sama.
Variabel yang memiliki elemen NaN atau nan akan tetap dieksekusi, namun dalam
visualisasinya (khususnya visualisasi 3 dimensi) tidak akan ditampilkan atau kosong.
Pada visualisasi 3 dimensi yang memerlukan proses gridding, jumlah elemen dalam setiap
variabel akan mempengaruhi klinerja komputer yang digunakan, sehingga bila memiliki
data yang cukup besar, perlu dilakukan beberapa perubahan algoritma.
Pada visualisasi 3 dimensi, parameter – parameter yang dapat divisualisasikan umumnya
berbentuk geometri atau keruangan, sehingga bila data berbentuk selain dari geometri atau
keruangan (misalnya densitas) tidak dapat divisualisasikan.
Menimpah beberapa visualisasi menjadi satu tampilan dapat dilakukan dengan fungsi yang
tersedia, dimana parameter yang digunakan dalam visualisasi sama.
Pada visualisasi 2 dimensi, bila melakukan visualisasi lebih dari 2 variabel maka variabel
yang menempati sumbu x harus sama (secara vertikal, variabel yang menempati sumbu y
harus sama) dengan menggunakan fungsi hold on atau secara langsung.
Beberapa simbol – simbol yang digunakan dalam visualisasi data baik dalam visualisasi 2
dimensi dan 3 dimensi antara lain :
Simbol Garis
– Solid line
: Dotted Line
–. Dash Dot Line
16
BAB II VISUALISASI DATA DAN ANIMASI MATLAB
Simbol Tanda
. Point
o Circle
x Cross
+ Plus
* Asterisk
s Square
d Diamond
v Triangle (down)
^ Triangle (up)
< Triangle (left)
> Triangle (right)
p Pentagram
h Hexagram
Fungsi pengaturan warna tiap titik data yang digunakan dalam visualisasi data dalam
visualisasi 2 antara lain :
Simbol Keterangan
r Warna Merah
g Warna Hijau
b Warna Biru
y Warna Kuning
m Warna Magenta
k Warna Hitam
Warna dasar dari grafik adalah putih. Tetapi sebenarnya warna dasar tersebut dapat
diubah menjadi warna lain dengan menggunakan teknik pengaturan warna. Instruksi untuk
memberi warna pada area grafik adalah sebagai berikut:
Instruksi untuk memberikan warna pada judul grafik juga disediakan oleh Matlab.
Instruksinya adalah sebagai berikut:
17
BAB II VISUALISASI DATA DAN ANIMASI MATLAB
Sedangkan instruksi untuk memberi warna pada label grafik adalah sebagai berikut :
Tidak hanya warna yang dapat diubah pada grafik. Matlab juga menyediakan instruksi untuk
mengubah jenis huruf dan mengatur format huruf dengan instruksi sebagai berikut:
fontsize 1, 2, 3 s/d 30
Contoh :
18
BAB II VISUALISASI DATA DAN ANIMASI MATLAB
Memvisualisasikan data terkadang tidak cukup hanya dengan plotting garis atau titik saja.
Dalam banyak hal misal pada bidang seismologi, untuk mengetahui tingkat aktivitas gunungapi
melalui jumlah gempa vulkaniknya per hari atau per minggu atau per bulan, diperlukan
tampilan khusus dari visualisasi data 2D, atau dalam analisis sinyal juga diperlukan visualisasi
khusus di luar tampilan garis dan titik. Fungsi visualisasi khusus yang disediakan Matlab antara
lain :
A. Fungsi Bar
Fungsi bar menyediakan tampilan gambar dalam diagram batang. Sebagai latihan coba
ketikkan script berikut :
19
BAB II VISUALISASI DATA DAN ANIMASI MATLAB
Gambar 2.2. Tampilan grafik diagram batang dengan menggunakan fungsi bar.
B. Fungsi Stem
20
BAB II VISUALISASI DATA DAN ANIMASI MATLAB
C. Fungsi Stairs
Fungsi stairs biasanya juga digunakan untuk menampilkan sinyal, hanya saja untuk sinyal
yang bersifat kontinu yang ditampilkan dalam bentuk kotak-kotak.
D. Fungsi Polar
21
BAB II VISUALISASI DATA DAN ANIMASI MATLAB
E. Fungsi Semilogx
F. Fungsi Loglog
22
BAB II VISUALISASI DATA DAN ANIMASI MATLAB
G. Fungsi Pie
Visualisasi 3D artinya menempatkan satu atau lebih titik data pada media ruang. Teknik
ini sangat berguna pada pemodelan ruang. Beberapa fungsi umum yang biasa digunakan
untuk memvisualisasikan data 3D adalah :
A. Fungsi Plot3
Fungsi plot3 hampir sama dengan fungsi plot, tetapi dalam plot3 ada tiga variabel yang di
plotkan bersamaan.
23
BAB II VISUALISASI DATA DAN ANIMASI MATLAB
Kemudian save script diatas dan run, maka hasilnya adalah sebagai berikut :
24
BAB II VISUALISASI DATA DAN ANIMASI MATLAB
B. Fungsi Mesh
Fungsi mesh digunakan umtuk menampilkan data dalam bentuk permukaan 3D. Cirinya
adalah adanya grid-grid yang menghubungkan 4 titik terdekat dalam ruang 3D.
Kemudian save script diatas dan run, maka hasilnya adalah sebagai berikut :
25
BAB II VISUALISASI DATA DAN ANIMASI MATLAB
C. Fungsi Surf
Fungsi surf digunakan untuk menampilkan data dalam bentuk permukaan 3D seperti pada
fungsi mesh. Perbedaan dengan fungsi mesh adalah setiap grid diisi dengan warna tertentu
sesuai bobot nilai. Coba gantikan fungsi mesh(U) pada script program sebelumnya dengan
surf(U), maka akan tampak hasilnya seperti pada gambar di bawah ini :
D. Fungsi Sufrl
Fungsi surfl adalah pengembangan dari fungsi surf, hanya saja fungsi surfl lebih
menekankan pewarnaan berdasarkan teknik pencahayaan. Coba gantikan fungsi surf(U) pada
script program diatas dengan surfl(U), maka didapatkan hasil sebagai berikut :
26
BAB II VISUALISASI DATA DAN ANIMASI MATLAB
E. Fungsi Pcolor
Fungi pcolor berfungsi untuk menampilkan data 3D dalam bentuk permukaan 2D (tampak
atas). Cirinya adalah grid berwarna yang menunjukkan bobot nilai tertentu.
Kemudian save script diatas dan run, maka hasilnya adalah sebagai berikut :
F. Fungsi Imagesc
Fungsi ini hampir sama dengan fungsi pcolor, perbedaannya dengan pcolor terletak pada
cara pewarnaan grid yang menggunakan interpolasi warna grid-grid terdekat, sehingga terlihat
lebih soft. Coba gantikan fungsi pcolor(z) pada script program sebelumnya dengan imagesc(z),
akan didapatkan hasil seperti ditunjukkan di bawah ini :
27
BAB II VISUALISASI DATA DAN ANIMASI MATLAB
G. Fungsi Contour
Fungsi contour digunakan untuk membuat garis kontur dari data 3D. Garis kontur dibuat
dengan teknik interpolasi dari titik-titik terdekat. Coba gantikan fungsi imagesc(z) dengan
contour(z), maka dapat dilihat hasilnya sebagai berikut :
28
BAB II VISUALISASI DATA DAN ANIMASI MATLAB
H. Fungsi Contourf
Fungsi contourf sama dengan fungsi contour, perbedaannya adalah pada setiap level
kontur diberi warna sesuai bobot garis konturnya. Gantikan contour(z) diatas dengan
contourf(z), maka dapat dilihat hasilnya sebagai berikut :
2.2. Animasi
Pengembangan dari visualisasi data geofisika yang bersifat simulasi dapat dibuat ke dalam
animasi. Untuk membuat animasi, dapat menggunakan fungsi yang tersedia dalam MatLab
ataupun membuat algoritma animasi. Fungsi animasi yang tersedia dalam MatLab hanya
sebatas plot 2 dimensi dan 3 dimensi (mesimulasikan pergerakan suatu titik atau beberapa titik)
dan tidak dapat mesimulasikan suatu data yang bersifat keruangan. Oleh sebab itu untuk
29
BAB II VISUALISASI DATA DAN ANIMASI MATLAB
membuat suatu animasi dengan data bersifat keruangan dibuat suatu algoritma dengan model
algoritma pengulangan, dimana setiap data yang ada digambar satu per satu.
Fungsi yang dapat digunakan untuk membuat animasi data dengan menggunakan fungsi
comet dan comet3. Prinsip kerja keduanya sama, yaitu hanya diperlukan satu pasang data atau
lebih dengan jumlah data yang sama, kemudian dijadikan variabel untuk fungsi tersebut.
Gambar 2.18. Animasi 2 dimensi menggunakan fungsi comet (gerak osilasi teredam).
30
BAB II VISUALISASI DATA DAN ANIMASI MATLAB
Untuk dapat membuat suatu algoritma yang menghasilkan suatu animasi, diperlukan
pehamanan mengenai bagaimana cara kerja dari animasi tersebut. Secara sederhana, animasi
diartikan sebagai proses menghidupkan objek mati dengan cara menempatkan sejumlah
gambar berurutan per waktu dengan koordinat berbeda – beda sehingga didapat perubahan
gambar seolah – olah gambar bergerak. Proses animasi secara sederhana dilakukan sebagai
berikut :
Dengan konsep ini, algoritma yang digunakan berbentuk pengulangan (looping). Untuk bentuk
dari algoritma yang dapat dibentuk (kasus gerak osilasi teredam) adalah sebagai berikut :
31
BAB II VISUALISASI DATA DAN ANIMASI MATLAB
32
BAB II VISUALISASI DATA DAN ANIMASI MATLAB
33
BAB III
Metode Numerik
3.1.Deret Taylor
Deret Taylor ini adalah fungsi kompleks yang terdifirensialkan sampai tidak hingga pada
sebuah pemetaan. Dalam sebuah bilangan Deret taylor, digunakan untuk menurunkan suatu
metode numerik, deret ini merupakan suatu fungsi polinom(suku banyak contoh :x+x2+x3+...).
Deret taylor ini berguna untuk mencari solusi dari suatu persamaan atau fungsi polinomial
dari sekumpulan data yang pada umumnya merupakan permasalahan yang sering dijumpai di-
alam.
Deret taylor ini memiliki persamaan sebagai berikut :
( )^ ( )^ ( ) ( )^
( ) = ( 0) + ( 0) + +. . . + ( 0) (3.1)
! ! !
atau sederhananya
( )^
∑ ( 0) (3.2)
!
y Ax (3.6)
dengan y adalah vektor kolom, A adalah matriks dan x adalah variabel yang dicari nilainya.
Penyelesaian persamaan linear dapat dilakukan dengan menggunakan inversi matriks. Solusi
Persamaan linear ini sangat berguna pada sejumlah kegiatan pengolahan atau pemodelan di
geofisika hal ini dikarenakan sebagian besar permasalahan di geofisika memanfaatkan
parameter lapangan. Parameter lapangan ini merupakan hasil dari berbagai faktor di alam yang
dapat diasumsikan sesuai dengan parameter-parameter fisika sehingga secara sederhana
parameter lapangan merupakan suatu fungsi kompleks dengan sejumlah variabel
berupa parameter fisika
Langkahnya adalah dengan mengalikan invers matriks A pada kedua ruas dari persamaan
tersebut di atas sehingga diperoleh persamaan:
A 1 y ( A 1 A ) x (3.7)
1
A y Ix
x A 1 y
Persamaan terakhir menunjukkan bahwa nilai x diperoleh dengan mengalikan invers matrik A
dengan vektor kolom y.
35
BAB III METODE NUMERIK
Contoh : Carilah nilai x1, x2 dan x3 dari persamaan linear seperti berikut
Penyelesaian :
Ubah bentuk persamaan linear di atas ke dalam bentuk persamaan matriks seperti berikut:
A x y
Soal Mandiri:
Sebuah benda yang sedang bergerak dengan kecepatan 10 m/det dipercepat dengan percepatan
2 m/det2 selama 10 detik. Hitung jarak s dan kecepatan v benda setiap kenaikkan waktu 0,1
detik mulai detik ke 0 sampai detik ke 10 dan nyatakan hasilnya dalam bentuk grafik : s vs t
dan v vs t.
sehingga x merupakan akar dari persamaan tersebut. Ada dua metode utama pencarian akar
yaitu :
1. Metode Tertutup adalah metode ini mencari akar pada suatu fungsi yang dibatasi pada
selang tertentu.
36
BAB III METODE NUMERIK
37
BAB III METODE NUMERIK
buat script fungsi kemudian disave dengan nama “fbi.m”. Nilai didalam “y=...” dapat
diganti sesuai dengan keiginan penentuan akar dari persamaan
function [y]=f(x)
y=x.^2+6*x+5;
Gambar 3.3. Script fungsi metode bisection.
kemudian buat script program bisection sesuai disave pada satu folder yang sama dengan
fungsinnya, dan diberi nama sesuai keinginan.
grid on
title('Grafik Fungsi Untuk Menentukan Akar Persamaan'); %membuat judul
grafik
38
BAB III METODE NUMERIK
no=1;
%membuat tampilan di command windown
fprintf('================================================================
==============\n');
fprintf('no a c b f(a) f(c)
f(b) Error \n');
fprintf('================================================================
==============\n');
% operasi bisection
while Error>Toleransi
fa=fbi(a); %nilai fungsi dari fa
fb=fbi(b);
c=(b+a)/2;
fc=fbi(c);
if fa*fc<0
b=c;
else
a=c;
end
Error=abs(b-a);
fprintf('%d %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f
\n',no,a,c,b,fa,fc,fb,Error)
no=no+1;
end
fprintf('================================================================
==============\n');
fprintf('Maka nilai persamaannya yaitu sama dengan nilai c: %0.6f\n',c);
hold on
2. Metode Terbuka adalah metode pencarian akar pada suatu fungsi dengan nilai akar
terdekat dari nilai awal yang diinput pada fungsi tersebut.
Salah satu contoh metode terbuka yaitu metode lelaran tidak tetap, metode ini memiliki
tahapan sebagai berikut.
39
BAB III METODE NUMERIK
x = x3-x2+1
g(xr) = x3-x2+1
40
BAB III METODE NUMERIK
function [y]=f(x)
y=x.^3-x.^2+1;
Gambar 3.6. Script Fungsi Metode Bisection.
kemudian buat script program lelaran tidak tetap sesuai disave pada satu folder yang sama
dengan fungsinnya, dan diberi nama sesuai keinginan.
% menambah iterasi
iterasi=iterasi+1;
end
disp('=============================================================');
Gambar 3.7. Script Metode Bisection.
41
BAB III METODE NUMERIK
∗ ∑( )−∑ ∑
=
∑ − (∑ )
= − ̅
Keterangan:
a=Koefisien
b= konstanta
xi= nilai x pada titik ke...i
yi= nilai x pada titik ke...i
n= jumlah data
42
BAB III METODE NUMERIK
1
=( | ( )− |)
Semakin kecil nilai Erms maka pada umumnya model linear yang dibentuk semakin sesuai dengan
aslinya.
Contoh diberikan data offset dan waktu tiba seperti berikut ini:
43
BAB III METODE NUMERIK
Lakukan perhitungan regresi linear pada matlab dengan membuat dan me-run script seperti di bawah
ini:
% Regresi Linier untuk data seismik refraksi
clc;clear all; close all;
format long
% import data x dan y yang akan diregresi
x=[10;15;20;25;30;35;40;45;50;55;60;65;70;75;80;85;90;95;100;105]; %Plot
Sumbu x offset
yi=[26.9;29.45;32.9;35.2;39.42;46.7;52.4;54.8;59.29;68.2;69.34;72.6;78.52
;80.52;83.6;86.12;89.6;93.1;94.6;98.5]; %Plot sumbu y time
% menghitung error/galat
Erms=((1/length(x))*abs(fx-yi).^2).^2;
44
BAB III METODE NUMERIK
45
BAB III METODE NUMERIK
Tabel tersebut merupakan tabel yang berisi data pengamatan berupa pengaruh gradien
kedalaman terhadap suhu, dimana parameter kedalaman dinyatakan dengan sumbu-x dan
parameter suhu dinyataan dengan sumbu-y. Pencarian nilai suhu untuk x=5 dan x=11, dapat
menggunakan pendekatan interpolasi antara lain melalui pendekatan interpolasi linear
(berderajat satu), polinomial (berderajat lebih dari satu) dan pendekatan fungsi spline.
METODE NEWTON DIVIDED DIFFERENCE
Metode Newton Divided Difference atau metode bagi dua adalah salah satu dari
pendekatan polinomial dalam teknik interpolasi. Untuk setiap pasangan data (x i,yi) dari suatu
fungsi y=f(x), dapat didekati dengan persamaan berikut :
( )= + ( − )+ ( − )( − ) + ⋯+ ( − )…( − ) (5.1)
Persamaan tersebut memenuhi:
( )= =
( )= = + ( − )
( )= = + ( − )+ ( − )( − ) dst
46
BAB III METODE NUMERIK
Pada gambar pertama menunjukkan titik-titik awal dari plot x dan y kedalaman dan
temperatur, pada gambar kedua menunjukkan titik hasil interpolasi polinomial data 2
menunjukkan orde polinom pangkat 1, data 3 menunjukkan orde polinom pangkat 2, data 4
menunjukkan orde polinom pangkat 3, sampai data 6 menunjukkan orde polinom pangkat 5.
Berikut ini adalah program Matlab untuk menghitung interpolasi Newton Divided Difference
47
BAB III METODE NUMERIK
Teorema dasar kalkulus Integral tertentu dimana: jika f(x) kontinu dalam selang [a,b]
dan jika F(x) adalah integral tertentu dari f(x) maka:
Atau
( − )∗ ( )
Gambar 3.13. Hasil Dari Operasi Integral Metode Newton Cotes Grafik Garis Berasal Dari Fungsi X,
Dengan Grafik Bar Berwarna Merah Menunjukkan Luasan Yang Dicover
48
BAB III METODE NUMERIK
Contoh Proses-nya Pertama buat fungsi terlebih dulu di matlab. Fungsi ini adalah nilai
persamaan yang akan dicari luasannya nanti :
function [ y ] = f( x )
y=x.^3+2*x+1
end
Gambar 3.14. Contoh fungsi.
setelah itu disave, dan diberi nama “f.m”. lalu buat script integral numerik metode newton
cotes seperti berikut ini, dan simpan di folder yang sama dengan file fungsi “f.m”(namakan
file sesuai kehendak) :
49
BAB III METODE NUMERIK
+ =6xyex+y
Persamaan seperti ditunjukkan pada bagian persamaan .... memiliki bentuk dapat diselesaikan
dengan menggunakan metode Euler. Metode ini memiliki persamaan seperti berikut ini:
yn+1=yn+h*f(xn,yn)
contoh :
+ =1
apabila diketahui nilai pada titik (0,0) dan nilai interval 0.1 maka dapat diselesaikan
menggunakan matlab dengan membuat fungsi seperti berikut ini:
% interval
h=0.1
50
BAB III METODE NUMERIK
X=[];
Y=[];
X=[x;X];
Y=[y;Y];
hasil dari penyelesaian persamaan diferensial tersebut bila diplot menunjukkan pola pada
gambar.
51
BAB IV
Penerapan Komputasi
52
BAB IV PENERAPAN KOMPUTASI
Kelemahan script ini adalah perlu menginput koordinat stasiun dan nilai kecepatan, serta
model awal secara manual melalui script itu sendiri.
53
BAB IV PENERAPAN KOMPUTASI
Matlab dapat digunakan untuk pembuatan Peta kontur 2D. Pada script yang digunakan
kekurangannya adalah untuk menjalankan script ini perlu mengganti nama file sesuai
dengan yang ada di perintah load. Pembuatan peta kontur seperti pada gambar 4.2. pada
matlab dapat dilakukan dengan melalui tahapan berikut ini :
1. Pertama siapkan data dalam bentuk notepad dengan format X, Y, Z, seperti pada gambar
4.3.
% Gridding data
[x,y]=meshgrid(min(X):20:max(X),min(Y):max(Y));
v=griddata(X,Y,Z,x,y);
figure (1)
contourf(x,y,v);
figure (2)
mesh(x,y,v);
54
BAB IV PENERAPAN KOMPUTASI
55
BAB IV PENERAPAN KOMPUTASI
3. Kemudian buat script berikut ini dan simpan di folder yang sama dengan data.
% griding data 3D
[x,y,z]=meshgrid(min(X):inc:max(X),min(Y):inc:max(Y),min(Z):inc:max(Z));
XI=[x(:) y(:) z(:)];
V=griddatan(X1,V,XI);
v = reshape(V, size(x));
% slicing
sl=slice(x,y,z,v,xsl,ysl,zsl); %perintah slicing untuk menampilkan model
set(sl,'FaceColor','interp','EdgeColor','none');
hold off
grid on; view(3); axis vis3d tight; camlight left; lighting
gouraud;title('Model Slice Data 3D');colorbar;
Script ini memiliki kekurangan yaitu untuk menjalankan script ini perlu mengganti
nama file sesuai dengan yang ada di perintah load dan perlu diatur interval dari gridnya.
56
BAB IV PENERAPAN KOMPUTASI
%import data dari file apabila nama file berbeda maka variabel juga berbeda
load s3.dat;in=s3;
%sortir data
X=in(:,1); %Input data X pada Baris 1 di data load
Y=in(:,2); %Input data Y pada Baris 2 di data load
Z=in(:,3); %Input data Z pada Baris 3 di data load
V=in(:,4); %Input data Parameter pada Baris 4 di data load
X1=[X Y Z]
57
BAB IV PENERAPAN KOMPUTASI
V = griddatan(X1,V,XI,'nearest');
v = reshape(V, size(x));
c=input('masukkan nilai densitas:');
p=patch(isosurface(x,y,z,v,c),...
'FaceColor','blue',...
'EdgeColor','none',...
'AmbientStrength',.2,...
'SpecularStrength',.7,...
'DiffuseStrength',.4);
p2=patch(isocaps(x,y,z,v,c),'FaceColor','interp','Edgecolor','none');
grid on
title('Model 3D Isosurface');
colorbar;view(3);
axis vis3d tight;camlight left;lighting gouraud;
% hold on
% d=input('masukkan nilai resistivitas 2:');
% p=patch(isosurface(x,y,z,v,d),...
% 'FaceColor','red',...
% 'EdgeColor','none',...
% 'AmbientStrength',.2,...
% 'SpecularStrength',.7,...
% 'DiffuseStrength',.4);
% p3=patch(isocaps(x,y,z,v,d),'FaceColor','interp','Edgecolor','none')
Script ini memiliki kekurangan yaitu untuk menjalankan script ini perlu mengganti
nama file sesuai dengan yang ada di perintah load dan perlu diatur interval dari gridnya.
58
BAB IV PENERAPAN KOMPUTASI
Untuk membuat model ini dapat dilakukan melalui tahapsn berikut ini:
1. Menyusun dan membuat file berisikan X, Y, Z dan nilai yang akan diplot seperti pada
gambar 4.5.
2. Save pada notepad dan simpan filenya.
3. Buat fungsi “ind2patch” dan simpan di folder yang sama dengan notepad
function [F,V,C]=ind2patch(IND,M,ptype)
% function [F,V,C]=ind2patch(IND,M,ptype)
% ------------------------------------------------------------------------
%
% This function generates patch data (faces 'F', vertices 'V' and color
% data 'C') for 3D images. The patches are only generated for the voxels
% specified by the linear indices in 'IND'. The variable 'ptype' indicates
% the type of patch:
%
% 'v' Voxel patch data with unshared vertices and faces
% such that each voxel has 8 unshared vertices and 6
% unshared faces (may be faster than 'vu' and 'vb'
% options which require UNIQUE costly computations).
% 'vu' Voxel patch data such that where possible voxels share
% vertices and faces (making patch data computation slower
% but plotting more memory efficient).
% FaceColor data is averaged for shared faces.
% 'vb' Voxel patch data faces are exported for unique unshared
% faces e.g. only boundary for enclosed volume (plotted
% data is visually equivalent to 'v' and 'vu' options when
% FaceAlpha is 1)
% 'si', 'sj', 'sk' Mid-voxel slice patch data for i, j and k direction
% respectively
% 'siu', 'sju', 'sku' Same as 'si', 'sj', 'sk' but with double points
% removed.
% 'h' Creates a hexahedral element description instead (e.g
% nx8) element data.
% 'hu' Same as 'h' but with shared unique nodes.
%
%%% EXAMPLE
% clear all; close all; clc;
%
% %% Simulating 3D image
% [X,Y,Z]=meshgrid(linspace(-4.77,4.77,25));
% phi=(1+sqrt(5))/2;
% M=2 - (cos(X + phi*Y) + cos(X - phi*Y) + cos(Y + phi*Z) + cos(Y - phi*Z)
+ cos(Z - phi*X) + cos(Z + phi*X));
% M=M./max(M(:)); %Normalise, not required
%
% figure; set(gcf,'units','normalized','outerposition',[0 0 1 1]);
%maximizes figure window
% hold on; xlabel('X-J','FontSize',20);ylabel('Y-
I','FontSize',20);zlabel('Z-K','FontSize',20);
%
% %% Creating and plotting patch data
%
% %Setting up indices for X direction slices
% S=round(size(M,2)./2); %Selection of middle slice
% L_plot=false(size(M)); L_plot(:,S,:)=1;
% IND=find(L_plot);
59
BAB IV PENERAPAN KOMPUTASI
%% PARSING INPUT
60
BAB IV PENERAPAN KOMPUTASI
%%
numIND=numel(IND);
switch ptype
case {'si','siu'} %I midvoxel slice
i_shift=ones(size(IND))*[ 0 0 0 0 ];
j_shift=ones(size(IND))*[-0.5 -0.5 0.5 0.5 ];
k_shift=ones(size(IND))*[-0.5 0.5 0.5 -0.5 ];
faceOrder=[1 2 3 4];
numNodes=4;
case {'sj','sju'} %J midvoxel slice
i_shift=ones(size(IND))*[-0.5 0.5 0.5 -0.5 ];
j_shift=ones(size(IND))*[ 0 0 0 0 ];
k_shift=ones(size(IND))*[-0.5 -0.5 0.5 0.5 ];
faceOrder=[1 2 3 4];
numNodes=4;
case {'sk','sku'} %K midvoxel slice
i_shift=ones(size(IND))*[-0.5 0.5 0.5 -0.5 ];
j_shift=ones(size(IND))*[-0.5 -0.5 0.5 0.5 ];
k_shift=ones(size(IND))*[ 0 0 0 0 ];
faceOrder=[1 2 3 4];
numNodes=4;
case {'v','vu','vb'} %Voxels, same with unique faces and vertices, only
boundary (unshared) faces and vertices
i_shift=ones(size(IND))*[-0.5 0.5 0.5 -0.5 -0.5 0.5 0.5 -
0.5];
j_shift=ones(size(IND))*[-0.5 -0.5 0.5 0.5 -0.5 -0.5 0.5
0.5];
k_shift=ones(size(IND))*[ 0.5 0.5 0.5 0.5 -0.5 -0.5 -0.5 -
0.5];
faceOrder=[1 2 3 4;... %Top
5 6 7 8;... %Bottom
1 2 6 5; ... %Left face
3 4 8 7; ... %Right face
1 4 8 5; ... %Back
2 3 7 6]; %Front
numNodes=8;
case {'h','hu'} %Hexahedral element
i_shift=ones(size(IND))*[-0.5 0.5 0.5 -0.5 -0.5 0.5 0.5 -
0.5];
j_shift=ones(size(IND))*[-0.5 -0.5 0.5 0.5 -0.5 -0.5 0.5
0.5];
k_shift=ones(size(IND))*[ 0.5 0.5 0.5 0.5 -0.5 -0.5 -0.5 -
0.5];
faceOrder=[1 2 3 4 5 6 7 8];
numNodes=8;
otherwise
warning('wrong input for argument ptype, valid inputs are s for
surfaces patches and v for voxel patches');
end
numFacesPerVoxel=size(faceOrder,1);
numNodesPerFace=size(faceOrder,2);
VI=I*ones(1,numNodes);
VJ=J*ones(1,numNodes);
VK=K*ones(1,numNodes);
61
BAB IV PENERAPAN KOMPUTASI
V=zeros(length(VI),3);
%Creates faces
Fi=ones(numIND,numNodesPerFace);
F=repmat(Fi,numFacesPerVoxel,1);
b=(numNodes.*((1:1:numIND)'-1))*ones(1,numNodesPerFace);
for q=1:1:numFacesPerVoxel
Fi=ones(size(IND))*faceOrder(q,:)+b;
F((1+numIND*(q-1)):numIND*q,:)=Fi;
end
switch ptype
case {'vu','vb'}
sharedColourMatrixSparse=sparse(IND_F_2,1:numF,C,numFuni,numF,numF);
C=full(sum(sharedColourMatrixSparse,2))./F_count;
end
62
BAB IV PENERAPAN KOMPUTASI
end
4. Kemudian buat script berikut ini dan simpan di folder yang sama dengan data dan fungsi
“ind2patch”.
clc;clear all;
load s3.dat
in=s3;
X=in(:,1); %Input data X pada Baris 1 di data load
Y=in(:,2); %Input data Y pada Baris 2 di data load
Z=in(:,3); %Input data Z pada Baris 3 di data load
V=in(:,4); %Input data Parameter pada Baris 4 di data load
X1=[X Y Z];
% gridding voxel 3D
[x,y,z]=ndgrid(min(X):inc:max(X),min(Y):inc:max(Y),min(Z):inc:max(Z));
XI=[x(:) y(:) z(:)]; % Belum terpakai
V=griddatan(X1,V,XI);
v = reshape(V, size(x));
IND=find(v); % input parameter yang akan dimodelkan dengan mengganti nilai
v
% modelling 3D voxel
63
BAB IV PENERAPAN KOMPUTASI
[F,V,C]=ind2patch(IND,v,'v');
title('patch type: v');
xlabel('J - columns');ylabel('I - rows'); zlabel('K - slices'); hold on;
p=patch('Faces',F,'Vertices',V,'FaceColor','flat','CData',C,'EdgeColor','k'
,'FaceAlpha',0.5);
% set(p,'FaceColor','interp','EdgeColor','none');
axis equal; view(3); axis tight; axis vis3d; grid on;axis vis3d
tight;%camlight left;lighting gouraud;
drawnow;colorbar;
Script ini memiliki kekurangan yaitu untuk menjalankan script ini perlu mengganti
nama file sesuai dengan yang ada di perintah load dan perlu diatur interval dari gridnya
serta perlu membuat fungsi “ind2patch”.
t = 0:0.01:10*pi;
x = t.*sin(t);y=t.*cos(t);
comet3(x,y,t);
Sebagai contoh animasi rotasi sederhana yang bisa digunakan untuk latihan adalah dengan
menggunakan bentuk kubus yang berputar. Langkah pertama yang dilakukan dengan membuat
bentuk kubus awal.
64
BAB IV PENERAPAN KOMPUTASI
65
BAB IV PENERAPAN KOMPUTASI
66
BAB IV PENERAPAN KOMPUTASI
67
BAB IV PENERAPAN KOMPUTASI
Berikut ini adalah latihan dalam pengolahan data gempa bumi. Dari mulai load data, cut dan
zoom, dilanjutkan dengan analisa gerakan partikelnya ditinjau dari 3 komponen serta dalam
domain 3D. Data gempa berasal dari gempa Loma Prieta.
Sumber:
C. Denham, 1990, C. Moler, August, 1992.
% Copyright (c) 1984-98 by The MathWorks, Inc
clf reset
clc
echo on
load quake
% The data are courtesy Joel Yellin at the Charles F. Richter
% Seismological Laboratory, University of California, Santa Cruz.
clc
g = 0.0980;
delt = 1/200;
e = g*e;
n = g*n;
v = g*v;
t = delt*(1:length(e))';
pause
clc
68
BAB IV PENERAPAN KOMPUTASI
clc
% Now, we click twice with the mouse along one of the time axes
% to select an interesting time interval.
%t1 = ginput(1);
%t1(2) = t1(1);
t1=8*[1 1];
subplot(3,1,1), hold on, plot(t1,yrange,'w-','erase','none', 'LineWidth',
2); hold off
subplot(3,1,2), hold on, plot(t1,yrange,'w-','erase','none', 'LineWidth',
2); hold off
subplot(3,1,3), hold on, plot(t1,yrange,'w-','erase','none', 'LineWidth',
2); hold off
%t2 = ginput(1)
%t2(2) = t2(1);
t2=15*[1 1];
subplot(3,1,1), hold on, plot(t2,yrange,'w-','erase','none', 'LineWidth',
2); hold off
subplot(3,1,2), hold on, plot(t2,yrange,'w-','erase','none', 'LineWidth',
2); hold off
subplot(3,1,3), hold on, plot(t2,yrange,'w-','erase','none', 'LineWidth',
2); hold off
pause
clc
clf
clc
69
BAB IV PENERAPAN KOMPUTASI
k = length(t);
k = round(max(1,k/2-100):min(k,k/2+100));
xlabel('East'), ylabel('North');
title('Acceleration During a One Second Period');
hold on
comet(e(k),n(k))
pause
clc
clf
na = max(abs(npos)); na = 1.05*[-na na];
ea = max(abs(epos)); ea = 1.05*[-ea ea];
va = max(abs(vpos)); va = 1.05*[-va va];
clc
subplot(2,2,1)
plot(npos,vpos, 'r-');
axis([na va])
xlabel('North'); ylabel('Vertical');
pause
nt = ceil((max(t)-min(t))/6);
k = find(fix(t/nt)==(t/nt))';
for j = k, text(npos(j),vpos(j),['o ' int2str(t(j))]); end
pause
clc
70
BAB IV PENERAPAN KOMPUTASI
subplot(2,2,2)
plot(epos,vpos, 'color',[1 0 1],'linestyle','-');
for j = k; text(epos(j),vpos(j),['o ' int2str(t(j))]); end
axis([ea va])
xlabel('East'); ylabel('Vertical');
drawnow
subplot(2,2,3)
plot(npos,epos, 'color',[0 .5 0],'linestyle','-');
for j = k; text(npos(j),epos(j),['o ' int2str(t(j))]); end
axis([na ea])
xlabel('North'); ylabel('East');
pause
clc
clf
clc
n = 50;
p = fix((n-1)*(epos-min(epos))/(max(epos)-min(epos))+1);
q = fix((n-1)*(npos-min(npos))/(max(npos)-min(npos))+1);
r = vpos - min(vpos);
z = zeros(n,n);
echo off;
for k = 1:length(r);z(p(k),q(k)) = r(k);end
echo on;
mesh(z)
axis([0 n 0 n 0 max(r)])
set(gca, 'Color', 'black')
title('The movement of a point in 3-dimensions')
zlabel('Vertical');
xlabel('North-South')
ylabel('East-West')
colormap([0 0 1]);
pause
clf
clc
plot3(npos,epos,vpos,'b')
axis([min(npos) max(npos) min(epos) max(epos) min(vpos) max(vpos)])
xlabel('North-South')
71
BAB IV PENERAPAN KOMPUTASI
ylabel('East-West')
zlabel('Vertical')
title('Position (cms)')
hold on
plt = plot3(0,0,0,'.','erasemode','xor','markersize',24);
dk = ceil(length(epos)/1500);
echo off;
for k =
1:dk:length(epos);set(plt,'xdata',npos(k),'ydata',epos(k),'zdata',vpos(k));
drawnow;end
echo on;
hold off
s = 'for k = 1:dk:length(epos)';
s = [s 'set(plt,''xdata'',npos(k),''ydata'',epos(k),''zdata'',vpos(k)),'];
s = [s 'drawnow,end'];
echo off
uicontrol('Units','normal','Position',[.4 .01 .1
.06],'String','Again','callback',s)
72
BAB IV PENERAPAN KOMPUTASI
73
BAB IV PENERAPAN KOMPUTASI
74
BAB IV PENERAPAN KOMPUTASI
75
BAB V
Microsoft Visual Studio dapat digunakan untuk mengembangkan aplikasi dalam native
code (dalam bentuk bahasa mesin yang berjalan di windows) maupun managed code (dalam
bentuk Microsoft Intermediate Language di atas .NET Framework). Selain itu, Visual Studio
juga dapat digunakan untuk mengembangkan aplikasi Silverlight, aplikasi windows mobile
(yang berjalan di atas .NET Compact Framework).
Daya tarik dari Microsoft Visual Studio adalah memberikan pengalaman Look and Feel
yang dibuat dalam sebuah GUI (Graphical User Interface). Salah satu contoh GUI, dapat dilihat
pada gambar 1 yang menampilkan sebuah jendela IDE Visual Studio 2015 yang memuat
pelbagai kontrol (kendali) GUI. Di Bagian Atas Jendela terdapat sebuah batang menu yang
memuat menu FILE, EDIT, VIEW, DEBUG, TEAM, TOOLS, TEST, ACHITECTURE,
ANALYZE, WINDOW, dan HELP. pada bagian kanan dan kiri dari jendela IDE Visual Studio
terdapat menu toolbar, solution Explorer dan Server Explorer. Pada bagian menu ini dapat
ditambahkan menu – menu lain seperti Data Source atau SQL Server Object Explorer dengan
menambahkannya pada menu View.
Gambar 1. Kendali – Kendali GUI pada jendela IDE Visual Studio 2015
76
BAB V PENGENALAN MICROSOFT VISUAL STUDIO
Tentang beberapa fungsi pada toolbox yang sering digunakan dapat dilihat pada tabel 1.
Tabel 1. Beberapa Fungsi Tools Pada Jendela Toolbox Visual Studio 2015
Fungsi Penjelasan
Label Menampilkan citra atau teks yang tidak bisa di edit.
TextBox Memampukan pengguna untuk memasukkan data melalui papan
ketik. Ia juga dipakan untuk menampilkan teks yang dapat diedit
maupun yang tidak bisa diedit.
CheckBox Menetapkan sebuah opsi yang dapat diseleksi (dicentang) atau
diseleksi.
ComboBox Menyedikan sebuah daftar drop – down yang memuat item – item
sehingga pengguna dapat membuat pilihan dengan mengklik suatu
item pada daftar atau dengan mengetikkannya pada sebuah kotak
yang tersedia.
ListBox Menyediakan sebuah daftar item yang dapat dipilih pengguna
dengan mengklik satu atau lebih item.
Panel Sebuah container dimana di dalamnya kendali – kendali dapat
ditempatkan dan diorganisir.
NumericUpDown Memampukan pengguna untuk memilih dari suatu rentang yang
memuat nilai – nilai masukan numerik.
Button Memicu sebuah event ketika diklik dengan mouse.
77
BAB V PENGENALAN MICROSOFT VISUAL STUDIO
Standarnya, jika kita mengatur tools yang dimuat dalam suatu form dapat dilakukan
pada jendela Properties di kanan bawah jendela Visual Studio. Hal yang menjadi dasar dalam
pengaturan tiap tools yaitu pengaturan nama objek, dimana nama objek ini akan berpengaruh
terhadap proses coding. Namun pada dasarnya Visual Studio akan memberikan nama secara
default kepada setiap tools yang ada, misalnya tool label akan diberi nama secara default
menjadi Label1 dan seterusnya. Untuk mempermudah proses coding ini sebaiknya nama objek
diubah sesuai kebutuhan. Dapat juga dimasukkan sebuah event yang diinginkan, misalnya
mouse leave pada pictures box yang akan memberikan efek sesuai dengan keinginan.
Pada sebuah form akan memiliki jendela editor, dimana jendela editor terlihat sama
pada beberapa kompiler, misalnya saja C# dengan Visual Basic. Akan terlihat bahwa ada 3
kolom pilihan dimana kolom paling kanan untuk memilih project, tengah berupa pilihan
terhadap tools yang akan dicoding, dan kolom paling kiri berupa pilihan event yang diinginkan,
misalnya event klik atau hoever yang dapat dilihat pada gambar 3. Bila telah memilih ketiga
pilihan pada masing – masing kolom, akan muncul sebuah coding yang diawali dengan private
sub dan diakhiri dengan end sub yang disebut statement dimana kita memasukkan perintah
pada baris diantara keduanya.
78
BAB V PENGENALAN MICROSOFT VISUAL STUDIO
Adapun beberapa event yang sering digunakan dapat dilihat pada tabel 2.
Tabel 2. Beberapa Fungsi Event Pada Visual Studio 2015
Event Penjelasan
Load Terjadi sebelum sebuah form ditampilkan kepada pengguna.
Ketepatan pemilihan type variabel akan sangat menentukan pemakaian resources oleh
aplikasi yang dihasilkan, adalah tugas programmer untuk memilih type yang sesuai untuk
menghasilkan program yang efisien dan berperfomance tinggi.
Contoh :
B = (1 + 2) * 3 'Akan menghasilkan 9
79
BAB V PENGENALAN MICROSOFT VISUAL STUDIO
Tabel 4. Operator Pada Visual Basic Dan Urutan Operasi Dari Atas Ke Bawah
Option Explicit
Pada setiap awal module, atau pada menu Tools, pilih Option, pilih tab Editor, buat tanda check
pada Require Variable Declaration.
Deklarasi variabel pada Visual Basic dapat dilakukan dengan Keyword berikut :
Tabel 5. Keyword pada deklarasi variabel
80
BAB V PENGENALAN MICROSOFT VISUAL STUDIO
81
BAB VI
2 Pada dialog Quick Start, pilih template Blank GUI(Default). Klik OK untuk
memunculkan GUI kosong pada Layout Editor, seperti gambar berikut ini.
2 Creating a Simple GUI with GUIDE
2-2
BAB VI GRAPHICAL USER INTERFACE MATLAB
Menambah Komponen
1 Tambah tiga tombol push ke GUI. Untuk setiap Tombol push, pilih tombol
push dari komponen palet pada kiri Layout Editor dan tarik ke area layout.
Posisikan seperti gambar berikut ini.
2-3
2 Creating a Simple GUI with GUIDE
Menyusun Komponen
Dapat dilakukan dengan Alignment Tool untuk menyusun komponen sama seperti yang lainnya.
Untuk menyusun:
2-4
BAB VI GRAPHICAL USER INTERFACE MATLAB
2-5
2 Creating a Simple GUI with GUIDE
Setelah menambahkan teks yang diperlukan, GUI akan terlihat seperti pada
Layout Editor.
2-6
BAB VI GRAPHICAL USER INTERFACE MATLAB
3. Pada Property Inspector, pilih String Property dan kemudian pindahkan nilai yang ada
dengan kata Surf.
4. Klik diluar daerah String. Label tombol Push akan berubah menjadi Surf
5. Pilih setiap tombol Push bergantian dan ulangi tahap 3 dan 4 Beri label
tombol push tengah dengan Mesh, dan tombol push bawah dengan
Contour
2-7
2 Creating a Simple GUI with GUIDE
3. Ganti teks yang ada dengan nama dari tiga data set: Peaks, Membrane, dan
Sinc. Tekan Enter pindahkan ke baris berikutnya.
2-8
BAB VI GRAPHICAL USER INTERFACE MATLAB
3 Klik OK. Tulisan Select Data akan tampil di komponen statik teks diatas
menu pop-up
Menyelesaikan Layout
Pada Layout Editor, GUI saat ini akan terlihat seperti ini dan pada tahap selanjutnya
menyimpan layout. Topik selanjutnya, “menyimpan Layout GUI” pada halaman 2-19,
disebutkan bagaimana melakukan ini.
2-9
2 Creating a Simple GUI with GUIDE
2-10
BAB VI GRAPHICAL USER INTERFACE MATLAB
direktori file yang terdapat file GUI, atau menambah direktori ke atas atau
bawah dari lokasi MATLAB
GUI telah aktif dapat memilih kumpulan data pada menu pop-up dan mengklik
tombol push, tapi tidak akan ada yang terjadi. Ini dikarenakan belum ada kode
pada M-file yang mengatur menu pop-up dan tombol-tombol tersebut. Tahapan
selanjutnya adalah memprogram GUI. Topik selanjutnya, “memprogram GUI
sederhana” pada halaman 2-21, menunjukkan bagaimana melakukan ini.
2-11
2 Creating a Simple GUI with GUIDE
Pada contoh ini, menambah kode pyang membuat tiga data set untuk
membuka fungsi. Kode yang digunakan di Matlab menggunskan fungsi
Peaks, Membrane, dan Sinc.
2-12
BAB VI GRAPHICAL USER INTERFACE MATLAB
2 Buat data untuk GUI untuk memplot dengan menambah kode berikut
ke fungsi pembuka langsung setelah komentar %varargin..
Keenam baris eksekusi awal membuat data menggunakan fungsi MATLAB peaks,
membrane, dan sinc. Mereka menyimpan data pada struktur handles, yang diteruskan
sebagai argumen untuk semua callbacks. Callback untuk tombol push bisa memperoleh
data dari struktur handles.
Dua baris terakhir membuat nilai data dan mengatur peaks, dan
kemudian menunjukkan plot surf untuk data peaks. Gambar berikut
menunjukkan bagaimana GUI terlihat ketika pertama kali ditampilkan.
2-13
2 Creating a Simple GUI with GUIDE
GUI M-file terbuka pada editor jika tidak ada yang lagi dibuka, dan pindahkan kursor
ke menu pop-up pilih callback, yang telah terdapat kode berikut ini:
2-14
BAB VI GRAPHICAL USER INTERFACE MATLAB
M-file GUI terbuka pada editor jika belum dibuka, dan kursor
dipindahkan ke Surf tombol push kemudian callback, dan akan
muncul kode berikut ini:
2-15
2 Creating a Simple GUI with GUIDE
2 Tambahkan kode berikut ini untuk langsung memanggil setelah komentar yang
bermulai % handles...
% Display surf plot of the currently selected data.
surf(handles.current_data);
3 Ulangi langkah 1 dan 2 untuk menambah kode yang sama pada Mesh
dan Contour pada tombol push callbacks.
GUI siap digunakan. Topik selanjutnya adalah “Menjalankan GUI” pada halaman
2-28 akan dijelaskan cara kerjanya.
2-16
DAFTAR PUSTAKA
Palupi, Indriati Retno, S.Si., M.Si., Wiji Raharjo, S.Si., M.Sc. 2017. Modul
Praktikum Komputasi Geofisika. UPN “Veteran” Yogyakarta: Yogyakarta.
Munir, Rinaldi. Topik Khusus Informatika.
Karris, Steven T. 2007. Numerical Analysis Using MATLAB and Excel Thir Edition.
Orchard Publications.
Chapra, Steven C & Raymond P. Canale. 2010. Numerical Methods for Engineers
Sixth Edition. Mc Graw Hill: Boston.
1
LABORATORIUM KOMPUTASI GEOFISIKA
NO. DOK : 1
INSTRUKSI KERJA KOMPUTER NO. REV : -
(TIPE DELL, & LENOVO, USA) TGL TERBIT : 11-Jan-18
HALAMAN : 5
Tujuan Menjadi acuan penggunaan komputer yang baik dan benar
Kebijakan Pengawasan alat laboratorium oleh praktikan harus dalam pengawasan dosen
pembimbing praktikum, laboran atau asisten praktikum
Petugas 1. Laboran
2. Asisten Praktikum
Peralatan Ada
Fungsi Komputer dipergunakan untuk pengolahan, pemodelan, pemrograman, dan
pekerjaan-pekerjaan lainnya yang hanya bisa dilakukan dengan komputer.
Prosedur Prosedur kerja penggunaan Komputer sebagai berikut :
1. Isi log book penggunaan komputer di buku log book di meja dalam laboratorium
komputasi
2. Sambungkan kabel power pada stop kontak untuk UPS, CPU, dan monitor.
3. Tekan tombol power pada posisi “ON” hingga lampu menyala dan berbunyi
“KLIK” pada UPS dan monitor.
4. Tekan tombol power pada posisi “ON” hingga lampu menyala dan berbunyi
“KLIK” pada CPU.
5. Tunggu sampai masuk ke Windows
6. Tentukan software dan pekerjaan apa yang akan dilakukan
7. Buka software yang dibutuhkan dengan mengklik 2x pada shortcut atau
launchernya.
8. Setelah selesai menggunakan software apabila ingin menyimpan file, bisa
menghubungi asisten laboratorium atau laboran yang ada untuk membantu
dalam proses penyimpanan file bila peralatan penyimpanan terdapat virus
atau program yang mengganggu kinerja komputer, apabila tidak ada dapat
langsung disimpan ke peralatan penyimpanan pribadi.
9. Untuk mematikan komputer, pastikan semua program yang dibuka telah
ditutup.
10. Kemudian buka “START” pilih “SHUT DOWN”.
11. Matikan Monitor, dan UPS dengan menekan Tombol Power.
12. Copot semua kabel yang terhubung ke stop kontak.