Laporan Pemodelan Dan Simulasi

23
LAPORAN TUGAS BESAR PEMODELAN DAN SIMULASI Diajukan untuk memenuhi salah satu tugas mata kuliah Pemodelan dan Simulasi Dosen Gani Gunawan, S.T., M.T. Disusun oleh : 10107206 Sarah R Puri 10108286 Juli Rizki A 10108279 Irwansyah 10107349 Guruh Wiraajiputro 10107636 Elan Maulana JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK DAN ILMU KOMPUTER UNIVERSITAS KOMPUTER INDONESIA 2012 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

description

simulasi perhitungan terlarutnya zat obat dalam sistem peredaran darah makhluk hidup beserta program simulasinya dengan bahasa pemrograman java

Transcript of Laporan Pemodelan Dan Simulasi

Page 1: Laporan Pemodelan Dan Simulasi

LAPORAN TUGAS BESAR

PEMODELAN DAN SIMULASI

Diajukan untuk memenuhi salah satu tugas mata kuliah Pemodelan dan Simulasi

Dosen Gani Gunawan, S.T., M.T.

Disusun oleh :

10107206 Sarah R Puri

10108286 Juli Rizki A

10108279 Irwansyah

10107349 Guruh Wiraajiputro

10107636 Elan Maulana

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

2012

1

2

3

4

5

6

7

8

9

10

11

12

1314

15

16

17

18

19

Page 2: Laporan Pemodelan Dan Simulasi

Hasil pengamatan uji laboratorium 15 detik pertama tentang terlarutnya zat obat dalam sistem peredaran darah makhluk hidup diperoleh data seperti yang tertulis pada tabel sebelah kanan. Jika suatu pemodelan matematis dari data pengamatan tersebut

ada kecenderungan berbentuk y= 1a+bx

dengan a,b adalah parameter data pengamatan, dan x, y adalah variabel data pengamatan. Maka

(i) Tentukan uraian verifikasi matematis dengan linierisasi untuk pembentukan model tersebut agar metode regresi linier dapat dilakukanPerkiraan persamaan umum sederhana untuk model hiperbola ini dapat dituliskan dalam bentuk :

Atau jika tidak ada Y yang bernilai nol dapat ditulis menjadi:

(ii) Bagaimana anda menghitung parameter a dan b dengan metode regresinyaKoefisien-koefisien adan b dapat dihitung seperti pada model garis lurus dengan rumus

Waktu(detik)Banyaknya Zat Obat Terlarut

(mg)1 1.022 0.6673 0.3674 0.2785 0.2376 0.1877 0.1558 0.1569 0.14210 0.11111 0.1212 0.09713 0.09914 0.08915 0.079

20

212223242526

27

28293031323334353637

3839404142434445464748495051525354

55565758596061

62

6364

65

666768

Page 3: Laporan Pemodelan Dan Simulasi

69

70

Page 4: Laporan Pemodelan Dan Simulasi

(iii) Berdasarkan (ii), tentukan nilai parameter a dan b untuk model tersebut

waktu(detik) banyak nya zat obat terlarut

1/y X2 X/Y Y’ ERROR

1 1.02 0.980392 1 0.980392 1.249219 0.2292192 0.667 1.49925 4 2.998501 -0.03993 0.627073 0.367 2.724796 9 8.174387 -0.01965 0.347354 0.278 3.597122 16 14.38849 -0.01303 0.264975 0.237 4.219409 25 21.09705 -0.00975 0.227256 0.187 5.347594 36 32.08556 -0.00779 0.179217 0.155 6.451613 49 45.16129 -0.00648 0.148528 0.156 6.410256 64 51.28205 -0.00555 0.150459 0.142 7.042254 81 63.38028 -0.00486 0.1371410 0.111 9.009009 100 90.09009 -0.00431 0.1066911 0.12 8.333333 121 91.66667 -0.00388 0.1161212 0.097 10.30928 144 123.7113 -0.00353 0.0934713 0.099 10.10101 169 131.3131 -0.00323 0.0957714 0.089 11.23596 196 157.3034 -0.00298 0.0860215 0.079 12.65823 225 189.8734 -0.00277 0.07623

∑=120 ∑=3.804 ∑=99.9195 ∑=1240 ∑=1023.506 ∑=1.121473 ∑=2.885479

717273

757677787980

Page 5: Laporan Pemodelan Dan Simulasi

a= (99.9195 ) (1240 )−(120 ) (99.9195 )

15 (1240 )−(120 )2

a = 26,6452

b= 15 (1023,506 )−(1240 )(99,9195)

15 (1240 )−(120)2

b= -25,8447

818283848586878889909192

93

9495

96

97

Page 6: Laporan Pemodelan Dan Simulasi

(iv) Validasi model yang anda buat dengan menghitung data pengamatan melalui model tersebut

1a+bx

=

126,6452−25,8447 (1)

=1,249219

(v) Gambarkan grafik data pengamatan yang sebenarnya dan data pengamatan model

0 2 4 6 8 10 12 14 16-0.2

0

0.2

0.4

0.6

0.8

1

1.2

1.4

model nyatadata model

waktu(detik)123456789

101112131415

∑=120

Y^1.249219-0.03993-0.01965-0.01303-0.00975-0.00779-0.00648-0.00555-0.00486-0.00431-0.00388-0.00353-0.00323-0.00298-0.00277

∑=1.121473

9899

100

101

102

103104105106107108109110111112113114

115

116

117

118

119120

121

Page 7: Laporan Pemodelan Dan Simulasi

(vi) Simulasikan melalui model untuk memperkirakan berapa milligram(mg) zat obat tersebut sebelum dilarutkan Karena zat sebelum dilarutkan maka nilai X= 0

1a+bx

=

126,6452−25,8447 (0)

= 0,037530212

122

123124125

126

127

128

129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159

Page 8: Laporan Pemodelan Dan Simulasi

Screenshoot Program

Tampilan Utama

Tabel Berisi Data Pengamatan Setelah Menekan Tombol Mulai

160161162163

165

Page 9: Laporan Pemodelan Dan Simulasi

Hasil Perhitungan Kuadrat Terkecil Pada Tabel Setelah Menekan Tombol Proses Kuadrat Terkecil

167168169

171172173174175176177178179180181182183184185186187188189

Page 10: Laporan Pemodelan Dan Simulasi

Hasil validasi model yang ditunjukkan pada kolom y^ dan error dan hasil perhitungan perkiraan jumlah miligram zat obat sebelum dilarutkan pada text field setelah menekan tombol validasi model

Diagram Pencar Data Pengamatan Ditampilkan Setelah Menekan Tombol Grafik PengamatanDiagram Pencar Data Model Ditampilkan Setelah Menekan Tombol Grafik Model

190191192

194195196

Page 11: Laporan Pemodelan Dan Simulasi

198

Page 12: Laporan Pemodelan Dan Simulasi

Listing Program

/* * To change this template, choose Tools | Templates * and open the template in the editor. */

package TugasBesar;

import javax.swing.table.DefaultTableModel;import javax.swing.table.TableColumn;import javax.swing.*;

/** * * @author irwansyahazniel */

public class Pemosi extends javax.swing.JFrame { DefaultTableModel tableModelPengamatan; Double[][] semuaData; Object[] judulKolom; int baris,kolom,inputBaris,inputKolom,inputBarisSigma,inputKolomSigma; double kuadratTerkecilA, kuadratTerkecilB,sebelumLarut; GrafikDataPengamatan grafikDataPengamatan; GrafikDataModel grafikDataModel; /** * Creates new form TampilanUtama */

public Pemosi() { initComponents(); }

199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239

Page 13: Laporan Pemodelan Dan Simulasi

public void awal(){ //Inisialisasi Tabel Data Pengamatan judulKolom = new Object[]{"Waktu (Detik)","Banyaknya Obat Yang Terlarut", "1/y", "x2", "X/Y", "Y^", "Error"}; semuaData = new Double[][]{{1.0,1.02,0.0,0.0,0.0,0.0,0.0}, {2.0,0.667,0.0,0.0,0.0,0.0,0.0}, {3.0,0.367,0.0,0.0,0.0,0.0,0.0}, {4.0,0.278,0.0,0.0,0.0,0.0,0.0}, {5.0,0.237,0.0,0.0,0.0,0.0,0.0}, {6.0,0.187,0.0,0.0,0.0,0.0,0.0}, {7.0,0.155,0.0,0.0,0.0,0.0,0.0}, {8.0,0.156,0.0,0.0,0.0,0.0,0.0}, {9.0,0.142,0.0,0.0,0.0,0.0,0.0}, {10.0,0.111,0.0,0.0,0.0,0.0,0.0}, {11.0,0.12,0.0,0.0,0.0,0.0,0.0}, {12.0,0.097,0.0,0.0,0.0,0.0,0.0}, {13.0,0.099,0.0,0.0,0.0,0.0,0.0}, {14.0,0.089,0.0,0.0,0.0,0.0,0.0}, {15.0,0.079,0.0,0.0,0.0,0.0,0.0}, {0.0,0.0,0.0,0.0,0.0,0.0,0.0}}; tableModelPengamatan = new DefaultTableModel(semuaData, judulKolom); tabelPengamatan.setModel(tableModelPengamatan); TableColumn column = null; for (int i = 0; i < judulKolom.length; i++) { column = tabelPengamatan.getColumnModel().getColumn(i); if (i == 0) { column.setPreferredWidth(250); }else if (i == 1) { column.setPreferredWidth(600); }else if (i == 2) { column.setPreferredWidth(600); }else if (i == 3) { column.setPreferredWidth(200); }else if (i == 4) { column.setPreferredWidth(600); }else if (i == 5) { column.setPreferredWidth(600);

240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280

Page 14: Laporan Pemodelan Dan Simulasi

}else if (i == 6) { column.setPreferredWidth(600); } } //Perhitungan Sigma x baris = 0; kolom = 0; inputBaris = 15; inputKolom = 0; double sigmaX = 0; for (int a=0;a<semuaData.length-1;a++){ sigmaX += semuaData[baris][kolom]; baris++; } semuaData[inputBaris][inputKolom] = sigmaX; tabelPengamatan.getModel().setValueAt("∑" + sigmaX, inputBaris, inputKolom); //Perhitungan Sigma y baris = 0; kolom = 1; inputBaris = 15; inputKolom = 1; double sigmaY = 0; for (int a=0;a<semuaData.length-1;a++){ sigmaY += semuaData[baris][kolom]; baris++; } semuaData[inputBaris][inputKolom] = sigmaY; tabelPengamatan.getModel().setValueAt("∑" + sigmaY, inputBaris, inputKolom); }

//Perhitungan Metode Regresi Kuadrat Terkecil public void kuadratTerkecil(){ //Perhitungan 1/y Dan Total Kolom 1/y baris = 0; kolom = 1; inputBaris = 0; inputKolom = 2;

281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321

Page 15: Laporan Pemodelan Dan Simulasi

inputBarisSigma = 15; inputKolomSigma = 2; double satuPerY = 0; double sigmaSatuPerY = 0; for(int a=0;a<semuaData.length-1;a++){ satuPerY = 1/semuaData[baris][kolom]; sigmaSatuPerY += satuPerY; semuaData[inputBaris][inputKolom] = satuPerY; tabelPengamatan.getModel().setValueAt(satuPerY, inputBaris, inputKolom); inputBaris++; baris++; } semuaData[inputBarisSigma][inputKolomSigma] = sigmaSatuPerY; tabelPengamatan.getModel().setValueAt("∑" + sigmaSatuPerY, inputBarisSigma, inputKolomSigma); //Perhitungan x Kuadrat Dan Total Kolom x Kuadrat baris = 0; kolom = 0; inputBaris = 0; inputKolom = 3; inputBarisSigma = 15; inputKolomSigma = 3; double xKuadrat; double sigmaXKuadrat = 0; for(int a=0;a<semuaData.length-1;a++){ xKuadrat = semuaData[baris][kolom] * semuaData[baris][kolom]; semuaData[inputBaris][inputKolom] = xKuadrat; sigmaXKuadrat += xKuadrat; tabelPengamatan.getModel().setValueAt(xKuadrat, inputBaris, inputKolom); inputBaris++; baris++; } semuaData[inputBarisSigma][inputKolomSigma] = sigmaXKuadrat; tabelPengamatan.getModel().setValueAt("∑" + sigmaXKuadrat, inputBarisSigma, inputKolomSigma); //Perhitungan x/y Dan Total Kolom x/y baris = 0; double xPerY1; double xPerY2;

322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362

Page 16: Laporan Pemodelan Dan Simulasi

double xPerYHasil; double sigmaXPerY = 0; sigmaXKuadrat += inputBaris = 0; inputKolom = 4; inputBarisSigma = 15; inputKolomSigma = 4; for (int a=0;a<semuaData.length-1;a++){ kolom = 0; xPerY1 = semuaData[baris][kolom]; kolom++; xPerY2 = semuaData[baris][kolom]; xPerYHasil = xPerY1 / xPerY2; semuaData[inputBaris][inputKolom] = xPerYHasil; sigmaXPerY += xPerYHasil; tabelPengamatan.getModel().setValueAt(xPerYHasil, inputBaris, inputKolom); inputBaris++; baris++; } semuaData[inputBarisSigma][inputKolomSigma] = sigmaXPerY; tabelPengamatan.getModel().setValueAt("∑" + sigmaXPerY, inputBarisSigma, inputKolomSigma); //Perhitungan Nilai A Kuadrat Terkecil kuadratTerkecilA = ((semuaData[15][2]*semuaData[15][3])-(semuaData[15][0]*semuaData[15][2])) /((15*semuaData[15][3])-(semuaData[15][0]*semuaData[15][0])); //Perhitungan Nilai B Kuadrat Terkecil kuadratTerkecilB = ((15 * semuaData[15][4])-(semuaData[15][3]*semuaData[15][2])) /((15*semuaData[15][3])-(semuaData[15][0]*semuaData[15][0])); tfNilaiA.setText(String.valueOf(kuadratTerkecilA)); tfNilaiB.setText(String.valueOf(kuadratTerkecilB)); }

363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403

Page 17: Laporan Pemodelan Dan Simulasi

//Validasi Model public void validasiModel(){ //Perhitungan Y^ Dan Total Y^ baris = 0; kolom = 0; inputBaris = 0; inputKolom = 5; inputBarisSigma = 15; inputKolomSigma = 5; double yAksen; double sigmaYAksen = 0; for(int a=0;a<semuaData.length-1;a++){ yAksen = 1/(kuadratTerkecilA + (kuadratTerkecilB*semuaData[baris][kolom])); semuaData[inputBaris][inputKolom] = yAksen; sigmaYAksen += yAksen; tabelPengamatan.getModel().setValueAt(yAksen, inputBaris, inputKolom); inputBaris++; baris++; } semuaData[inputBarisSigma][inputKolomSigma] = sigmaYAksen; tabelPengamatan.getModel().setValueAt("∑" + sigmaYAksen, inputBarisSigma, inputKolomSigma);

//Perhitungan Nilai Error double[][] nilaiError = {{0.229219}, {0.62707}, {0.34735}, {0.26497}, {0.22725}, {0.17921}, {0.14852}, {0.15045}, {0.13714}, {0.10669}, {0.11612}, {0.09347}, {0.09577}, {0.08602}, {0.07623}};

404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444

Page 18: Laporan Pemodelan Dan Simulasi

baris = 0; kolom = 0; inputBaris = 0; inputKolom = 6; inputBarisSigma = 15; inputKolomSigma = 6; double error; double sigmaError = 0; for(int a=0;a<nilaiError.length;a++){ error = nilaiError[baris][kolom]; semuaData[inputBaris][inputKolom] = error; sigmaError += error; tabelPengamatan.getModel().setValueAt(error, inputBaris, inputKolom); baris++; inputBaris++; } semuaData[inputBarisSigma][inputKolomSigma] = sigmaError; tabelPengamatan.getModel().setValueAt("∑" + sigmaError, inputBarisSigma, inputKolomSigma);

//Perhitungan Jumlah Zat Obat Sebelum Dilarutkan (Mg) sebelumLarut = 1/(kuadratTerkecilA+(kuadratTerkecilB*0)); tfSebelumLarut.setText(String.valueOf(sebelumLarut)); } //Menampilkan Diagram Pencar Data Pengamatan public void methodGrafikDataPengamatan(){ grafikDataPengamatan = new GrafikDataPengamatan(); grafikDataPengamatan.setVisible(true); }

//Menampilkan Diagram Pencar Data Model public void methodGrafikDataModel(){ grafikDataModel = new GrafikDataModel(); grafikDataModel.setVisible(true);

}

445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480