Lampiran 1: Data Hasil Penelitian
Data Hasil Penelitian bobot 200 butir persilangan tanaman jagung
Hibrida/inbrida
Tetua
jantan Tetua betina Ulangan
BOBOT 200 BUTIR 1 2 3 1 A A 38 72 52 2 B A 66 58 64 3 C A 58 66 64 4 D A 62 76 70 5 E A 64 68 70 6 F A 66 80 62 7 G A 72 70 62 8 B B 46 50 56 9 C B 76 70 68 10 D B 74 66 70 11 E B 78 46 72 12 F B 64 60 68 13 G B 66 74 66 14 C C 34 76 38 15 D C 64 66 66 16 E C 68 58 56 17 F C 90 66 78 18 G C 60 66 58 19 D D 50 64 54 20 E D 58 52 62 21 F D 74 58 72 22 G D 54 54 60 23 E E 48 46 46 24 F E 68 70 56 25 G E 58 58 64 26 F F 54 56 56 27 G F 70 74 66 28 G G 56 54 68
L.2
Data Hasil Penelitian tinggi tanaman jagung
Hibrida/inbridaTetua
jantan Tetua betina Ulangan
TINGGI TANAMAN 1 2 3 1 A A 141 98.8 119 2 B A 156 151.4 138.2 3 C A 164 153.2 143.8 4 D A 173 182.2 142 5 E A 161 154.2 141.6 6 F A 156 155.6 159.4 7 G A 136 139.2 116.8 8 B B 132 121.4 104 9 C B 152 155.4 132.2 10 D B 154 154.6 154.2 11 E B 155 152.4 129.6 12 F B 147 151.4 133.7 13 G B 142 138.4 130.4 14 C C 103 79.4 82.2 15 D C 150 131.6 123.4 16 E C 135 143.8 127.5 17 F C 157 157 157.8 18 G C 135 135.4 126.8 19 D D 136 103.4 132.2 20 E D 153 150.4 135.8 21 F D 155 102.4 129.6 22 G D 136 126.8 113 23 E E 145 142.2 111.2 24 F E 148 149.2 147.6 25 G E 139 146 109.6 26 F F 167 156.8 167.8 27 G F 149 137.6 140.6 28 G G 137 132.2 120.2
Data Hasil Penelitian umur bunga jantan tanaman jagung
Hibrida/inbrida
Tetua
jantan Tetua betina Ulangan
Umur bunga jantan 1 2 3 1 A A 71 53 55 2 B A 66 65 67 3 C A 68 69 67 4 D A 68 68 68 5 E A 70 63 71 6 F A 69 69 72 7 G A 68 66 70 8 B B 53 53 59 9 C B 53 65 68 10 D B 66 66 67 11 E B 67 67 71 12 F B 65 65 63 13 G B 67 67 67 14 C C 52 53 55 15 D C 64 69 65 16 E C 64 65 66 17 F C 68 71 70 18 G C 66 62 63 19 D D 54 53 53 20 E D 67 66 68 21 F D 64 66 65 22 G D 67 66 67 23 E E 53 53 55 24 F E 65 63 65 25 G E 63 65 67 26 F F 51 53 55 27 G F 65 69 67 28 G G 53 53 57
L.4
Data Hasil Penelitian umur bunga betina tanaman jagung
Hibrida/inbrida
Tetua
jantan Tetua betina Ulangan
umur bunga betina 1 2 3 1 A A 74 55 59 2 B A 70 67 69 3 C A 72 72 71 4 D A 73 71 73 5 E A 74 74 77 6 F A 74 74 75 7 G A 71 69 73 8 B B 54 55 63 9 C B 55 67 71 10 D B 72 72 71 11 E B 71 71 76 12 F B 68 67 67 13 G B 71 69 71 14 C C 54 55 58 15 D C 66 75 67 16 E C 67 67 71 17 F C 69 76 74 18 G C 67 64 67 19 D D 56 56 54 20 E D 71 72 71 21 F D 67 69 68 22 G D 71 70 71 23 E E 56 55 57 24 F E 70 67 71 25 G E 66 67 71 26 F F 53 55 57 27 G F 67 74 71 28 G G 56 55 60
Data Hasil Penelitian hasil panen tanaman jagung
Hibrida/inbridaTetua
jantan Tetua betina Ulangan
Hasil jagung 1 2 3 1 A A 0.743 0.294 0.428 2 B A 2.250 2.102 1.407 3 C A 2.553 2.264 1.628 4 D A 1.795 2.372 1.895 5 E A 2.348 2.228 1.584 6 F A 2.016 1.741 1.300 7 G A 2.221 1.798 1.453 8 B B 0.806 0.506 0.551 9 C B 2.359 3.363 1.480 10 D B 2.419 1.873 2.313 11 E B 2.622 1.842 1.325 12 F B 1.506 1.451 1.157 13 G B 1.699 1.613 1.467 14 C C 0.331 0.201 0.343 15 D C 2.546 1.020 1.995 16 E C 1.996 1.951 1.873 17 F C 1.910 1.375 1.494 18 G C 1.702 2.115 1.527 19 D D 0.690 0.681 0.615 20 E D 0.624 1.129 1.100 21 F D 1.904 1.593 1.753 22 G D 1.224 1.151 1.438 23 E E 0.731 0.794 0.528 24 F E 1.524 1.880 2.084 25 G E 1.967 1.492 1.598 26 F F 0.576 0.518 0.425 27 G F 2.005 0.866 1.614 28 G G 1.325 0.991 1.073
L.6
Data Hasil Penelitian umur panen tanaman jagung
Hibrida/inbridaTetua
jantan Tetua betina Ulangan
umur panen 1 2 3 1 A A 102 87 90 2 B A 106 106 106 3 C A 103 106 106 4 D A 106 106 106 5 E A 106 106 106 6 F A 106 109 106 7 G A 106 106 106 8 B B 87 86 87 9 C B 93 103 103 10 D B 106 106 106 11 E B 106 106 106 12 F B 106 103 103 13 G B 106 106 103 14 C C 86 87 87 15 D C 109 106 103 16 E C 106 102 106 17 F C 106 116 106 18 G C 102 101 103 19 D D 93 87 90 20 E D 102 106 103 21 F D 102 103 103 22 G D 106 102 106 23 E E 89 87 87 24 F E 106 103 103 25 G E 106 103 106 26 F F 93 93 93 27 G F 102 106 103 28 G G 93 93 93
Lampiran 2 : Print Screen program aplikasi
Gambar 2.1 Menu Utama
Di menu ini terdapat textfield nama data yang kegunaannya untuk
memberikan keterangan di bagian kesimpulan. Tekfield perlakuan yang telah
diberikan validasi minimal 2 dan maks 9, kemudian textfield ulangan yang telah
diberi validasi minimal 1. Kemudian alpha telah ditetapkan yaitu 0.05, button
cari untuk mencari data bertipe file excel, button reset untuk mengulang
kembali semua perintah dan button hitung untuk memulai analisis diallel.
L.8
L.10
Gambar 2.2.3 Error ketika tidak sama antara data di excel dengan jumlah
inputan perlakuan dan ulangan
L.12
L.14
Lampiran 3: Listing Program
Public Class Form1
Dim t, r, l, m As Integer Dim idxAlpha As Integer Dim arrData() As Double
Dim alpha, errorDB, GT, RSS, TSS, ESS As Double Public dsData As DataSet
Dim arrCF, arrSST, arrSSR, arrSSV, arrSSE, arrMSR As Double() Dim arrMSV, arrMSE, arrFR, arrFV As Double()
Dim FR, FT As Double
Dim arrKesimpulan As String(,) ' kolom 0 = FR; kolom 1 = FV Dim arrMeanENV As Double(,)
Dim arrMeanENV2 As Double(,) Dim CF As Double
Dim Total_SS, SS_due_to_REPdivENV, MS_REPENV_Total, F_REPENV_Total
As Double
Dim SS_due_to_env, SS_due_to_VARmulENV, MS_VARENV_Total,
F_VARENV_Total As Double
Dim SS_due_to_var, SS_Error, MS_ERR_Total, FT_VAR_Total,
FT_ENV_Total, FT_REPENV_Total, FT_VARENV_Total As Double
Dim Crude_SS_env, MS_VAR_Total, F_VAR_Total As Double Dim Crude_SS_var, MS_ENV_Total, F_ENV_Total As Double Dim textANOVAS As String
Dim arrKesimpulanTotal As String()
Private Function validateExcel() As Boolean Dim i, j, x As Integer m = 0 x = t While x > 0 m = m + x x = x - 1 End While If (dsData.Tables(0).Rows.Count <> m Or
dsData.Tables(0).Columns.Count <> r) Then Return False i = 0 While i < m 't j = 0 While i < r If (dsData.Tables(0).Rows(i)(j).ToString() = "") Then Return False j = j + 1
If j = r Then Exit While End While
i = i + 1 End While Return True End Function
L.16
Private Function importExcel(ByVal filePath As String, ByVal lokasi As Integer) As DataSet
Dim con As System.Data.OleDb.OleDbConnection Dim ds As System.Data.DataSet
Dim MyCommand As System.Data.OleDb.OleDbDataAdapter ds = New System.Data.DataSet
con = New
System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; "
+ "data source='" + filePath + " '; " + "Extended Properties=Excel 8.0;")
Dim i As Integer i = 1
lokasi = 1
MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [sheet" + i.ToString() + "$]", con)
MyCommand.TableMappings.Add("Table", "TestTable") Try
MyCommand.Fill(ds)
Catch ex As OleDb.OleDbException
MessageBox.Show(ex.Message + " Lokasi file tidak valid, file tidak ditemukan.", "Import Data",
System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Stop) End Try
Return ds End Function
Private Sub btnBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse.Click
OpenFileDialog1.InitialDirectory = "C:\My Documents"
OpenFileDialog1.Filter = "Excel file|*.xls|Excel 2007 file|*.xlsx" OpenFileDialog1.ShowDialog() txtPath.Text = OpenFileDialog1.FileName btnBrowse.Enabled = False btnReset.Enabled = True btnCalculate.Enabled = True End Sub
Private Sub calculateTable(ByVal idx As Integer) Dim i, j, x, y As Integer
Dim sum As Double sum = 0
ReDim arrMeanENV(m + 1, r + 2)
dsData.Tables(idx).Columns.Add(New DataColumn("Total")) ', typeof(double)
While i < dsData.Tables(idx).Rows.Count sum = 0 j = 0 While j < dsData.Tables(idx).Columns.Count - 1 sum += Double.Parse(dsData.Tables(idx).Rows(i)(j).ToString()) j = j + 1 End While
arrMeanENV(i, idx) = sum '/ r
dsData.Tables(idx).Rows(i)(dsData.Tables(idx).Columns.Count - 1) = sum
i = i + 1 End While
dsData.Tables(idx).Columns.Add(New DataColumn("Avg")) ', typeof(double) i = 0 While i < dsData.Tables(idx).Rows.Count sum = 0 dsData.Tables(idx).Rows(i)(r + 1) = Double.Parse(dsData.Tables(idx).Rows(i)(r).ToString) / r i = i + 1 End While Dim dr As DataRow dr = dsData.Tables(idx).NewRow() dsData.Tables(idx).Rows.Add(dr) j = 0 While j < r + 2 sum = 0 i = 0 While i < m sum += Double.Parse(dsData.Tables(idx).Rows(i)(j).ToString()) i = i + 1 End While dsData.Tables(idx).Rows(m)(j) = sum j = j + 1 End While
dsData.Tables(idx).Columns.Add(New DataColumn("Jantan")) ', typeof(double) i = 0 x = t j = -1 y = 1 While i < m If j < x - 1 Then j = j + 1 Else j = -1 y = y + 1 j = j + y
L.18
End IfdsData.Tables(idx).Rows(i)(r + 2) = j i = i + 1
End While
dsData.Tables(idx).Columns.Add(New DataColumn("Betina")) ', typeof(double) j = 0 x = t y = 1 i = 0 While i < m dsData.Tables(idx).Rows(i)(r + 3) = j If y < x Then y = y + 1 Else y = 1 j = j + 1 y = y + j End If i = i + 1 End While i = 0 End Sub
Private Sub hit_arrCF() Dim sum As Double Dim i As Integer sum = 0
i = 0 RSS = 0
Dim idx As Integer While i < 3 sum = Double.Parse(dsData.Tables(idx).Rows(dsData.Tables(idx).Rows.Count - 1)(i).ToString()) RSS = RSS + Math.Pow(sum, 2) '/ (t * r) i = i + 1 End While RSS = Math.Round((RSS / m) -
(Math.Pow(Double.Parse(dsData.Tables(0).Rows(m)(r).ToString()), 2) / (m
* r)), 2)
lblSSR.Text = RSS.ToString End Sub
Private Sub hit_arrSST() Dim j, i As Integer Dim sum As Double j = 0
sum = 0 i = 0
While i < m sum +=
Math.Pow(Double.Parse(dsData.Tables(0).Rows(i)(r).ToString()), 2)
i = i + 1 End While
TSS = Math.Round((sum / r) -
(Math.Pow(Double.Parse(dsData.Tables(0).Rows(m)(r).ToString()), 2) / (m
* r)), 2)
lblSST.Text = TSS.ToString End Sub
Private Sub hit_arrSSR() ReDim Preserve arrData(7) Dim sum, sum1 As Double Dim idx, i As Integer idx = 0
While idx < m
arrData(dsData.Tables(0).Rows(idx)(r + 2)) += Double.Parse(dsData.Tables(0).Rows(idx)(r + 1).ToString()) idx = idx + 1
End While idx = 0
While idx < m
arrData(dsData.Tables(0).Rows(idx)(r + 3)) += Double.Parse(dsData.Tables(0).Rows(idx)(r + 1).ToString()) idx = idx + 1 End While idx = 0 sum = 0 While idx < t sum += Math.Pow(arrData(idx), 2) ' MessageBox.Show(arrData(idx).ToString) idx = idx + 1 End While lblSSGCA.Text = Math.Round((sum - (4 / t * Math.Pow(dsData.Tables(0).Rows(m)(r + 1), 2))) / (t + 2), 2).ToString sum = 0 sum1 = 0 idx = 0 While idx < t sum1 += Math.Pow(arrData(idx), 2) idx = idx + 1 End While i = 0 While i < m
sum += Math.Pow(Double.Parse(dsData.Tables(0).Rows(i)(r +
1).ToString()), 2) i = i + 1 End While
lblSSSCA.Text = (Math.Round(sum - (sum1 / (t + 2)) + (2 / ((t +
1) * (t + 2)) * Math.Pow(Double.Parse(dsData.Tables(0).Rows(m)(r +
1).ToString()), 2)), 2)).ToString
lblSSE1.Text = (Math.Round(Double.Parse(lblSSE.Text) / r,
L.20
lblMSGCA.Text = (Math.Round(Double.Parse(lblSSGCA.Text) /
Double.Parse(lblDFGCA.Text), 2)).ToString
lblMSSCA.Text = (Math.Round(Double.Parse(lblSSSCA.Text) /
Double.Parse(lblDFSCA.Text), 2)).ToString
lblMSE1.Text = (Math.Round(Double.Parse(lblSSE1.Text) /
Double.Parse(lblDFE1.Text), 2)).ToString
lblFGCA.Text = (Math.Round(Double.Parse(lblMSGCA.Text) /
Double.Parse(lblMSE1.Text), 2)).ToString
lblFSCA.Text = (Math.Round(Double.Parse(lblMSSCA.Text) /
Double.Parse(lblMSE1.Text), 2)).ToString hit_arrSSV()
ins_g() 'hit_ANOVA() End Sub
Private Sub ins_g()
lblEGS11.Text = arrMeanENV2(0, 0) lblEGS12.Text = arrMeanENV2(0, 1) lblEGS13.Text = arrMeanENV2(0, 2) lblEGS14.Text = arrMeanENV2(0, 3) lblEGS15.Text = arrMeanENV2(0, 4) lblEGS16.Text = arrMeanENV2(0, 5) lblEGS17.Text = arrMeanENV2(0, 6) lblEGS18.Text = arrMeanENV2(0, 7) lblEGS22.Text = arrMeanENV2(1, 1) lblEGS23.Text = arrMeanENV2(1, 2) lblEGS24.Text = arrMeanENV2(1, 3) lblEGS25.Text = arrMeanENV2(1, 4) lblEGS26.Text = arrMeanENV2(1, 5) lblEGS27.Text = arrMeanENV2(1, 6) lblEGS28.Text = arrMeanENV2(1, 7) lblEGS33.Text = arrMeanENV2(2, 2) lblEGS34.Text = arrMeanENV2(2, 3) lblEGS35.Text = arrMeanENV2(2, 4) lblEGS36.Text = arrMeanENV2(2, 5) lblEGS37.Text = arrMeanENV2(2, 6) lblEGS38.Text = arrMeanENV2(2, 7) lblEGS44.Text = arrMeanENV2(3, 3) lblEGS45.Text = arrMeanENV2(3, 4) lblEGS46.Text = arrMeanENV2(3, 5) lblEGS47.Text = arrMeanENV2(3, 6) lblEGS48.Text = arrMeanENV2(3, 7) lblEGS55.Text = arrMeanENV2(4, 4) lblEGS56.Text = arrMeanENV2(4, 5) lblEGS57.Text = arrMeanENV2(4, 6) lblEGS58.Text = arrMeanENV2(4, 7) lblEGS66.Text = arrMeanENV2(5, 5) lblEGS67.Text = arrMeanENV2(5, 6) lblEGS68.Text = arrMeanENV2(5, 7) lblEGS77.Text = arrMeanENV2(6, 6) lblEGS78.Text = arrMeanENV2(6, 7)
lblEGS88.Text = arrMeanENV2(7, 7) If Double.Parse(lblEGS88.Text) = 0 And
Double.Parse(lblEGS78.Text) = 0 And Double.Parse(lblEGS68.Text) = 0 And Double.Parse(lblEGS58.Text) = 0 And _
Double.Parse(lblEGS48.Text) = 0 And Double.Parse(lblEGS38.Text) = 0 And Double.Parse(lblEGS28.Text) = 0 And Double.Parse(lblEGS18.Text) = 0 Then lblG8.Visible = False lblEGS18.Visible = False lblEGS28.Visible = False lblEGS38.Visible = False lblEGS48.Visible = False lblEGS58.Visible = False lblEGS68.Visible = False lblEGS78.Visible = False lblEGS88.Visible = False Else lblG8.Visible = True lblEGS18.Visible = True lblEGS28.Visible = True lblEGS38.Visible = True lblEGS48.Visible = True lblEGS58.Visible = True lblEGS68.Visible = True lblEGS78.Visible = True lblEGS88.Visible = True End If
If Double.Parse(lblEGS77.Text) = 0 And
Double.Parse(lblEGS67.Text) = 0 And Double.Parse(lblEGS57.Text) = 0 And Double.Parse(lblEGS47.Text) = 0 And _
Double.Parse(lblEGS37.Text) = 0 And Double.Parse(lblEGS27.Text) = 0 And Double.Parse(lblEGS17.Text) = 0 Then
lblG7.Visible = False lblEGS17.Visible = False lblEGS27.Visible = False lblEGS37.Visible = False lblEGS47.Visible = False lblEGS57.Visible = False lblEGS67.Visible = False lblEGS77.Visible = False Else lblG7.Visible = True lblEGS17.Visible = True lblEGS27.Visible = True lblEGS37.Visible = True lblEGS47.Visible = True lblEGS57.Visible = True lblEGS67.Visible = True lblEGS77.Visible = True End If
If Double.Parse(lblEGS66.Text) = 0 And
Double.Parse(lblEGS56.Text) = 0 And Double.Parse(lblEGS46.Text) = 0 And Double.Parse(lblEGS36.Text) = 0 And _
L.22
Double.Parse(lblEGS26.Text) = 0 And Double.Parse(lblEGS16.Text) = 0 Then lblG6.Visible = False lblEGS16.Visible = False lblEGS26.Visible = False lblEGS36.Visible = False lblEGS46.Visible = False lblEGS56.Visible = False lblEGS66.Visible = False Else lblG6.Visible = True lblEGS16.Visible = True lblEGS26.Visible = True lblEGS36.Visible = True lblEGS46.Visible = True lblEGS56.Visible = True lblEGS66.Visible = True End IfIf Double.Parse(lblEGS55.Text) = 0 And
Double.Parse(lblEGS45.Text) = 0 And Double.Parse(lblEGS35.Text) = 0 And Double.Parse(lblEGS25.Text) = 0 And _
Double.Parse(lblEGS15.Text) = 0 Then
lblG5.Visible = False lblEGS15.Visible = False lblEGS25.Visible = False lblEGS35.Visible = False lblEGS45.Visible = False lblEGS55.Visible = False Else lblG5.Visible = True lblEGS15.Visible = True lblEGS25.Visible = True lblEGS35.Visible = True lblEGS45.Visible = True lblEGS55.Visible = True End If
If Double.Parse(lblEGS44.Text) = 0 And
Double.Parse(lblEGS34.Text) = 0 And Double.Parse(lblEGS24.Text) = 0 And Double.Parse(lblEGS14.Text) = 0 Then
lblG4.Visible = False lblEGS14.Visible = False lblEGS24.Visible = False lblEGS34.Visible = False lblEGS44.Visible = False Else lblG4.Visible = True lblEGS14.Visible = True lblEGS24.Visible = True lblEGS34.Visible = True lblEGS44.Visible = True End If
If Double.Parse(lblEGS33.Text) = 0 And
Double.Parse(lblEGS23.Text) = 0 And Double.Parse(lblEGS13.Text) = 0 Then
lblG3.Visible = False
lblEGS23.Visible = False lblEGS33.Visible = False Else lblG3.Visible = True lblEGS13.Visible = True lblEGS23.Visible = True lblEGS33.Visible = True End If
If Double.Parse(lblEGS22.Text) = 0 And Double.Parse(lblEGS12.Text) = 0 Then
lblG2.Visible = False lblEGS12.Visible = False lblEGS22.Visible = False Else lblG2.Visible = True lblEGS12.Visible = True lblEGS22.Visible = True End If
If Double.Parse(lblEGS11.Text) = 0 Then
lblG1.Visible = False
Else
lblG1.Visible = True
End If End Sub
Private Sub hit_arrSSV() ReDim arrMeanENV2(7, 7) Dim i, j, x As Integer Dim sum As Double x = 0 j = 0 While j < t i = 0 While i < t sum = 0 If i = j Then sum = (arrData(j) - (2 / t *
Double.Parse(dsData.Tables(0).Rows(m)(r + 1).ToString))) / (t + 2) x = x + 1
ElseIf i < j Then
sum = Double.Parse(dsData.Tables(0).Rows(x)(r +
1).ToString) - ((arrData(j) + arrData(i)) / (t + 2)) - (2 / ((t + 1) *
(t + 2)) * Double.Parse(dsData.Tables(0).Rows(m)(r + 1).ToString))
x = x + 1 Else sum = 0 End If arrMeanENV2(i, j) = Math.Round(sum, 4) i = i + 1 End While j = j + 1 End While End Sub
Private Sub hit_arrSSE() Dim i, j As Integer
L.24
Dim sum As Doublei = 0 sum = 0 While i < m j = 0 While j < r sum +=
Math.Pow(Double.Parse(dsData.Tables(0).Rows(i)(j).ToString()), 2)
j = j + 1 End While i = i + 1 End While
ESS = Math.Round(sum -
(Math.Pow(Double.Parse(dsData.Tables(0).Rows(m)(r).ToString()), 2) / (m
* r)) - TSS - RSS, 2)
lblSSE.Text = ESS.ToString
lblSSTot.Text = Math.Round(sum -
(Math.Pow(Double.Parse(dsData.Tables(0).Rows(m)(r).ToString()), 2) / (m
* r)), 2).ToString
lblMSR.Text = Math.Round((Double.Parse(lblSSR.Text) /
Double.Parse(lblDFR.Text)), 2).ToString
lblMSE.Text = Math.Round((Double.Parse(lblSSE.Text) /
Double.Parse(lblDFE.Text)), 2).ToString
lblMST.Text = Math.Round((Double.Parse(lblSST.Text) /
Double.Parse(lblDFT.Text)), 2).ToString
lblFR.Text = Math.Round((Double.Parse(lblMSR.Text) /
Double.Parse(lblMSE.Text)), 2).ToString
lblFT.Text = Math.Round((Double.Parse(lblMST.Text) /
Double.Parse(lblMSE.Text)), 2).ToString lblDFGCA.Text = (t - 1).ToString
lblDFSCA.Text = (t * (t - 1) / 2).ToString
lblDFE1.Text = ((r - 1) * ((t * (t + 1) / 2) - 1)).ToString End Sub
Private Sub hit_Varietas() hit_arrCF()
hit_arrSST() hit_arrSSE() hit_arrSSR() End Sub
Private Sub btnCalculate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalculate.Click
If validateInput() = True Then Dim i As Integer
i = 0
dsData = importExcel(txtPath.Text, r) If (dsData Is System.DBNull.Value) Then txtPath.Focus()
If (validateExcel()) Then
alpha = Math.Round(Double.Parse(txtAlpha.Text), 4)
calculateTable(0) lblDFR.Text = r - 1 lblDFT.Text = m - 1 lblDFE.Text = (r - 1) * (m - 1) lblDFTot.Text = (r * m) - 1 hit_Varietas() Else
MessageBox.Show("Jumlah Data untuk diproses tidak sesuai dengan variabel inputan")
Exit Sub End If End If Kesimpulan() btnCalculate.Enabled = False btnBrowse.Enabled = True End Sub
Private Sub Kesimpulan()
Dim xlApp As Microsoft.Office.Interop.Excel.Application
xlApp = New Microsoft.Office.Interop.Excel.ApplicationClass()
FR =
Math.Round(Double.Parse(xlApp.WorksheetFunction.FInv(Double.Parse(txtAl pha.Text), Double.Parse(lblDFR.Text),
Double.Parse(lblDFE.Text)).ToString), 2) FT =
Math.Round(Double.Parse(xlApp.WorksheetFunction.FInv(Double.Parse(txtAl pha.Text), Double.Parse(lblDFT.Text),
Double.Parse(lblDFE.Text)).ToString), 2)
If (Double.Parse(lblFR.Text) > FR) Then
txtKesimpulan1.Text = "F hitung ulangan = " + lblFR.Text +
" lebih besar dari F(" + txtAlpha.Text + "," + lblDFR.Text + "," + lblDFE.Text + ") tabel ulangan = " + FR.ToString
txtKesimpulan1.Text += " sehingga dapat dikatakan bahwa ada perbedaan " + txtNama.Text + " yang signifikan di antara ulangan. "
Else
txtKesimpulan1.Text = "F hitung ulangan = " + lblFR.Text +
" lebih kecil dari F(" + txtAlpha.Text + "," + lblDFR.Text + "," + lblDFE.Text + ") tabel ulangan = " + FR.ToString
txtKesimpulan1.Text += " sehingga dapat dikatakan bahwa tidak ada perbedaan " + txtNama.Text + " yang signifikan di antara ulangan. "
End If
If (Double.Parse(lblFT.Text) > FT) Then
txtKesimpulan1.Text += " Sedangkan F hitung perlakuan = " + lblFT.Text + " lebih besar dari F(" + txtAlpha.Text + "," + lblDFT.Text + "," + lblDFE.Text + ") tabel varietas = " + FT.ToString
txtKesimpulan1.Text += " sehingga dapat dikatakan bahwa ada perbedaan " + txtNama.Text + " yang signifikan di antara persilangan tetua. "
L.26
txtKesimpulan1.Text += " Sedangkan F hitung perlakuan = " + lblFT.Text + " lebih kecil dari F(" + txtAlpha.Text + "," + lblDFT.Text + "," + lblDFE.Text + ") tabel varietas = " + FT.ToStringtxtKesimpulan1.Text += " sehingga dapat dikatakan bahwa tidak ada perbedaan " + txtNama.Text + " yang signifikan di antara persilangan tetua. "
End If
FR =
Math.Round(Double.Parse(xlApp.WorksheetFunction.FInv(Double.Parse(txtAl pha.Text), Double.Parse(lblDFGCA.Text),
Double.Parse(lblDFE1.Text)).ToString), 2) FT =
Math.Round(Double.Parse(xlApp.WorksheetFunction.FInv(Double.Parse(txtAl pha.Text), Double.Parse(lblDFSCA.Text),
Double.Parse(lblDFE1.Text)).ToString), 2) xlApp.Quit()
If (Double.Parse(lblFGCA.Text) > FR) Then
txtKesimpulan2.Text = "F hitung GCA = " + lblFR.Text + " dari " + txtNama.Text + " lebih besar dari F(" + txtAlpha.Text + "," + lblDFGCA.Text + "," + lblDFE1.Text + ") tabel = " + FR.ToString
txtKesimpulan2.Text += " sehingga dapat dikatakan ada perbedaan daya gabung umum di antara persilangan tetua."
Else
txtKesimpulan2.Text = "F hitung GCA = " + lblFR.Text + " dari " + txtNama.Text + " lebih kecil dari F(" + txtAlpha.Text + "," + lblDFGCA.Text + "," + lblDFE1.Text + ") tabel = " + FR.ToString
txtKesimpulan2.Text += " sehingga dapat dikatakan tidak ada perbedaan daya gabung umum di antara persilangan tetua."
End If
If (Double.Parse(lblFSCA.Text) > FT) Then
txtKesimpulan2.Text += " Sedangkan F hitung SCA = " + lblFT.Text + " " + txtNama.Text + " lebih besar dari F(" +
txtAlpha.Text + "," + lblDFSCA.Text + "," + lblDFE1.Text + ") tabel = "
+ FT.ToString
txtKesimpulan2.Text += " sehingga dapat dikatakan ada perbedaan daya gabung khusus di antara persilangan tetua. "
Else
txtKesimpulan2.Text += " Sedangkan F hitung SCA = " + lblFT.Text + " " + txtNama.Text + " lebih kecil dari F(" +
txtAlpha.Text + "," + lblDFSCA.Text + "," + lblDFE1.Text + ") tabel = "
+ FT.ToString
txtKesimpulan2.Text += " sehingga dapat dikatakan tidak ada perbedaan daya gabung khusus di antara persilangan tetua. "
End If
Dim i, j, maxi, maxiy, mini, miniy As Integer Dim max, min As Double
max = Double.Parse(lblEGS11.Text) maxi = 0
mini = 0 i = 1
While i < t
If arrMeanENV2(i, i) > max Then maxi = i max = arrMeanENV2(i, i) End If i = i + 1 End While i = 1 While i < t
If arrMeanENV2(i, i) < min Then mini = i min = arrMeanENV2(i, i) End If i = i + 1 End While maxi += 1 mini += 1
txtKesimpulan3.Text = "Dari tabel di atas dapat disimpulkan bahwa GCA yang terbesar adalah " + max.ToString + " yang didapat dari persilangan tetua " + maxi.ToString
txtKesimpulan3.Text += ". Dan GCA yang terkecil adalah " + min.ToString + " yang didapat dari persilangan tetua " + mini.ToString max = Double.Parse(lblEGS12.Text)
maxi = 0 maxiy = 1
min = Double.Parse(lblEGS12.Text) mini = 0 miniy = 1 i = 0 j = 0 While i < t j = 0 While j < t If j > i Then
If arrMeanENV2(i, j) > max Then maxi = i maxiy = j max = arrMeanENV2(i, j) End If End If j += 1 End While i = i + 1 End While i = 0 j = 0 While i < t j = 0 While j < t If j > i Then
If arrMeanENV2(i, j) < min Then mini = i
L.28
miniy = j min = arrMeanENV2(i, j) End If End If j += 1 End While i = i + 1 End While maxi += 1 mini += 1 maxiy += 1 miniy += 1txtKesimpulan3.Text += ". Sedangkan SCA terbesar adalah " + max.ToString + " yang didapat dari persilangan tetua " + maxi.ToString + " dengan " + maxiy.ToString
txtKesimpulan3.Text += ". Dan SCA yang terkecil adalah " + min.ToString + " yang didapat dari persilangan tetua " + mini.ToString + " dengan " + miniy.ToString
End Sub
Private Function validateInput() As Boolean Try
t = Int(txtT.Text) r = Int(txtR.Text) Catch ex As Exception
MsgBox(ex.Message, "Input Error", MessageBoxButtons.OK) txtT.Clear() txtR.Clear() txtT.Focus() Return False End Try If txtPath.Text = "" Then
MsgBox("Field Data harus diisi terlebih dahulu.", "Input Error", MessageBoxButtons.OK)
Return False End If
If txtPath.Text = "" Then
MsgBox("Field Data harus diisi terlebih dahulu.", "Input Error", MessageBoxButtons.OK)
Return False End If
Return True End Function
Private Sub btnReset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReset.Click
txtKesimpulan1.Text = "" txtKesimpulan2.Text = "" txtKesimpulan3.Text = "" lblG1.Visible = False lblG2.Visible = False lblG3.Visible = False
lblG4.Visible = False lblG5.Visible = False lblG6.Visible = False lblG7.Visible = False lblG8.Visible = False lblDFR.Text = "" lblDFT.Text = "" lblDFE.Text = "" lblDFTot.Text = "" lblSSR.Text = "" lblSST.Text = "" lblSSE.Text = "" lblSSTot.Text = "" lblMSR.Text = "" lblMSE.Text = "" lblMST.Text = "" lblFR.Text = "" lblFT.Text = "" lblDFGCA.Text = "" lblDFSCA.Text = "" lblDFE1.Text = "" lblSSSCA.Text = "" lblSSGCA.Text = "" lblSSE1.Text = "" lblMSGCA.Text = "" lblMSSCA.Text = "" lblMSE1.Text = "" lblFGCA.Text = "" lblFSCA.Text = "" lblEGS11.Text = "" lblEGS12.Text = "" lblEGS13.Text = "" lblEGS14.Text = "" lblEGS15.Text = "" lblEGS16.Text = "" lblEGS17.Text = "" lblEGS18.Text = "" lblEGS22.Text = "" lblEGS23.Text = "" lblEGS24.Text = "" lblEGS25.Text = "" lblEGS26.Text = "" lblEGS27.Text = "" lblEGS28.Text = "" lblEGS33.Text = "" lblEGS34.Text = "" lblEGS35.Text = "" lblEGS36.Text = "" lblEGS37.Text = "" lblEGS38.Text = "" lblEGS44.Text = "" lblEGS45.Text = "" lblEGS46.Text = "" lblEGS47.Text = "" lblEGS48.Text = ""
L.30
lblEGS55.Text = "" lblEGS56.Text = "" lblEGS57.Text = "" lblEGS58.Text = "" lblEGS66.Text = "" lblEGS67.Text = "" lblEGS68.Text = "" lblEGS77.Text = "" lblEGS78.Text = "" lblEGS88.Text = "" 'OpenFileDialog1.Dispose() 'dsData.Dispose() txtT.Text = "2" txtR.Text = "1" txtPath.Clear() txtT.Focus() btnBrowse.Enabled = True btnCalculate.Enabled = False End SubPrivate Sub txtT_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtT.TextChanged
If Integer.Parse(txtT.Text) < 2 Or Integer.Parse(txtT.Text) > 8 Then
txtT.Text = "2"
txtT.Focus()
MessageBox.Show("Isi perlakuan harus berada di atas 1 dan di bawah 9")
End If End Sub
Private Sub txtR_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtR.TextChanged
If Integer.Parse(txtR.Text) < 1 Then txtR.Text = "1"
txtR.Focus()
MessageBox.Show("Isi perlakuan harus berada di atas 0") End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
lblG1.Visible = False lblG2.Visible = False lblG3.Visible = False lblG4.Visible = False lblG5.Visible = False lblG6.Visible = False lblG7.Visible = False lblG8.Visible = False lblEGS11.Text = "" lblEGS12.Text = "" lblEGS13.Text = "" lblEGS14.Text = "" lblEGS15.Text = ""
lblEGS16.Text = "" lblEGS17.Text = "" lblEGS18.Text = "" lblEGS22.Text = "" lblEGS23.Text = "" lblEGS24.Text = "" lblEGS25.Text = "" lblEGS26.Text = "" lblEGS27.Text = "" lblEGS28.Text = "" lblEGS33.Text = "" lblEGS34.Text = "" lblEGS35.Text = "" lblEGS36.Text = "" lblEGS37.Text = "" lblEGS38.Text = "" lblEGS44.Text = "" lblEGS45.Text = "" lblEGS46.Text = "" lblEGS47.Text = "" lblEGS48.Text = "" lblEGS55.Text = "" lblEGS56.Text = "" lblEGS57.Text = "" lblEGS58.Text = "" lblEGS66.Text = "" lblEGS67.Text = "" lblEGS68.Text = "" lblEGS77.Text = "" lblEGS78.Text = "" lblEGS88.Text = "" End Sub End Class