Anda di halaman 1dari 16

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

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
dengan a,b adalah parameter data
pengamatan, dan x, y adalah variabel data
pengamatan. Maka

(i)

Waktu(detik)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Banyaknya Zat
Obat Terlarut
(mg)
1.02
0.667
0.367
0.278
0.237
0.187
0.155
0.156
0.142
0.111
0.12
0.097
0.099
0.089
0.079

Tentukan uraian verifikasi matematis dengan linierisasi untuk pembentukan model


tersebut agar metode regresi linier dapat dilakukan
Perkiraan 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 regresinya


Koefisien-koefisien adan b dapat dihitung seperti pada model garis lurus dengan
rumus

(iii)

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

1/y

X2

X/Y

ERROR

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

banyak nya zat


obat terlarut
1.02
0.667
0.367
0.278
0.237
0.187
0.155
0.156
0.142
0.111
0.12
0.097
0.099
0.089
0.079

0.980392
1.49925
2.724796
3.597122
4.219409
5.347594
6.451613
6.410256
7.042254
9.009009
8.333333
10.30928
10.10101
11.23596
12.65823

1
4
9
16
25
36
49
64
81
100
121
144
169
196
225

0.980392
2.998501
8.174387
14.38849
21.09705
32.08556
45.16129
51.28205
63.38028
90.09009
91.66667
123.7113
131.3131
157.3034
189.8734

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

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

=120

=3.804

=99.9195

=1240

=1023.506

=1.121473

=2.885479

waktu(detik)

a=

)(

) (

)(

) (

a = 26,6452
b=

) (
(

b= -25,8447

) (

)(
)

(iv)

Validasi model yang anda buat dengan menghitung data pengamatan melalui
model tersebut
=
=1,249219

( )

waktu(detik)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
=120
(v)

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

Gambarkan grafik data pengamatan


model

yang sebenarnya dan data pengamatan

1.4
1.2
1
0.8
model nyata

0.6

data model

0.4
0.2
0
-0.2

10

15

20

(vi)

Simulasikan melalui model untuk memperkirakan berapa milligram(mg) zat obat


tersebut sebelum dilarutkan
Karena zat sebelum dilarutkan maka nilai X= 0
=
= 0,037530212

( )

Screenshoot Program
Tampilan Utama

Tabel Berisi Data Pengamatan Setelah Menekan Tombol Mulai

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

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


Pengamatan

Diagram Pencar Data Model Ditampilkan Setelah Menekan Tombol Grafik Model

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

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();
}

42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82

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);

83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123

}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;

124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164

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;

165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205

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));
}

206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246

//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}};

247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282

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);
}