• Tidak ada hasil yang ditemukan

17. Tambahkan Form baru dengan nama frmhitungakurasi.vb, Desain dengan layout sbb :

N/A
N/A
Protected

Academic year: 2022

Membagikan "17. Tambahkan Form baru dengan nama frmhitungakurasi.vb, Desain dengan layout sbb :"

Copied!
10
0
0

Teks penuh

(1)

Pemrograman Visual II by Amiruddin, M.Kom 2021

87 | P a g e

17. Tambahkan Form baru dengan nama frmHitungAkurasi.vb, Desain dengan layout sbb :

 Atur Properties yang dibutuhkan:

Obyek Properties Nilai

Form

FileName frmHitungAkurasi.vb Name frmHitungAkurasi

BackColor Pilih warna yg diinginkan ForeColor Pilih warna yg diinginkan MaximizeBox False

MinimizeBox False

StartPosition CenterScreen

Text Hitung Kesalahan MAPE

ComboBox1 Name cboProdi

DataGridView1 Name DGV

Button1 Name btnHitungMape

Text Hitung MAPE

(2)

Pemrograman Visual II by Amiruddin, M.Kom 2021

88 | P a g e

Obyek Properties Nilai

Button2 Name btnTutup

Text Tutup

TextBox1 Name txtMape

PictureBox1 Image Isi gambar Rumus MAPE

 Lengkapi Coding sbb :

 Klik Menu View Code, sehingga muncul seperti berikut :

Imports System.Data.Odbc

Public Class frmSettingDataset

Dim NilaiA, NilaiB, nNilaiX, nNilaiY As Single Dim cAkurasi_AWal, cAkurasi_Akhir, cKet As String Dim Akurasi As Boolean

Dim cTitikPeriode, cKetPeriode As String Dim nilai_X, cPeriode As Integer

End Class

Ketik Imports System.Data.Odbc di atas Public Class, kemudian ketik perintah 4 baris Dim seperti di atas

PASTIKAN CODING BERIKUT DIBUAT ANTARA PUBLIC CLASS dan END CLASS

 Buat Sub Procedure Kosongkan sbb :

Sub Kosongkan()

dg2.Columns.Clear() txtNilaiA.Text = ""

txtNilaiB.Text = ""

txtNilaiX.Text = ""

txtHasil.Text = ""

cboPeriode.Text = ""

lblY.Text = ""

btnPrediksi.Enabled = False txtNilaiX.Enabled = False cboPeriode.Enabled = False End Sub

 Buat sub Procedure TampilProdi sbb :

Sub TampilProdi()

cboProdi.Items.Clear()

cmd = New OdbcCommand("select distinct nama_prodi from tbprogram_studi " & _ " order by kode_prodi", Conn)

rd = cmd.ExecuteReader While rd.Read

cboProdi.Items.Add(rd.Item(0)) End While

End Sub

(3)

Pemrograman Visual II by Amiruddin, M.Kom 2021

89 | P a g e

 Buat sub Procedure TampilPeriode sbb :

Sub TampilPeriode()

cboPeriode.Items.Clear()

cmd = New OdbcCommand("select distinct nama_periode from tbperiode order by id_periode", Conn)

rd = cmd.ExecuteReader While rd.Read

cboPeriode.Items.Add(rd.Item(0)) End While

End Sub

 Buat sub Procedure CekSettingDataset sbb :

Sub CekSettingDataset()

cmd = New OdbcCommand("Select * from tbsetting_dataset where kode_prodi='" &

cKode_Prodi & "' ", Conn) rd = cmd.ExecuteReader rd.Read()

If rd.HasRows Then

cAkurasi_AWal = rd.Item("akurasi_awal") cAkurasi_Akhir = rd.Item("akurasi_akhir") NilaiA = rd.Item("nilai_a")

NilaiB = rd.Item("nilai_b") Call HitungDatasetAkurasi() Else

DGV.Columns.Clear() txtMape.Text = ""

MsgBox("Maaf, Setting Dataset untuk Prodi tsb Belum Diatur...", ,

"Perhatian...!")

cboProdi.Text = ""

Exit Sub End If End Sub

Pada Form HitungAkurasi bagian yg kosong double klik agar muncul di view code sbb

Private Sub frmHitungAkurasi_Load

Private Sub frmHitungAkurasi_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

cKode_Prodi = ""

Call TampilProdi() DGV.Columns.Clear()

btnHitungMAPE.Enabled = False Akurasi = True

End Sub

 Pilih Event KeyPress

(4)

Pemrograman Visual II by Amiruddin, M.Kom 2021

90 | P a g e Private Sub frmHitungAkurasi_KeyPress(ByVal sender As Object, ByVal e As

System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress If Asc(e.KeyChar) = Keys.Enter Then

SendKeys.Send("{tab}") End If

End Sub

 Double Klik pada combo Prodi

Private Sub cboProdi_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboProdi.SelectedIndexChanged

If cboProdi.Text = "" Then Exit Sub

cmd = New OdbcCommand("Select kode_prodi from tbProgram_studi where nama_prodi='" & cboProdi.Text & "'", Conn)

rd = cmd.ExecuteReader rd.Read()

If rd.HasRows Then

cKode_Prodi = rd.Item("kode_prodi") Call CekSettingDataset()

Else

MsgBox("Maaf, Nama Prodi salah isi...", , "Perhatian...!") cboProdi.Text = ""

cboProdi.Focus() Exit Sub

End If End Sub

 Buat sub procedure

CekNilaiX_Prediksi

Sub CekNilaiX_Prediksi()

cmd = New OdbcCommand("Select * from tbsetting_dataset where kode_prodi ='" &

cKode_Prodi & "' ", Conn) rd2 = cmd.ExecuteReader rd2.Read()

If rd2.HasRows Then

cTitikPeriode = rd2.Item("titik_periode") cKet = rd2.Item("ket")

If cKet = "Genap" Then

If cKetPeriode = "1" Then

nilai_X = ((cPeriode - cTitikPeriode) + (cPeriode - cTitikPeriode))

* 2 - 1

Else

nilai_X = ((cPeriode - cTitikPeriode) + (cPeriode - cTitikPeriode))

* 2 + 1

End If

Else

If cKetPeriode = "1" Then

nilai_X = (cPeriode - cTitikPeriode) * 2

(5)

Pemrograman Visual II by Amiruddin, M.Kom 2021

91 | P a g e Else

nilai_X = (cPeriode - cTitikPeriode) * 2 + 1 End If

End If

End If rd2.Close() End Sub

 Buat sub Procedure

CekDataPrediksi Sub CekDataPrediksi()

DGV.Columns.Clear()

DGV.Columns.Add("kode", "Periode")

DGV.Columns.Add("kode", "Data Aktual (y)") DGV.Columns.Add("kode", "Data Prediksi (y')") DGV.Columns.Add("kode", "Error MAPE (%)")

Dim sql As String = "Select id_periode,jml_mhs from tbdataset " & _ "where no_indeks >='" & cAkurasi_AWal & "' and no_indeks <='" &

cAkurasi_Akhir & "' " & _

"and kode_prodi='" & cKode_Prodi & "' order by id_dataset "

cmd = New OdbcCommand(sql, Conn) rd = cmd.ExecuteReader

Dim i As Integer = 0 While rd.Read

DGV.Rows.Add()

DGV.Item(0, i).Value = rd(0)

DGV.Item(1, i).Value = rd(1) 'Data Aktual (y)

i += 1 End While rd.Close()

For j As Integer = 0 To DGV.RowCount - 2 cId_Periode = DGV.Rows(j).Cells(0).Value

sql = "select prediksi_y from tbprediksi where kode_prodi ='" &

cKode_Prodi & "' and id_periode ='" & cId_Periode & "' "

cmd = New OdbcCommand(sql, Conn) rd = cmd.ExecuteReader

rd.Read()

If rd.HasRows = True Then

DGV.Item(2, j).Value = rd.Item(0) 'Data Prediksi (y') Else

DGV.Item(2, j).Value = ""

Akurasi = False 'bila masih ada data prediksi yg kosong End If

Next rd.Close()

DGV.ReadOnly = True

DGV.Columns(0).Width = 100 DGV.Columns(1).Width = 110 DGV.Columns(2).Width = 120 DGV.Columns(3).Width = 120 DGV.GridColor = Color.Blue

DGV.DefaultCellStyle.ForeColor = Color.Blue

(6)

Pemrograman Visual II by Amiruddin, M.Kom 2021

92 | P a g e DGV.RowHeadersDefaultCellStyle.BackColor = Color.DeepPink

DGV.AlternatingRowsDefaultCellStyle.BackColor = Color.LightGray DGV.SelectionMode = DataGridViewSelectionMode.FullRowSelect DGV.ColumnHeadersDefaultCellStyle.Alignment =

DataGridViewContentAlignment.MiddleCenter

DGV.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

DGV.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

DGV.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

DGV.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

DGV.Columns(2).DefaultCellStyle.Format = "#,##0.#0"

DGV.Columns(3).DefaultCellStyle.Format = "##0.0#"

If Akurasi = True Then

btnHitungMAPE.Enabled = True btnHitungMAPE.Focus()

Else

MsgBox("Maaf, Hasil Prediksi untuk Perhitungan Akurasi Belum Lengkap", ,

"Perhatian...!")

btnHitungMAPE.Enabled = False cboProdi.Focus()

Exit Sub End If End Sub

 Buat sub Procedure

HitungDatasetAkurasi Sub HitungDatasetAkurasi()

Dim Hasil As Single

Dim sql As String = "Select id_dataset,kode_prodi,id_periode,jml_mhs,no_indeks from tbdataset " & _

"where no_indeks >='" & cAkurasi_AWal & "' and no_indeks <='" &

cAkurasi_Akhir & "' " & _

"and kode_prodi='" & cKode_Prodi & "' order by id_dataset "

cmd = New OdbcCommand(sql, Conn) rd = cmd.ExecuteReader

Dim i As Integer = 0 While rd.Read

cId_Dataset = rd("id_dataset") cId_Periode = rd("id_periode") nNilaiY = rd("jml_mhs")

cPeriode = Microsoft.VisualBasic.Left(cId_Periode, 4) cKetPeriode = Microsoft.VisualBasic.Right(cId_Periode, 1)

CekNilaiX_Prediksi()

Hasil = Int(NilaiA + NilaiB * nilai_X)

cmd = New OdbcCommand("Select * from tbprediksi where id_dataset = '" &

cId_Dataset & "' ", Conn)

rd2 = cmd.ExecuteReader rd2.Read()

If Not rd2.HasRows Then

(7)

Pemrograman Visual II by Amiruddin, M.Kom 2021

93 | P a g e Dim sqltambah As String = "Insert into tbprediksi

(id_dataset,kode_prodi,id_periode,nilai_x,prediksi_y) values " & _

"('" & cId_Dataset & "','" & cKode_Prodi & "','" & cId_Periode & "','"

& nilai_X & "','" & Hasil & "')"

cmd = New OdbcCommand(sqltambah, Conn)

Else

Dim sqledit As String = "Update tbprediksi set " & _ "nilai_x='" & nilai_X & "', " & _

"prediksi_y='" & Hasil & "' " & _

"where id_dataset = '" & cId_Dataset & "' "

cmd = New OdbcCommand(sqledit, Conn)

End If

cmd.ExecuteNonQuery() End While

Call CekDataPrediksi() End Sub

 Buat sub Procedure

Hitung_MAPE Sub Hitung_MAPE()

Dim TotSelisih, nMAPE As Single Dim nBaris, nData As Integer

For brs As Integer = 0 To DGV.RowCount - 2 'Hitung Error MAPE (%)

If DGV.Item(1, brs).Value = 0 Then

DGV.Item(3, brs).Value = Math.Abs(DGV.Item(1, brs).Value - DGV.Item(2, brs).Value)

Else

DGV.Item(3, brs).Value = (Math.Abs(DGV.Item(1, brs).Value - DGV.Item(2, brs).Value) / DGV.Item(1, brs).Value) * 100

End If

TotSelisih = TotSelisih + DGV.Item(3, brs).Value Next

nBaris = DGV.RowCount - 1 rd.Close()

nData = DGV.RowCount - 1 DGV.Rows.Add("")

DGV.Rows.Add("Total")

DGV.Item(1, nBaris + 1).Value = "n = " + Microsoft.VisualBasic.Str(nData) DGV.Item(3, nBaris + 1).Value = TotSelisih

nMAPE = TotSelisih / nData

txtMape.Text = FormatNumber(nMAPE, 2) & "%"

End Sub

(8)

Pemrograman Visual II by Amiruddin, M.Kom 2021

94 | P a g e

 Double klik pada tombol Hitung MAPE :

Private Sub btnHitungMAPE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHitungMAPE.Click

Call Hitung_MAPE()

btnHitungMAPE.Enabled = False End Sub

 Double klik pada tombol Tutup :

Private Sub btnTutup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTutup.Click

Me.Dispose() End Sub

 Pada Form MenuAdmin, Double Klik pada Sub Menu Hitung Akurasi

Private Sub mnHitungAkurasi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnHitungAkurasi.Click

frmHitungAkurasi.Show()

frmHitungAkurasi.MdiParent = Me End Sub

(9)

Pemrograman Visual II by Amiruddin, M.Kom 2021

95 | P a g e

 Sebelum menjalankan form akurasi pastikan form setting dataset sudah diatur contoh sbb :

(10)

Pemrograman Visual II by Amiruddin, M.Kom 2021

96 | P a g e

 Contoh Hasil Akhir Forn Akurasi

 Pilih Program Studi yang akan dihitung tingkat Errornya/akurasi, kemudian klik tombol Hitung

MAPE

Referensi

Dokumen terkait

Menyimak  dari kajian  literatur/med ia dan  menyimpulka nnya tentang  pengertian,  jenis, manfaat dan  kandungan  aneka bahan  ikan dan  daging putih 

[r]

Further examples of controlling manual handling risks by redesigning the workplace are shown below under the three category headings: Modifying Workplace Layout and

The aim of present study was to evaluate the effect of soybean meal substitution by jack bean protein as the source of protein on performance, carcass production, visceral

Analisa menggunakan metode analisis isi ( content analysis ); Metode ini merupakan analisis ilmiah mengenai isi pesan sebuah pemikiran. Hasil penelitian ini

Dalam penelitian ini, berbagai organisasi Islam fundamentalis yang tumbuh dan berkembang di Universitas Indonesia dapat dipetakan menjadi tiga tipologi gerakan keagamaan, di

Peranan irigasi dalam meningkatkan dan menstabilkan produksi pertanian tidak hanya bersandar pada produktifitas saja tetapi juga pada kemampuannya untuk meningkatkan faktor-faktor

Pengaruh penerapan model pembelajaran tutor sebaya dengan multimedia terhadap hasil belajar siswa pada materi operasi himpunan dan diagram venn. 2 Subjek SMP Islam