BAB IV HASIL DAN PEMBAHASAN
4.10 Pengujian Efektivitas Sistem
Pengujian efektifitas sitem ini bertujuan untuk meninjau apakah data yang diperoleh dari hasil pengukuran dengan menggunakan software Visual Basic ini sesuai dengan data yang ditampilkan pada LCD. Untuk itu perlu dilakukan perbandingan antara data yang didapat dari LCD dengan data yang didapat dari hasil pengukuran menggunakansoftware Visual Basicini.
% galat total yang dihasilkan dari manipulasi data sampleadalah sebesar 0.61 %. Sehingga error yang dihasilkan akibat manipulasi data ini tidak terlalu berpengaruh terhadap pengolahan datanya.
Tahap-tahap proses pengolahan data diantaranya:
1. Perhitungan persamaan kurva baku senyawa 1 dengan 2 jenis lambda maksimum.
2. Perhitungan persamaan kurva baku senyawa 2 dengan 2 jenis lambda maksimum.
3. Perhitungan nilai konsentrasi senyawa 1 untuk 5samplelarutan. 4. Perhitungan nilai konsentrasi senyawa 2 untuk 5samplelarutan.
Di dalam penelitian ini senyawa yang dipakai yaitu senyawa KmnO4 untuk senyawa1 dan senyawa K2Cr2O7 untuk senyawa2. Kedua senyawa ini digunakan karena mampu menyerap cahaya pada lambda antara 380-700 dengan menggunakan sinarvisible.
Adapun tahap-tahap perhitungannya yaitu sebagai berikut:
1. Pembuatan larutan baku
Buat larutan induk KmnO4
Disediakan 5 samplelarutan baku KmnO4dengan masing-masing 10, 20, 30, 40, dan 50 ppm.
Buat larutan induk K2Cr2O7
Disediakan 5sample larutan baku K2Cr2O7dengan masing-masing 20,40,60,80,dan 100 ppm.
2. Penentuan lambda maximum
Untuk senyawa KmnO4
1. Spektrofotometri akan melakukanscanning serapan larutan baku senyawa KmnO430 ppm pada lambda 380-700 nm.
Untuk senyawa K2Cr2O7
3. Spektrofotometri akan melakukanscanning serapan larutan baku senyawa K2Cr2O740 ppm pada lambda 380-700 nm. 4. Dari grafik yang dihasilkan maka dapat diperoleh lambda
maksimum dari senyawa K2Cr2O7ini.
Pada spektrofotometri ini lambda maksimum akan langsung ditampilkan pada layar LCD sehingga dapat langsung diketahui lambda maksimum untuk kedua jenis senyawa ini.
Dimana lambda maksimum yang diperoleh yaitu: Lambda maksimum senyawa KmnO4=563 nm Lambda maksimum senyawa K2Cr2O7=591 nm
Data lambda maksimal dua jenis senyawa yang diterima padavisual basic juga menunjukkan hasil yang sama.
3. Pembuatan kurva baku
Dari dua lambda maksimum dari dua jenis senyawa yang telah didapat sebelumnya, maka selanjutnya lima sample untuk dua macam senyawa yang digunakan diukur absorbansinya dengan dua jenis lambda maksimum itu. Kemudian data-data yang diperoleh akan digunakan untuk pembuatan persaamaan kurva baku dan grafik kurva baku untuk kedua jenis senyawa. Adapun data serapan yang diperoleh dari spektrofotometri ini adalah sebagai berikut:
Senyawa KmnO4
Data absorbansi untuk lambda maksimum satu:
KmnO410 ppm=0.607656 KmnO420 ppm=0.69378 KmnO430 ppm=0.732057
KmnO450 ppm=0.97129
Data absorbansi untuk lambda maksimum dua:
KmnO410 ppm=0.80861 KmnO420 ppm=0.8756 KmnO430 ppm=0.96172 KmnO440 ppm=0.97129 KmnO450 ppm=0.98086 Senyawa K2Cr2O7
Data absorbansi untuk lambda maksimum satu:
K2Cr2O720 ppm =0.54067 K2Cr2O740 ppm =0.55024 K2Cr2O760 ppm =0.56938 K2Cr2O780 ppm =0.72249 K2Cr2O7100 ppm =0.81818
Data absorbansi untuk lambda maksimum dua:
K2Cr2O720 ppm =0.63636 K2Cr2O740 ppm =0.64593 K2Cr2O760 ppm =0.66507 K2Cr2O780 ppm =0.68421 K2Cr2O7100 ppm =0.83732
Dengan memperoleh data absorbansi seperti di atas, maka dapat dihitung persamaan regresi linearnya yang merupakan hubungan antara konsentrasi dengan serapan senyawa tersebut. Rumus yang digunakan sebagai berikut:
Sehingga diperoleh persamaan kurva baku untuk :
KmnO4 dengan lambda maksimal 563: y=9.47368751375002E-03 x0.499521431787499
KmnO4 dengan lambda maksimal 591: y=3.63636617484375E-03 x +0.4220094167093
K2Cr2O7 dengan lambda maksimal 563: y=4.40191090890626E-03 x +0.7875598975328
K2Cr2O7 dengan lambda maksimal 591: y=2.2009554421875E-03 x + 0.56172257746875
Dari persamaan kurva baku seperti di atas, maka dengan program pada Visual Basicdapat diplot grafik kurva bakunya. Programnya sebagai berikut:
Public Sub Form_Load()
'konfigurasi picture Picture1.ScaleMode = 1 Picture1.ScaleHeight = 450 Picture1.ScaleWidth = 300 Picture1.AutoRedraw = True Picture1.ForeColor = vbGreen Picture1.DrawStyle = 0 Picture1.DrawWidth = 2 End Sub
Private Sub Command1_Click()
'mencari ordinat garis kurva baku: For x = 0 To 350
c(x) = x
ordinat_y(x) = slope_b * c(x) + intercept_a x = x + 0.5
Next x
End Sub
Dalam menentukan besarnya konsentrasi dari tiap senyawa digunakan perhitungan matrix dengan mencari determinannya. Adapun konsentrasi yang didapat seperti pada tabel 4.9.
Tabel 4.9 Nilai konsentrasi senyawa (perekaman)
KmnO4(ppm) K2Cr2O7 (ppm) Sampel 1 376.0 958.3191 Sampel 2 493.4 1226.183 Sampel 3 476.0 1201.798 Sampel 4 497.8 1259.454 Sampel 5 489.1 1249.435
Gambar 4.16 Tampilan data perekaman dengan grafik
Untuk menguji keefektifan nilai konsentrasi yang telah direkam, maka perlu dilakukan perbandingan dengan nilai yang didapat dengan perhitungan manual. Adapun langkah-langkah untuk menentukan nilai tersebut adalah sebagai berikut :
sampleyang digunakan. Berikut nilainya :
a. Slope b KmnO4lambda satu = 9,473875 x 10-3(E1) b. Slope b KmnO4lambda dua = 3,6363661 x 10-3(E2) c. Slope b K2Cr2O7lambda satu = 4,0419109 x 10-3(E3) d. Slope b K2Cr2O7lambda satu = 2,02009554 x 10-3(E4) 2. Karena nilai slope b dari tiap persamaan kurva baku, maka nilai
konsentrasi dari tiap sampel dihitung dengan determinan matrix. Nilai determinannya: Determinan = (E1*E4)-(E2*E3) Determinan = (9,473875 x10-3x 2,02009554 x 10-3) – (3,6363661x10 -3 x4,0419109 x 10-3) Determinan = 4,440265
3. Setelah memperoleh nilai determinannya, maka dapat langsung dicari nilai tiap masing-masingsamplenya :
a. Konsentrasi untuksamplesatu:
Nilai-nilai absorbansi larutan campuran digunakan untuk menghitung nilai konsentrasi dari tiap senyawa.
KmnO4= ( 1 / determinan) x (( E4 x senyawa 1 ) – ( E2 x senyawa 4 ))
= (1 / 4,440265 ) x ((2,02009554 x 10-3x 0,6555023 ) – (3,6363661 x 10-3x 0,741627 ))
= 51,54823 ppm
K2Cr2O7= ( 1 / determinan) x (( E1 x senyawa 4 ) – ( E3x senyawa 1 ))
= (1 / 4,440265 ) x ((9,473875 x 10-3x 0,9043062) – (4,0419109 x 10-3x 0,6555023))
Tabel 4.10 Nilai konsentrasi senyawa (manual) KmnO4(ppm) K2Cr2O7(ppm) Sampel 2 68.68197 212.66845 Sampel 3 65.68197 206.5784 Sampel 4 68.53719 216.51819 Sampel 5 66.94015 214.11267
4. Dari data konsentrasi yang dihitung secara manual, maka didapat galatnya yang ditampilkan pada tabel 4.11.
Dari galat yang diperoleh, maka dapat disimpulkan bahwa nilai yang diolah dan ditampilkan pada Visual Basic masih menunjukkan nilai yang salah dengan % galat yang besar. Hal ini disebabkan karena perhitungan pada Visual Basic menggunakan variabel dalam bentuk string, sehingga untuk perhitungan yang benar, diperlukan pengubahan nilai variabel dari string menjadi desimal.Errorini disebabkan karena masih terdapat beberapa perhitungan pada Visual Basic yang menggunakan data string tanpa diubah menjadi data desimal terlebih dahulu.
Tabel 4.11 Perbandingan nilai konsentrasi senyawa
KmnO4( % ) K2Cr2O7( % ) Sample1 629.4139 483.06816 Sample2 618.38359 476.57024 Sample3 625.24481 481.25873 Sample4 626.32099 481.68508 Sample5 631.69839 483.5409
53
BAB V
KESIMPULAN DAN SARAN
5.1 KESIMPULAN
Berdasarkan analisis terhadap data yang diperoleh dari hasil penelitian dan setelah dilakukan pembahasan, maka dapat disimpulkan bahwa :
1. Sistem spektrofotometer dapat dikontrol secara otomatis melalui software Visual Basicpada PC.
2. Sistem remote dapat menampilkan data-data hasil pengiriman, pengolahan data untuk persaamaan dan grafik kurva baku serta nilai konsentrasi zat berhasil ditampilkan, namun terdapat error pada penentuan nilai konsentrasi zat, sehingga dapat dikatakan sistem ini dapat berjalan dengan baik.
3. Sistem spektrofotometer yang dibuat belum dapat menghasilkan data yang presisi seperti spektrofotometer buatan pabrik yang sudah ada karena pengaruh kerusakan pada kabel serial serta perhitungan data yang dimanipulasi sebelumnya.
5.2 SARAN
Dari kekurangan dalam pembuatan sistem ini, maka perlu dilakukan pengembangan agar menjadi sistem yang lebih baik, yaitu :
Dengan ketidaksempurnaan pembuatan alat ini, maka untuk pengembangan lebih lanjut diperlukan beberapa saran agar lebih baik, meliputi:
1. Penutup alat dibuat lebih rapat sehingga pengukuran tidak terpengaruh dengan sumber cahaya luar.
54
[1] Sastrohadimidjojo, Hardjono, 2006,Spektroskopi, Yogyakarta : LIBERTY YOGYAKARTA
[2] Sunyoto, Andi, Maret 2007,Pemrograman Database dengan Visual Basic dan Microsoft SQL, Yogyakarta : CV ANDI OFFSET
[3] http://chesterz2008.wordpress.com/2010/11/20/job-5-bab-teori-dasar-pengkabelan-rs-232-pada-konektor-db9/, diakses 18 Oktober 2010 [4] ---, 2006,Data Sheet Microcontroler ATMEGA8535,ATMEL
[5] http://www.jonathansarwono.info/regresi/regresi.htm/, diakses 20 Oktober 2010
[6] http://www.scribd.com/doc/39839210/TEORI-DASAR-MATRIKS, diakses 14 September 2010
[7] Harini, B.W., Priantoro, A.T., Utomo, A.B.S., 2009, Aplikasi Spektrofotometer Untuk Pengukuran Konsentrasi Caffeine Dan Paracetamol
HASIL PEREKAMAN DATA
1. Data Kuvet Kosong
Data asli Data manipulasi
Data kuvet kosong 2.099999901 2.09
2. Data Lambda Maksimum untuk SenyawaKmnO4
Lambda maksimum=563 nm
3. Data Lambda Maksimum untuk SenyawaK2Cr2O7
Lambda maksimum= 591 nm
4. Data Sampel untuk SenyawaKmnO4
Senyawa1 lambda 1 Data asli Data manipulasi
Sampel 10 ppm 1.279999731 1.27 Sampel 20 ppm 1.459999916 1.45 Sampel 30 ppm 1.539999719 1.53 Sampel 40 ppm 1.919999954 1.91 Sampel 50 ppm 2.039999769 2.03
Senyawa1 lambda 2 Data asli Data manipulasi
Sampel 10 ppm 1.699999925 1.69 Sampel 20 ppm 1.839999911 1.83 Sampel 30 ppm 2.039999719 2.03 Sampel 40 ppm 2.039999769 2.03 Sampel 50 ppm 2.0599999844 2.05
5. Data Sampel untuk SenyawaK2Cr2O7
Senyawa 2 lambda1 Data asli Data manipulasi
Sampel 20ppm 1.139999863 1.13 Sampel 40ppm 1.159999963 1.15 Sampel 60 ppm 1.199999925 1.19 Sampel 80 ppm 1.519999858 1.51 Sampel 100 ppm 1.719999905 1.71
Senyawa 2 lambda2 Data asli Data manipulasi
Sampel 20ppm 1.339999911 1.33 Sampel 40ppm 1.359999911 1.35 Sampel 60 ppm 1.39999892 1.39 Sampel 80 ppm 1.439999934 1.43 Sampel 100 ppm 1.759999867 1.75
6. Data Sampel untuk Larutan Campuran
Lambda max 1 Data asli Data manipulasi
Sampel1 1.379999872 1.37 Sampel 2 1.519999858 1.51 Sampel 3 1.639999863 1.63 Sampel 4 1.73999888 1.73 Sampel 5 1.819999883 1.81
Lambda max 2 Data asli Data manipulasi Sampel 1 1.55999994 1.55 Sampel 2 1.899999854 1.89 Sampel 3 1.919999954 1.91 Sampel 4 2.019999883 2.01 Sampel 5 2.039999710 2.03
LIST PROGRAM VISUAL BASIC FORM PEMILIHAN
Private Sub Command1_Click() Form1.Show
Me.Hide End Sub
Private Sub Command2_Click() Form2.Show
Me.Hide End Sub
Private Sub Form_Load() Me.Show
LIST PROGRAM VISUAL BASIC FORM PEREKAMAN
'deklarasi pencarian ordinat kurva baku : Dim c(350) As Single
Dim c1(350) As Single Dim c2(350) As Single Dim c3(350) As Single
Dim ordinat_y(350) As Single Dim ordinat_y_x(350) As Single Dim ordinat_yj(350) As Single Dim ordinat_yj_x(350) As Single
'deklarasi untuk perhitungan regresi senyawa 1 lambda 360 : Dim k As Integer
Dim k1 As Integer Dim L As Integer Dim h1 As Integer Dim N As Single
Dim jumlah_xi, jumlah_yi, jumlah_xi_kuadrat, jumlah_yi_kuadrat, jumlah_xiyi As Single
Dim slope_b, intercept_a, rata_xi, rata_yi, atas, bawah As Single
'deklarasi untuk perhitungan regresi senyawa 1 lambda 540 : Dim N1 As Single
Dim jumlah_xj, jumlah_yj, jumlah_xj_kuadrat, jumlah_yj_kuadrat, jumlah_xjyj As Single
Dim slope_bj, intercept_aj, rata_xj, rata_yj, atasj, bawahj As Single
'deklarasi untuk perhitungan regresi senyawa 2 lambda 360:
Dim jumlah_xi1, jumlah_yi1, jumlah_xi1_kuadrat, jumlah_yi1_kuadrat, jumlah_xi1yi1 As Single
Dim slope_b1, intercept_a1, rata_xi1, rata_yi1, atas1, bawah1 As Single
'deklarasi untuk perhitungan regresi senyawa 2 lambda 540:
Dim jumlah_xj1, jumlah_yj1, jumlah_xj1_kuadrat, jumlah_yj1_kuadrat, jumlah_xj1yj1 As Single
Dim slope_b1j, intercept_a1j, rata_xj1, rata_yj1, atas1j, bawah1j As Single
'deklarasi untuk perhitungan menyeluruh :
Dim sample_baku, C_sample1, C_sample2, C_sample3, C_sample4, C_sample5 As Single
Dim sample_bakux, C_sample_x1, C_sample_x2, C_sample_x3, C_sample_x4, C_sample_x5 As Single
Dim terbesar, terbesar1, i, j As Single Dim index, index1 As Integer
'deklarasi untuk tampilan grafik Dim x, x1, z, z1 As Single Dim abs1, abs2 As Integer Dim serapan1(8) As Integer
'deklarasi untuk senyawa campuran : 'lambda 360 :
Dim senyawa1, senyawa2, senyawa3, senyawa7, senyawa8 As Single 'lambda 540 :
Dim senyawa4, senyawa5, senyawa6, senyawa9, senyawa10 As Single Dim E1, E2, E3, E4 As Single
Dim determinan As Single
Dim pharacetamol1, kafein1 As Single Dim pharacetamol2, kafein2 As Single Dim pharacetamol3, kafein3 As Single Dim pharacetamol4, kafein4 As Single Dim pharacetamol5, kafein5 As Single
Private Sub Command1_Click() Command1.BackColor = &HFF& Command2.BackColor = &HFFFF00 N = 5 N1 = 5 Text8.Text = lambda_max_senyawa_1 Text35.Text = lambda_max_senyawa_1 Text49.Text = lambda_max_senyawa_1 Text51.Text = lambda_max_senyawa_1 Text9.Text = lambda_max_senyawa_2 Text36.Text = lambda_max_senyawa_2 Text50.Text = lambda_max_senyawa_2 Text52.Text = lambda_max_senyawa_2
'perhitungan sample untuk senyawa satu untuk lambda 360 : C_sample1 = 10
C_sample2 = 20 C_sample3 = 30 C_sample4 = 40
C_sample5 = 50
Text3.Text = C_sample1 & " ppm" Text4.Text = C_sample2 & " ppm" Text5.Text = C_sample3 & " ppm" Text6.Text = C_sample4 & " ppm" Text7.Text = C_sample5 & " ppm" Text31.Text = "blanko" Text33.Text = 0 Text10.Text = senyawa1_lambda1(1) Text11.Text = senyawa1_lambda1(2) Text12.Text = senyawa1_lambda1(3) Text13.Text = senyawa1_lambda1(4) Text14.Text = senyawa1_lambda1(5)
'data sample untuk senyawa satu untuk lambda 540 : Text37.Text = 0 Text38.Text = senyawa1_lambda2(1) Text39.Text = senyawa1_lambda2(2) Text40.Text = senyawa1_lambda2(3) Text41.Text = senyawa1_lambda2(4) Text42.Text = senyawa1_lambda2(5)
'perhitungan sample untuk senyawa dua lambda 360 : C_sample_x1 = 20
C_sample_x2 = 40 C_sample_x3 = 60 C_sample_x4 = 80 C_sample_x5 = 100
Text17.Text = C_sample_x1 & " ppm" Text18.Text = C_sample_x2 & " ppm" Text19.Text = C_sample_x3 & " ppm" Text20.Text = C_sample_x4 & " ppm" Text21.Text = C_sample_x5 & " ppm"
Text32.Text = "blanko" Text34.Text = 0 Text22.Text = senyawa2_lambda1(1) Text23.Text = senyawa2_lambda1(2) Text24.Text = senyawa2_lambda1(3) Text25.Text = senyawa2_lambda1(4) Text26.Text = senyawa2_lambda1(5)
Text43.Text = 0 Text44.Text = senyawa2_lambda2(1) Text45.Text = senyawa2_lambda2(2) Text46.Text = senyawa2_lambda2(3) Text47.Text = senyawa2_lambda2(4) Text48.Text = senyawa2_lambda2(5)
'pencarian kurva baku menggunakan regresi senyawa 1 lambda 360:
jumlah_xi = C_sample1 + C_sample2 + C_sample3 + C_sample4 + C_sample5 jumlah_yi = Val(senyawa1_lambda1(1)) + Val(senyawa1_lambda1(2)) + Val(senyawa1_lambda1(3)) + Val(senyawa1_lambda1(4)) +
Val(senyawa1_lambda1(5))
jumlah_xi_kuadrat = (C_sample1 * C_sample1) + (C_sample2 * C_sample2) + (C_sample3 * C_sample3) + (C_sample4 * C_sample4) + (C_sample5 * C_sample5)
jumlah_yi_kuadrat = (senyawa1_lambda1(1) * senyawa1_lambda1(1)) + (senyawa1_lambda1(2) * senyawa1_lambda1(2)) + (senyawa1_lambda1(3) * senyawa1_lambda1(3)) + (senyawa1_lambda1(4) * senyawa1_lambda1(4)) + (senyawa1_lambda1(5) * senyawa1_lambda1(5))
jumlah_xiyi = (C_sample1 * senyawa1_lambda1(1)) + (C_sample2 *
senyawa1_lambda1(2)) + (C_sample3 * senyawa1_lambda1(3)) + (C_sample4 * senyawa1_lambda1(4)) + (C_sample5 * senyawa1_lambda1(5))
'cari besar slope b senyawa 1 lambda 360 :
atas = (N * jumlah_xiyi) - (jumlah_xi * jumlah_yi)
bawah = (N * jumlah_xi_kuadrat) - (jumlah_xi * jumlah_xi) slope_b = atas / bawah
'mencari intercept a senyawa 1 lambda 360: rata_xi = jumlah_xi / 5
rata_yi = jumlah_yi / 5
intercept_a = rata_yi - (slope_b * rata_xi)
'pencarian kurva baku menggunakan regresi senyawa 1 lambda 540:
jumlah_yj = Val(senyawa1_lambda2(1)) + Val(senyawa1_lambda2(2)) + Val(senyawa1_lambda2(3)) + Val(senyawa1_lambda2(4)) +
Val(senyawa1_lambda2(5))
jumlah_yj_kuadrat = (senyawa1_lambda2(1) * senyawa1_lambda2(1)) + (senyawa1_lambda2(2) * senyawa1_lambda2(2)) + (senyawa1_lambda2(3) * senyawa1_lambda2(3)) + (senyawa1_lambda2(4) * senyawa1_lambda2(4)) + (senyawa1_lambda2(5) * senyawa1_lambda2(5))
jumlah_xjyj = (C_sample1 * senyawa1_lambda2(1)) + (C_sample2 *
senyawa1_lambda2(2)) + (C_sample3 * senyawa1_lambda2(3)) + (C_sample4 * senyawa1_lambda2(4)) + (C_sample5 * senyawa1_lambda2(5))
'cari besar slope b senyawa 1 lambda 540:
atasj = (N1 * jumlah_xjyj) - (jumlah_xi * jumlah_yj)
bawahj = (N1 * jumlah_xi_kuadrat) - (jumlah_xi * jumlah_xi) slope_bj = atasj / bawahj
'mencari intercept a senyawa 1 lambda 540: rata_xj = jumlah_xi / 5
rata_yj = jumlah_yj / 5
intercept_aj = rata_yj - (slope_bj * rata_xj)
'pencarian kurva baku menggunakan regresi senyawa 2 lambda 360:
jumlah_xi1 = C_sample_x1 + C_sample_x2 + C_sample_x3 + C_sample_x4 + C_sample_x5
jumlah_yi1 = Val(senyawa2_lambda1(1)) + Val(senyawa2_lambda1(2)) + Val(senyawa2_lambda1(3)) + Val(senyawa2_lambda1(4)) +
Val(senyawa2_lambda1(5))
jumlah_xi1_kuadrat = (C_sample_x1 * C_sample_x1) + (C_sample_x2 *
C_sample_x2) + (C_sample_x3 * C_sample_x3) + (C_sample_x4 * C_sample_x4) + (C_sample_x5 * C_sample_x5)
jumlah_yi1_kuadrat = (senyawa2_lambda1(1) * senyawa2_lambda1(1)) + (senyawa2_lambda1(2) * senyawa2_lambda1(2)) + (senyawa2_lambda1(3) * senyawa2_lambda1(3)) + (senyawa2_lambda1(4) * senyawa2_lambda1(4)) + (senyawa2_lambda1(5) * senyawa2_lambda1(5))
jumlah_xi1yi1 = (C_sample_x1 * senyawa2_lambda1(1)) + (C_sample_x2 * senyawa2_lambda1(2)) + (C_sample_x3 * senyawa2_lambda1(3)) + (C_sample_x4 * senyawa2_lambda1(4)) + (C_sample_x5 * senyawa2_lambda1(5))
'cari besar slope b senyawa 2 lambda 360:
atas1 = (N * jumlah_xi1yi1) - (jumlah_xi1 * jumlah_yi1)
bawah1 = (N * jumlah_xi1_kuadrat) - (jumlah_xi1 * jumlah_xi1) slope_b1 = atas1 / bawah1
'mencari intercept a senyawa 2 lambda 360: rata_xi1 = jumlah_xi1 / 5
rata_yi1 = jumlah_yi1 / 5
intercept_a1 = rata_yi1 - (slope_b1 * rata_xi1)
'pencarian kurva baku menggunakan regresi senyawa 2 lambda 540:
jumlah_yj1 = Val(senyawa2_lambda2(1)) + Val(senyawa2_lambda2(2)) + Val(senyawa2_lambda2(3)) + Val(senyawa2_lambda2(4)) +
jumlah_yj1_kuadrat = (senyawa2_lambda2(1) * senyawa2_lambda2(1)) + (senyawa2_lambda2(2) * senyawa2_lambda2(2)) + (senyawa2_lambda2(3) * senyawa2_lambda2(3)) + (senyawa2_lambda2(4) * senyawa2_lambda2(4)) + (senyawa2_lambda2(5) * senyawa2_lambda2(5))
jumlah_xj1yj1 = (C_sample_x1 * senyawa2_lambda2(1)) + (C_sample_x2 * senyawa2_lambda2(2)) + (C_sample_x3 * senyawa2_lambda2(3)) + (C_sample_x4 * senyawa2_lambda2(4)) + (C_sample_x5 * senyawa2_lambda2(5))
'cari besar slope b senyawa 2 lambda 540:
atas1j = (N * jumlah_xj1yj1) - (jumlah_xi1 * jumlah_yj1)
bawah1j = (N * jumlah_xi1_kuadrat) - (jumlah_xi1 * jumlah_xi1) slope_b1j = atas1j / bawah1j
'mencari intercept a senyawa 2 lambda 540: rata_xj1 = jumlah_xi1 / 5
rata_yj1 = jumlah_yj1 / 5
intercept_a1j = rata_yj1 - (slope_b1j * rata_xj1)
'mencari ordinat garis kurva baku 1 lambda 360: For x = 0 To 350
c(x) = x
ordinat_y(x) = slope_b * c(x) + intercept_a x = x + 0.5
Next x
'mencari ordinat garis kurva baku 1 lambda 540: For x1 = 0 To 350
c1(x1) = x1
ordinat_yj(x1) = slope_bj * c1(x1) + intercept_aj x1 = x1 + 0.5
Next x1
'mencari ordinat garis kurva baku 2 lambda 360: For z = 0 To 350
c2(z) = z
ordinat_y_x(z) = slope_b1 * c2(z) + intercept_a1 z = z + 0.5
Next z
'mencari ordinat garis kurva baku 2 lambda 540: For z1 = 0 To 350
c3(z1) = z1
z1 = z1 + 0.5 Next z1
' menampilkan persamaan garis senyawa 1 lambda 360: Text15.Text = slope_b
Text16.Text = intercept_a
' menampilkan persamaan garis senyawa 1 lambda 540: Text53.Text = slope_bj
Text54.Text = intercept_aj
' menampilkan persamaan garis senyawa 2 lambda 360 : Text28.Text = slope_b1
Text29.Text = intercept_a1
' menampilkan persamaan garis senyawa 2 lambda 540: Text55.Text = slope_b1j
Text56.Text = intercept_a1j
'penentuan konsentrasi senyawa 1 dan senyawa 2 : Text61.Text = larutan_lambda1(1) Text62.Text = larutan_lambda1(2) Text63.Text = larutan_lambda1(3) text1.Text = larutan_lambda1(4) Text57.Text = larutan_lambda1(5) Text64.Text = larutan_lambda2(1) Text65.Text = larutan_lambda2(2) Text66.Text = larutan_lambda2(3) Text30.Text = larutan_lambda2(4) Text58.Text = larutan_lambda2(5) senyawa1 = Text61.Text senyawa2 = Text62.Text senyawa3 = Text63.Text senyawa4 = Text64.Text senyawa5 = Text65.Text senyawa6 = Text66.Text senyawa7 = text1.Text senyawa8 = Text57.Text senyawa9 = Text30.Text senyawa10 = Text58.Text E1 = Val(Text15.Text)
E2 = Val(Text53.Text) E3 = Val(Text28.Text) E4 = Val(Text55.Text) Text67.MaxLength = 5 Text68.MaxLength = 5 Text69.MaxLength = 5 Text59.MaxLength = 5 Text73.MaxLength = 5 If E1 = 0 Then
pharacetamol1 = (Val(senyawa1) + intercept_a1) / slope_b1 pharacetamol2 = (Val(senyawa2) + intercept_a1) / slope_b1 pharacetamol3 = (Val(senyawa3) + intercept_a1) / slope_b1 pharacetamol4 = (Val(senyawa7) + intercept_a1) / slope_b1 pharacetamol5 = (Val(senyawa8) + intercept_a1) / slope_b1 Text67.Text = pharacetamol1
Text68.Text = pharacetamol2 Text69.Text = pharacetamol3 Text59.Text = pharacetamol4 Text73.Text = pharacetamol5
kafein1 = (Val(senyawa4) - (slope_bj * pharacetamol1)) / slope_b1j kafein2 = (Val(senyawa5) - (slope_bj * pharacetamol2)) / slope_b1j kafein3 = (Val(senyawa6) - (slope_bj * pharacetamol3)) / slope_b1j kafein4 = (Val(senyawa9) - (slope_bj * pharacetamol4)) / slope_b1j kafein5 = (Val(senyawa10) - (slope_bj * pharacetamol5)) / slope_b1j Text70.Text = kafein1 Text71.Text = kafein2 Text72.Text = kafein3 Text60.Text = kafein4 Text74.Text = kafein5 ElseIf E2 = 0 Then
pharacetamol1 = (Val(senyawa1) + intercept_a) / slope_b pharacetamol2 = (Val(senyawa2) + intercept_a) / slope_b pharacetamol3 = (Val(senyawa3) + intercept_a) / slope_b pharacetamol4 = (Val(senyawa7) + intercept_a) / slope_b pharacetamol5 = (Val(senyawa8) + intercept_a) / slope_b Text67.Text = pharacetamol1
Text68.Text = pharacetamol2 Text69.Text = pharacetamol3 Text59.Text = pharacetamol4 Text73.Text = pharacetamol5
kafein2 = (Val(senyawa5) - (slope_bj * pharacetamol2)) / slope_b1j kafein3 = (Val(senyawa6) - (slope_bj * pharacetamol3)) / slope_b1j kafein4 = (Val(senyawa9) - (slope_bj * pharacetamol4)) / slope_b1j kafein5 = (Val(senyawa10) - (slope_bj * pharacetamol5)) / slope_b1j Text70.Text = kafein1 Text71.Text = kafein2 Text72.Text = kafein3 Text60.Text = kafein4 Text74.Text = kafein5 ElseIf E3 = 0 Then
pharacetamol1 = (Val(senyawa4) + intercept_a1j) / slope_b1j pharacetamol2 = (Val(senyawa5) + intercept_a1j) / slope_b1j pharacetamol3 = (Val(senyawa6) + intercept_a1j) / slope_b1j pharacetamol4 = (Val(senyawa9) + intercept_a1j) / slope_b1j pharacetamol5 = (Val(senyawa10) + intercept_a1j) / slope_b1j Text67.Text = pharacetamol1
Text68.Text = pharacetamol2 Text69.Text = pharacetamol3 Text59.Text = pharacetamol4 Text73.Text = pharacetamol5
kafein1 = (Val(senyawa4) - (slope_b1 * pharacetamol1)) / slope_b kafein2 = (Val(senyawa5) - (slope_b1 * pharacetamol2)) / slope_b kafein3 = (Val(senyawa6) - (slope_b1 * pharacetamol3)) / slope_b kafein4 = (Val(senyawa9) - (slope_b1 * pharacetamol4)) / slope_b kafein5 = (Val(senyawa10) - (slope_b1 * pharacetamol5)) / slope_b Text70.Text = kafein1 Text71.Text = kafein2 Text72.Text = kafein3 Text60.Text = kafein4 Text74.Text = kafein5 ElseIf E4 = 0 Then
pharacetamol1 = (Val(senyawa4) + intercept_aj) / slope_bj pharacetamol2 = (Val(senyawa5) + intercept_aj) / slope_bj pharacetamol3 = (Val(senyawa6) + intercept_aj) / slope_bj pharacetamol4 = (Val(senyawa7) + intercept_aj) / slope_bj pharacetamol5 = (Val(senyawa8) + intercept_aj) / slope_bj Text67.Text = pharacetamol1
Text68.Text = pharacetamol2 Text69.Text = pharacetamol3 Text59.Text = pharacetamol4 Text73.Text = pharacetamol5
kafein1 = (Val(senyawa1) - (slope_b * pharacetamol1)) / slope_b1 kafein2 = (Val(senyawa2) - (slope_b * pharacetamol2)) / slope_b1 kafein3 = (Val(senyawa3) - (slope_b * pharacetamol3)) / slope_b1 kafein4 = (Val(senyawa9) - (slope_b * pharacetamol4)) / slope_b1 kafein5 = (Val(senyawa10) - (slope_b * pharacetamol5)) / slope_b1 Text70.Text = kafein1 Text71.Text = kafein2 Text72.Text = kafein3 Text60.Text = kafein4 Text74.Text = kafein5 Else
determinan = (E1 * E4) - (E2 * E3) 'konsentrasi untuk sample 1:
pharacetamol1 = ((1 / determinan) * ((E4 * Val(senyawa1)) - (E2 * Val(senyawa4))))
kafein1 = ((1 / determinan) * (-(E3 * Val(senyawa1)) + (E1 * Val(senyawa4)))) Text67.Text = Abs(pharacetamol1)
Text70.Text = kafein1 & "ppm"
'konsentrasi untuk sample 2:
pharacetamol2 = ((1 / determinan) * ((E4 * Val(senyawa2)) - (E2 * Val(senyawa5))))
kafein2 = ((1 / determinan) * (-(E3 * Val(senyawa2)) + (E1 * Val(senyawa5)))) Text68.Text = Abs(pharacetamol2)
Text71.Text = kafein2 & "ppm" 'konsentrasi untuk sample 3:
pharacetamol3 = ((1 / determinan) * ((E4 * Val(senyawa3)) - (E2 * Val(senyawa6))))
kafein3 = ((1 / determinan) * (-(E3 * Val(senyawa3)) + (E1 * Val(senyawa6)))) Text69.Text = Abs(pharacetamol3)
Text72.Text = kafein3 & "ppm"
'konsentrasi untuk sample 4:
pharacetamol4 = ((1 / determinan) * ((E4 * Val(senyawa7)) - (E2 * Val(senyawa9))))
kafein4 = ((1 / determinan) * (-(E3 * Val(senyawa7)) + (E1 * Val(senyawa9)))) Text59.Text = Abs(pharacetamol4)
Text60.Text = kafein4 & "ppm"
'konsentrasi untuk sample 5:
pharacetamol5 = ((1 / determinan) * ((E4 * Val(senyawa8)) - (E2 * Val(senyawa10))))
kafein5 = ((1 / determinan) * (-(E3 * Val(senyawa8)) + (E1 * Val(senyawa10)))) Text73.Text = Abs(pharacetamol5)
Text74.Text = kafein5 & "ppm"
End If End Sub
Private Sub Command2_Click() End
End Sub
Private Sub Command3_Click()
'menampilkan grafik kurva baku senyawa 1 lambda 360: Text49.Text = Text35
Picture1.Cls For k = 0 To 350
Picture1.PSet (c(k), 500 - (100 * ordinat_y(k))) Next k
'menampilkan grafik kurva baku senyawa 1 lambda 540: Text50.Text = Text36
Picture3.Cls For k1 = 0 To 350
Picture3.PSet (c(k1), 500 - (100 * ordinat_yj(k1))) Next k1
'menampilkan grafik kurva baku senyawa 2 lambda 360 : Picture2.Cls
For L = 0 To 350
Picture2.PSet (c(L), 500 - (100 * ordinat_y_x(L))) Next L
'menampilkan grafik kurva baku senyawa 2 lambda 540: Text52.Text = Text36 Picture5.Cls For h1 = 0 To 350 Picture5.PSet (c(h1), 500 - (100 * ordinat_yj_x(h1))) Next h1 End Sub
Public Sub Form_Load() Form3.Show
Me.Hide 'konfigurasi picture1 Picture1.ScaleMode = 1 Picture1.ScaleHeight = 450 Picture1.ScaleWidth = 300 Picture1.AutoRedraw = True Picture1.ForeColor = vbGreen Picture1.DrawStyle = 0 Picture1.DrawWidth = 2 'konfigurasi picture2 Picture2.Cls Picture2.ScaleMode = 1 Picture2.ScaleHeight = 450 Picture2.ScaleWidth = 300 Picture2.AutoRedraw = True Picture2.ForeColor = vbRed Picture2.DrawStyle = 0 Picture2.DrawWidth = 2 'konfigurasi picture3 Picture3.Cls Picture3.ScaleMode = 1 Picture3.ScaleHeight = 450 Picture3.ScaleWidth = 300 Picture3.AutoRedraw = True Picture3.ForeColor = vbGreen Picture3.DrawStyle = 0 Picture3.DrawWidth = 2 'konfigurasi picture5 Picture5.Cls Picture5.ScaleMode = 1 Picture5.ScaleHeight = 450 Picture5.ScaleWidth = 300 Picture5.AutoRedraw = True Picture5.ForeColor = vbRed Picture5.DrawStyle = 0 Picture5.DrawWidth = 2 End Sub
LIST PROGRAM VISUAL BASIC FORM PENGONTROLLAN
Dim dat As String
Dim dat_senyawa1(5) As String Dim dat_senyawa2(5) As String Dim dat_senyawa3(5) As String Dim dat_senyawa4(5) As String Dim dat_larutan1(5) As String Dim dat_larutan2(5) As String Dim dat_kuvsong As String Dim dat_ready As String
Private Sub Command1_Click() MSComm1.Output = "V" End Sub
Private Sub Command7_Click() Form1.Show
Me.Hide End Sub
Private Sub Form_Load() 'inisialisasi port serial : MSComm1.CommPort = 1 MSComm1.Settings = "9600,N,8,1" MSComm1.InputLen = 1 MSComm1.PortOpen = True 'inisialisasi timer1: Timer1.Enabled = True End Sub Sub Timer1_Timer() ind$ = MSComm1.Input Text7.Text = Text7.Text + ind$ dat = Text7.Text
Text1.Text = Mid(dat, 1, 3) 'sinyal untuk kuvet kosong
'data untuk lambda max 1
Text2.Text = Mid(dat, 15, 17) 'sinyal untuk lambda max senyawa 1 lambda_max_senyawa_1 = Mid(dat, 20, 22) 'lambda max senyawa 1
dat_ready = Val(dat_kusong) / 100 ' nilai absorbansi asli
'data untuk lambda max 2
Text3.Text = Mid(dat, 37, 39) 'sinyal untuk lambda max senyawa 2 lambda_max_senyawa_2 = Mid(dat, 42, 44) 'lambda max senyawa 2
'data untuk sampel senyawa 1
Text4.Text = Mid(dat, 68, 70) 'sinyal untuk data sampel senyawa 1 'data senyawa 1 lambda 1:
dat_senyawa1(1) = Mid(dat, 74, 76)
senyawa1_lambda1(1) = ((Val(dat_senyawa1(1))) / 100) / dat_ready 'data1
dat_senyawa1(2) = Mid(dat, 87, 89)
senyawa1_lambda1(2) = ((Val(dat_senyawa1(2))) / 100) / dat_ready 'data2
dat_senyawa1(3) = Mid(dat, 100, 102)
senyawa1_lambda1(3) = ((Val(dat_senyawa1(3))) / 100) / dat_ready 'data3
dat_senyawa1(4) = Mid(dat, 113, 115)
senyawa1_lambda1(4) = ((Val(dat_senyawa1(4))) / 100) / dat_ready 'data4
dat_senyawa1(5) = Mid(dat, 126, 128)
senyawa1_lambda1(5) = ((Val(dat_senyawa1(5))) / 100) / dat_ready 'data5
'data senyawa 1 lambda 2:
dat_senyawa2(1) = Mid(dat, 139, 141)
senyawa1_lambda2(1) = ((Val(dat_senyawa2(1))) / 100) / dat_ready 'data1
dat_senyawa2(2) = Mid(dat, 152, 154)
senyawa1_lambda2(2) = ((Val(dat_senyawa2(2))) / 100) / dat_ready 'data2
dat_senyawa2(3) = Mid(dat, 100, 102)
senyawa1_lambda2(3) = ((Val(dat_senyawa2(3))) / 100) / dat_ready 'data3
dat_senyawa2(4) = Mid(dat, 165, 167)
senyawa1_lambda2(4) = ((Val(dat_senyawa2(4))) / 100) / dat_ready 'data4
dat_senyawa2(5) = Mid(dat, 178, 180)
senyawa1_lambda2(5) = ((Val(dat_senyawa2(5))) / 100) / dat_ready 'data5
'data untuk sampel senyawa 2
Text5.Text = Mid(dat, 199, 201) 'sinyal untuk data sampel senyawa 2 'data senyawa 2 lambda 1:
dat_senyawa3(1) = Mid(dat, 205, 207)
senyawa2_lambda1(1) = ((Val(dat_senyawa3(1))) / 100) / dat_ready 'data1
dat_senyawa3(2) = Mid(dat, 218, 220)
senyawa2_lambda1(2) = ((Val(dat_senyawa3(2))) / 100) / dat_ready 'data2
dat_senyawa3(3) = Mid(dat, 231, 233)
senyawa2_lambda1(3) = ((Val(dat_senyawa3(3))) / 100) / dat_ready 'data3
dat_senyawa3(4) = Mid(dat, 244, 246)
senyawa2_lambda1(4) = ((Val(dat_senyawa3(4))) / 100) / dat_ready 'data4
dat_senyawa3(5) = Mid(dat, 257, 259)
senyawa2_lambda1(5) = ((Val(dat_senyawa3(5))) / 100) / dat_ready 'data5
'data senyawa 2 lambda 2:
dat_senyawa4(1) = Mid(dat, 270, 272)
senyawa2_lambda2(1) = ((Val(dat_senyawa4(1))) / 100) / dat_ready 'data1
dat_senyawa4(2) = Mid(dat, 283, 285)
senyawa2_lambda2(2) = ((Val(dat_senyawa4(2))) / 100) / dat_ready 'data2
dat_senyawa4(3) = Mid(dat, 296, 298)
senyawa2_lambda2(3) = ((Val(dat_senyawa4(3))) / 100) / dat_ready 'data3
dat_senyawa4(4) = Mid(dat, 309, 311)
senyawa2_lambda2(4) = ((Val(dat_senyawa4(4))) / 100) / dat_ready 'data4
dat_senyawa4(5) = Mid(dat, 323, 325)
senyawa2_lambda2(5) = ((Val(dat_senyawa4(5))) / 100) / dat_ready 'data5
'data larutan campuran:
Text6.Text = Mid(dat, 344, 346) 'sinyal untuk data sampel 'data sampel lambda max 1:
dat_larutan1(1) = Mid(dat, 349, 351)
larutan_lambda1(1) = ((Val(dat_larutan1(1))) / 100) / dat_ready 'dat1
dat_larutan1(2) = Mid(dat, 361, 363)
larutan_lambda1(2) = ((Val(dat_larutan1(2))) / 100) / dat_ready 'dat2
dat_larutan1(3) = Mid(dat, 373, 375)
dat_larutan1(4) = Mid(dat, 385, 387)
larutan_lambda1(4) = ((Val(dat_larutan1(4))) / 100) / dat_ready 'dat4
dat_larutan1(5) = Mid(dat, 397, 399)
larutan_lambda1(5) = ((Val(dat_larutan1(5))) / 100) / dat_ready 'dat5
'data sampel lambda max 2:
dat_larutan2(1) = Mid(dat, 409, 411)
larutan_lambda2(1) = ((Val(dat_larutan2(1))) / 100) / dat_ready 'dat1
dat_larutan2(2) = Mid(dat, 421, 423)
larutan_lambda2(2) = ((Val(dat_larutan2(2))) / 100) / dat_ready 'dat2
dat_larutan2(3) = Mid(dat, 433, 435)
larutan_lambda2(3) = ((Val(dat_larutan2(3))) / 100) / dat_ready 'dat3
dat_larutan2(4) = Mid(dat, 445, 447)
larutan_lambda2(4) = ((Val(dat_larutan2(4))) / 100) / dat_ready 'dat4
dat_larutan2(5) = Mid(dat, 457, 459)
larutan_lambda2(5) = ((Val(dat_larutan2(5))) / 100) / dat_ready 'dat5
Text8.Text = Mid(dat, 469, 475) 'sinyal selesai