Implementasi Backward chaining Dalam Pendeteksian Penyakit Anemia

1. HASIL

  '-----------------------------------------------------------------

  • ' <auto-generated> ' This code was generated by a tool. ' Runtime Version:2.0.50727.4971 ' ' Changes to this file may cause incorrect behavior and will be lost if ' the code is regenerated. ' </auto-generated>

  '-----------------------------------------------------------------

  • Option Strict Off Option Explicit On Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.ReportSource Imports CrystalDecisions.Shared Imports System Imports System.ComponentModel Public Class CRHasil

  Inherits ReportClass Public Sub New() MyBase.New End Sub Public Overrides Property ResourceName() As String Get Return "CRHasil.rpt" End Get Set 'Do nothing End Set End Property Public Overrides Property NewGenerator() As Boolean Get Return true End Get Set 'Do nothing End Set End Property Public Overrides Property FullResourceName() As String Get Return "SP_Darah.CRHasil.rpt" End Get Set 'Do nothing End Set End Property

  <Browsable(false), _ DesignerSerializationVisibilityAttribute(System.ComponentModel.Des ignerSerializationVisibility.Hidden)> _ Public ReadOnly Property Section1() As CrystalDecisions.CrystalReports.Engine.Section Get Return Me.ReportDefinition.Sections(0) End Get End Property <Browsable(false), _ DesignerSerializationVisibilityAttribute(System.ComponentModel.Des ignerSerializationVisibility.Hidden)> _ Public ReadOnly Property Section2() As CrystalDecisions.CrystalReports.Engine.Section Get Return Me.ReportDefinition.Sections(1) End Get End Property <Browsable(false), _ DesignerSerializationVisibilityAttribute(System.ComponentModel.Des ignerSerializationVisibility.Hidden)> _ Public ReadOnly Property GroupHeaderSection1() As CrystalDecisions.CrystalReports.Engine.Section Get Return Me.ReportDefinition.Sections(2) End Get End Property <Browsable(false), _ DesignerSerializationVisibilityAttribute(System.ComponentModel.Des ignerSerializationVisibility.Hidden)> _ Public ReadOnly Property Section3() As CrystalDecisions.CrystalReports.Engine.Section Get Return Me.ReportDefinition.Sections(3) End Get End Property <Browsable(false), _ DesignerSerializationVisibilityAttribute(System.ComponentModel.Des ignerSerializationVisibility.Hidden)> _ Public ReadOnly Property GroupFooterSection1() As CrystalDecisions.CrystalReports.Engine.Section Get Return Me.ReportDefinition.Sections(4) End Get End Property <Browsable(false), _ DesignerSerializationVisibilityAttribute(System.ComponentModel.Des ignerSerializationVisibility.Hidden)> _

  Public ReadOnly Property Section4() As CrystalDecisions.CrystalReports.Engine.Section Get Return Me.ReportDefinition.Sections(5) End Get End Property <Browsable(false), _ DesignerSerializationVisibilityAttribute(System.ComponentModel.Des ignerSerializationVisibility.Hidden)> _ Public ReadOnly Property Section5() As CrystalDecisions.CrystalReports.Engine.Section Get Return Me.ReportDefinition.Sections(6) End Get End Property End Class <System.Drawing.ToolboxBitmapAttribute(GetType(CrystalDecisions.[S hared].ExportOptions), "report.bmp")> _ Public Class CachedCRHasil Inherits Component Implements ICachedReport Public Sub New() MyBase.New End Sub <Browsable(false), _ DesignerSerializationVisibilityAttribute(System.ComponentModel.Des ignerSerializationVisibility.Hidden)> _ Public Overridable Property IsCacheable() As Boolean Implements CrystalDecisions.ReportSource.ICachedReport.IsCacheable Get Return true End Get Set ' End Set End Property <Browsable(false), _ DesignerSerializationVisibilityAttribute(System.ComponentModel.Des ignerSerializationVisibility.Hidden)> _ Public Overridable Property ShareDBLogonInfo() As Boolean Implements CrystalDecisions.ReportSource.ICachedReport.ShareDBLogonInfo Get Return false End Get Set ' End Set End Property <Browsable(false), _

  DesignerSerializationVisibilityAttribute(System.ComponentModel.Des ignerSerializationVisibility.Hidden)> _ Public Overridable Property CacheTimeOut() As System.TimeSpan Implements CrystalDecisions.ReportSource.ICachedReport.CacheTimeOut Get Return CachedReportConstants.DEFAULT_TIMEOUT End Get Set ' End Set End Property Public Overridable Function CreateReport() As CrystalDecisions.CrystalReports.Engine.ReportDocument Implements CrystalDecisions.ReportSource.ICachedReport.CreateReport Dim rpt As CRHasil = New CRHasil rpt.Site = Me.Site Return rpt End Function Public Overridable Function GetCustomizedCacheKey(ByVal request As RequestContext) As String Implements CrystalDecisions.ReportSource.ICachedReport.GetCustomizedCacheKey Dim key As [String] = Nothing '// The following is the code used to generate the default '// cache key for caching report jobs in the ASP.NET Cache. '// Feel free to modify this code to suit your needs. '// Returning key == null causes the default cache key to '// be generated. ' 'key = RequestContext.BuildCompleteCacheKey( ' request, ' null, // sReportFilename ' this.GetType(), ' this.ShareDBLogonInfo ); Return key End Function End Class

2. PASIEN

  '-----------------------------------------------------------------

  • ' <auto-generated> ' This code was generated by a tool. ' Runtime Version:2.0.50727.4971 ' ' Changes to this file may cause incorrect behavior and will be lost if ' the code is regenerated. ' </auto-generated>

  '-----------------------------------------------------------------

  • Option Strict Off Option Explicit On Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.ReportSource Imports CrystalDecisions.Shared Imports System Imports System.ComponentModel Public Class CRPasien

  Inherits ReportClass Public Sub New() MyBase.New End Sub Public Overrides Property ResourceName() As String Get Return "CRPasien.rpt" End Get Set 'Do nothing End Set End Property Public Overrides Property NewGenerator() As Boolean Get Return true End Get Set 'Do nothing End Set End Property Public Overrides Property FullResourceName() As String Get Return "SP_Darah.CRPasien.rpt" End Get Set 'Do nothing End Set End Property

  <Browsable(false), _ DesignerSerializationVisibilityAttribute(System.ComponentModel.Des ignerSerializationVisibility.Hidden)> _ Public ReadOnly Property Section1() As CrystalDecisions.CrystalReports.Engine.Section Get Return Me.ReportDefinition.Sections(0) End Get End Property <Browsable(false), _ DesignerSerializationVisibilityAttribute(System.ComponentModel.Des ignerSerializationVisibility.Hidden)> _ Public ReadOnly Property Section2() As CrystalDecisions.CrystalReports.Engine.Section Get Return Me.ReportDefinition.Sections(1) End Get End Property <Browsable(false), _ DesignerSerializationVisibilityAttribute(System.ComponentModel.Des ignerSerializationVisibility.Hidden)> _ Public ReadOnly Property Section3() As CrystalDecisions.CrystalReports.Engine.Section Get Return Me.ReportDefinition.Sections(2) End Get End Property <Browsable(false), _ DesignerSerializationVisibilityAttribute(System.ComponentModel.Des ignerSerializationVisibility.Hidden)> _ Public ReadOnly Property Section4() As CrystalDecisions.CrystalReports.Engine.Section Get Return Me.ReportDefinition.Sections(3) End Get End Property <Browsable(false), _ DesignerSerializationVisibilityAttribute(System.ComponentModel.Des ignerSerializationVisibility.Hidden)> _ Public ReadOnly Property Section5() As CrystalDecisions.CrystalReports.Engine.Section Get Return Me.ReportDefinition.Sections(4) End Get End Property <Browsable(false), _ DesignerSerializationVisibilityAttribute(System.ComponentModel.Des ignerSerializationVisibility.Hidden)> _

  Public ReadOnly Property Parameter_periode() As CrystalDecisions.[Shared].IParameterField Get Return Me.DataDefinition.ParameterFields(0) End Get End Property End Class <System.Drawing.ToolboxBitmapAttribute(GetType(CrystalDecisions.[S hared].ExportOptions), "report.bmp")> _ Public Class CachedCRPasien Inherits Component Implements ICachedReport Public Sub New() MyBase.New End Sub <Browsable(false), _ DesignerSerializationVisibilityAttribute(System.ComponentModel.Des ignerSerializationVisibility.Hidden)> _ Public Overridable Property IsCacheable() As Boolean Implements CrystalDecisions.ReportSource.ICachedReport.IsCacheable Get Return true End Get Set ' End Set End Property <Browsable(false), _ DesignerSerializationVisibilityAttribute(System.ComponentModel.Des ignerSerializationVisibility.Hidden)> _ Public Overridable Property ShareDBLogonInfo() As Boolean Implements CrystalDecisions.ReportSource.ICachedReport.ShareDBLogonInfo Get Return false End Get Set ' End Set End Property <Browsable(false), _ DesignerSerializationVisibilityAttribute(System.ComponentModel.Des ignerSerializationVisibility.Hidden)> _ Public Overridable Property CacheTimeOut() As System.TimeSpan Implements CrystalDecisions.ReportSource.ICachedReport.CacheTimeOut Get Return CachedReportConstants.DEFAULT_TIMEOUT End Get Set '

  End Set End Property Public Overridable Function CreateReport() As CrystalDecisions.CrystalReports.Engine.ReportDocument Implements CrystalDecisions.ReportSource.ICachedReport.CreateReport Dim rpt As CRPasien = New CRPasien rpt.Site = Me.Site Return rpt End Function Public Overridable Function GetCustomizedCacheKey(ByVal request As RequestContext) As String Implements CrystalDecisions.ReportSource.ICachedReport.GetCustomizedCacheKey Dim key As [String] = Nothing '// The following is the code used to generate the default '// cache key for caching report jobs in the ASP.NET Cache.

  '// Feel free to modify this code to suit your needs. '// Returning key == null causes the default cache key to '// be generated.

  ' 'key = RequestContext.BuildCompleteCacheKey( ' request, ' null, // sReportFilename ' this.GetType(), ' this.ShareDBLogonInfo ); Return key End Function End Class

3. GEJALA

  Imports System.Windows.Forms Public Class dlgGejala Dim query As String Public LabelID As Label Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.DialogResult = System.Windows.Forms.DialogResult.OK Me.Close() End Sub Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.DialogResult = System.Windows.Forms.DialogResult.Cancel Me.Close() End Sub Private Sub dlgGejala_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load query = "select ID as ID, nm_gejala as Nama_Gejala from gejala order by ID asc" updateTabel(DGVGejala, query) DGVGejala.Columns("Nama_Gejala").Width = 500

  End Sub Private Sub DGVGejala_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGVGejala.DoubleClick LabelID.Text = DGVGejala.CurrentRow.Cells("ID").Value Me.Close() End Sub End Class

4. PENYAKIT

  Imports System.Windows.Forms Public Class dlgPenyakit Dim query As String Public labelID As Label Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.DialogResult = System.Windows.Forms.DialogResult.OK Me.Close() End Sub Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.DialogResult = System.Windows.Forms.DialogResult.Cancel Me.Close() End Sub Private Sub dlgPenyakit_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load query = "select ID as ID, nm_penyakit as Nama_Penyakit, ket_penyakit as Keterangan from Penyakit order by ID asc" updateTabel(DGVPenyakit, query) DGVPenyakit.Columns("Nama_Penyakit").Width = 500 End Sub Private Sub DGVPenyakit_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGVPenyakit.CellContentClick End Sub Private Sub DGVPenyakit_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGVPenyakit.DoubleClick If DGVPenyakit.RowCount <= 0 Then Exit Sub End If labelID.Text = DGVPenyakit.CurrentRow.Cells("ID").Value Me.Close() End Sub End Class

5. ADMIN

  Imports MySql.Data.MySqlClient Public Class formAdmin Dim query As String Dim IDGejala, IDPenyakit, IDTrue, IDfalse As String Dim myReader As MySqlDataReader Dim username As String Dim myCommand As New MySqlCommand Dim myAdapter As New MySqlDataAdapter Dim myData As New DataTable Private Sub formAdmin_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed formUtama.Text = "" enableTombol(True) End Sub Private Sub formAdmin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load SK.Active = True Me.SK.SkinFile = My.Application.Info.DirectoryPath & "\GlassGreen.ssk" formUtama.Text = "Menu Administrator" Panel1.Visible = False hiddenTab(TC) TC.TabPages.Add(TPLogin) End Sub Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click Me.Close() End Sub Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click Me.Close() End Sub Private Sub btnTutupG_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTutupG.Click hiddenTab(TC) End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click hiddenTab(TC) TC.TabPages.Add(TPGejala) txtGejala.Clear() btnTambahG.Enabled = True btnUpdateG.Enabled = False btnHapusG.Enabled = False query = "select ID as ID, nm_gejala as Nama_Gejala from Gejala" updateTabel(DGVGejala, query) DGVGejala.Columns("Nama_Gejala").Width = 1000 End Sub

  Private Sub btnTambahG_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTambahG.Click If Len(Trim(txtGejala.Text)) <= 0 Then MessageBox.Show("Field masih kosong !", "", MessageBoxButtons.OK) Exit Sub End If Dim hasil As DialogResult = MessageBox.Show("Apakah anda yakin akan menyimpan data ini ?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If hasil = vbNo Then Exit Sub End If query = "insert into gejala values(0,'" & txtGejala.Text & "')" ExeQuery(query) btnBersihG_Click(Nothing, Nothing) End Sub Private Sub btnBersihG_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBersihG.Click txtGejala.Clear()

  IDGejala = 0 btnTambahG.Enabled = True btnUpdateG.Enabled = False btnHapusG.Enabled = False query = "select ID as ID, nm_gejala as Nama_Gejala from Gejala order by ID asc" updateTabel(DGVGejala, query) DGVGejala.Columns("Nama_Gejala").Width = 1000 End Sub Private Sub DGVGejala_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGVGejala.DoubleClick If DGVGejala.RowCount <= 0 Then Exit Sub End If

  IDGejala = DGVGejala.CurrentRow.Cells("ID").Value query = "select * from Gejala where ID = " & IDGejala txtGejala.Text = getRow(query, "nm_gejala") btnTambahG.Enabled = False btnUpdateG.Enabled = True btnHapusG.Enabled = True End Sub Private Sub btnUpdateG_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdateG.Click If Len(Trim(txtGejala.Text)) <= 0 Then MessageBox.Show("Field masih kosong !", "", MessageBoxButtons.OK) Exit Sub End If Dim hasil As DialogResult = MessageBox.Show("Apakah anda yakin akan mengupdate data ini ?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

  If hasil = vbNo Then Exit Sub End If query = "update gejala set nm_gejala = '" & txtGejala.Text & "' where ID = " & IDGejala ExeQuery(query) btnBersihG_Click(Nothing, Nothing) End Sub Private Sub btnHapusG_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHapusG.Click Dim hasil As DialogResult = MessageBox.Show("Apakah anda yakin akan menghapus data ini ?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If hasil = vbNo Then Exit Sub End If query = "delete from Gejala where ID = " & IDGejala ExeQuery(query) btnBersihG_Click(Nothing, Nothing) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click hiddenTab(TC) TC.TabPages.Add(TPPenyakit) btnBersihP_Click(Nothing, Nothing) End Sub Private Sub btnBersihP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBersihP.Click txtPenyakit.Clear() txtKetPenyakit.Clear() btnTambahP.Enabled = True btnUpdateP.Enabled = False btnHapusP.Enabled = False query = "select ID as ID, nm_penyakit as Nama_Penyakit, ket_penyakit as Keterangan from Penyakit order by ID asc" updateTabel(DGVPenyakit, query) DGVPenyakit.Columns("Nama_Penyakit").Width = 300 DGVPenyakit.Columns("Keterangan").Width = 800

  IDPenyakit = 0 End Sub Private Sub btnTutupP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTutupP.Click hiddenTab(TC) End Sub Private Sub DGVPenyakit_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGVPenyakit.DoubleClick If DGVPenyakit.RowCount <= 0 Then Exit Sub End If

  IDPenyakit = DGVPenyakit.CurrentRow.Cells("ID").Value query = "select * from penyakit where ID = " & IDPenyakit txtPenyakit.Text = getRow(query, "nm_penyakit") txtKetPenyakit.Text = getRow(query, "ket_penyakit") btnTambahP.Enabled = False btnUpdateP.Enabled = True btnHapusP.Enabled = True End Sub Private Sub btnTambahP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTambahP.Click If Len(Trim(txtPenyakit.Text)) <= 0 Or Len(Trim(txtKetPenyakit.Text)) <= 0 Then MessageBox.Show("Field masih kosong !", "", MessageBoxButtons.OK) Exit Sub End If Dim hasil As DialogResult = MessageBox.Show("Apakah anda yakin akan menyimpan data ini ?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If hasil = vbNo Then Exit Sub End If query = "insert into penyakit values (0,'" & txtPenyakit.Text & "','" & txtKetPenyakit.Text & "')" ExeQuery(query) btnBersihP_Click(Nothing, Nothing) End Sub Private Sub btnUpdateP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdateP.Click If Len(Trim(txtPenyakit.Text)) <= 0 Or Len(Trim(txtKetPenyakit.Text)) <= 0 Then MessageBox.Show("Field masih kosong !", "", MessageBoxButtons.OK) Exit Sub End If Dim hasil As DialogResult = MessageBox.Show("Apakah anda yakin akan mengupdate data ini ?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If hasil = vbNo Then Exit Sub End If query = "update penyakit set nm_penyakit = '" & txtPenyakit.Text & "',ket_penyakit = '" & txtKetPenyakit.Text & "' where ID =" & IDPenyakit ExeQuery(query) btnBersihP_Click(Nothing, Nothing) End Sub Private Sub btnHapusP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHapusP.Click Dim hasil As DialogResult = MessageBox.Show("Apakah anda yakin akan menghapus data ini ?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If hasil = vbNo Then Exit Sub End If query = "delete from penyakit where ID =" & IDPenyakit ExeQuery(query)

btnBersihP_Click(Nothing, Nothing) End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click hiddenTab(TC) TC.TabPages.Add(TPRelasi) query = "select * from gejala order by ID asc" myReader = getDs(query) CLBRelasi.Items.Clear() While myReader.Read CLBRelasi.Items.Add(myReader.GetString("nm_gejala")) End While btnBersihR_Click(Nothing, Nothing) End Sub Private Sub btnBersihR_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBersihR.Click lblIDpeny.Text = 0 For i = 0 To CLBRelasi.Items.Count - 1 CLBRelasi.SetItemChecked(i, False) Next btnHapusR.Enabled = False End Sub Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click dlgPenyakit.labelID = lblIDpeny dlgPenyakit.Show() End Sub Private Sub lblIDpeny_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lblIDpeny.TextChanged query = "select * from penyakit where ID = " & lblIDpeny.Text lblnmpeny.Text = getRow(query, "nm_penyakit") If Len(lblnmpeny.Text) > 0 Then btnHapusR.Enabled = True Else btnHapusR.Enabled = False End If For i = 0 To CLBRelasi.Items.Count - 1 CLBRelasi.SetItemChecked(i, False) Next query = "select gejala.nm_gejala from relasi,gejala where gejala.ID = relasi.id_gejala and relasi.id_penyakit = " & lblIDpeny.Text myReader = getDs(query) While myReader.Read For i = 0 To CLBRelasi.Items.Count - 1 If myReader.GetString("nm_gejala") = CLBRelasi.Items.Item(i).ToString Then CLBRelasi.SetItemChecked(i, True) End If

  Next End While End Sub Private Sub btnSubmitR_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSubmitR.Click If Len(Trim(lblnmpeny.Text)) <= 0 Then MessageBox.Show("Pilih penyakit terlebih dahulu !", "", MessageBoxButtons.OK) Exit Sub End If Dim hasil As DialogResult = MessageBox.Show("Apakah anda yakin akan mensubmit data ini ?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If hasil = vbNo Then Exit Sub End If Dim IDtmp As String = "0" query = "delete from relasi where id_penyakit = " & lblIDpeny.Text ExeQuery(query) For i = 0 To CLBRelasi.Items.Count - 1 If CLBRelasi.GetItemChecked(i) = True Then query = "select * from gejala where nm_gejala = '" & CLBRelasi.Items.Item(i).ToString & "'"

  IDtmp = getRow(query, "ID") query = "insert into relasi values(0," & lblIDpeny.Text & "," & IDtmp & ")" ExeQuery(query) End If Next btnBersihR_Click(Nothing, Nothing) End Sub Private Sub btnHapusR_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHapusR.Click Dim hasil As DialogResult = MessageBox.Show("Apakah anda yakin akan menghapus data ini ?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If hasil = vbNo Then Exit Sub End If Dim IDtmp As String = "0" query = "delete from relasi where id_penyakit = " & lblIDpeny.Text ExeQuery(query) btnBersihR_Click(Nothing, Nothing) End Sub Private Sub btnTutupR_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTutupR.Click hiddenTab(TC) End Sub Private Sub btnBersihT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBersihT.Click lblIDtanya.Text = 0 End Sub Private Sub btnTutupT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTutupT.Click hiddenTab(TC) End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click hiddenTab(TC) TC.TabPages.Add(TPPohon) btnBersihT_Click(Nothing, Nothing) End Sub Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click dlgGejala.Close() dlgGejala.LabelID = lblIDtanya dlgGejala.Show() End Sub Private Sub lblIDtanya_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lblIDtanya.TextChanged query = "select * from gejala where ID = " & lblIDtanya.Text lblKetTanya.Text = getRow(query, "nm_gejala") query = "select * from pohon where ID = " & lblIDtanya.Text If Len(getRow(query, "id_ya")) > 0 Then btnUpdateT.Enabled = True btnHapusT.Enabled = True btnTambahT.Enabled = False lblTrue.Text = getRow(query, "id_ya") lblFalse.Text = getRow(query, "id_tidak") Else btnUpdateT.Enabled = False btnHapusT.Enabled = False btnTambahT.Enabled = True lblTrue.Text = "G0" lblFalse.Text = "G0" End If End Sub Private Sub lblTrue_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lblTrue.TextChanged Dim sql As String = "" If lblTrue.Text.IndexOf("G") = 0 Then

  IDTrue = lblTrue.Text.Substring(1) sql = "select * from gejala where ID = " & IDTrue lblKetTrue.Text = getRow(sql, "nm_gejala") Else

  IDTrue = lblTrue.Text.Substring(1) sql = "select * from penyakit where ID = " & IDTrue lblKetTrue.Text = getRow(sql, "nm_penyakit") End If End Sub Private Sub lblFalse_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lblFalse.TextChanged Dim sql2 As String = "" If lblFalse.Text.IndexOf("G") = 0 Then

  IDfalse = lblFalse.Text.Substring(1) sql2 = "select * from gejala where ID = " & IDfalse lblKetFalse.Text = getRow(sql2, "nm_gejala") Else

  IDfalse = lblFalse.Text.Substring(1) sql2 = "select * from penyakit where ID = " & IDfalse lblKetFalse.Text = getRow(sql2, "nm_penyakit") End If End Sub Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click dlgMix.labelID = lblTrue dlgMix.Show() End Sub Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click dlgMix.labelID = lblFalse dlgMix.Show() End Sub Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked lblTrue.Text = "G0" End Sub Private Sub LinkLabel2_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel2.LinkClicked lblFalse.Text = "G0" End Sub Private Sub btnTambahT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTambahT.Click Dim hasil As DialogResult = MessageBox.Show("Apakah anda yakin akan menyimpan data ini ?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If hasil = vbNo Then Exit Sub End If query = "insert into pohon values(0," & lblIDtanya.Text & ",'" & lblTrue.Text & "','" & lblFalse.Text & "')" ExeQuery(query) btnBersihT_Click(Nothing, Nothing) End Sub Private Sub btnUpdateT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdateT.Click Dim hasil As DialogResult = MessageBox.Show("Apakah anda yakin akan mengupdate data ini ?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If hasil = vbNo Then Exit Sub End If query = "update pohon set id_ya = '" & lblTrue.Text & "',id_tidak = '" & lblFalse.Text & "' where ID =" & lblIDtanya.Text ExeQuery(query) btnBersihT_Click(Nothing, Nothing) End Sub Private Sub btnHapusT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHapusT.Click Dim hasil As DialogResult = MessageBox.Show("Apakah anda yakin akan menghapus data ini ?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If hasil = vbNo Then Exit Sub End If query = "delete from pohon where ID =" & lblIDtanya.Text ExeQuery(query) btnBersihT_Click(Nothing, Nothing) End Sub Private Sub btnTambahU_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTambahU.Click If Len(Trim(txtUsernameT.Text)) <= 0 Or Len(Trim(txtNamaT.Text)) <= 0 Or Len(Trim(txtAlamatT.Text)) <= 0 Then MessageBox.Show("Lengkapi form anda !", "", MessageBoxButtons.OK) Exit Sub End If If Not txtPass1.Text = txtPass2.Text Then MessageBox.Show("Konfirmasi kembali password !", "", MessageBoxButtons.OK) Exit Sub End If Dim hasil As DialogResult = MessageBox.Show("Apakah anda yakin akan menyimpan data ini ?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If hasil = vbNo Then Exit Sub End If

query = "insert into admin values('" & txtUsernameT.Text & "','" & txtNamaT.Text & "','" & txtAlamatT.Text & "','Tidak','" & txtPass1.Text & "')" ExeQuery(query) btnBersihU_Click(Nothing, Nothing) btnBersihA_Click(Nothing, Nothing) End Sub Private Sub btnBersihU_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBersihU.Click txtUsernameT.Clear() txtNamaT.Clear() txtAlamatT.Clear() txtPass1.Clear() txtPass2.Clear() End Sub Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click hiddenTab(TC) TC.TabPages.Add(TPTAdmin) TC.TabPages.Add(TPEAdmin) btnBersihU_Click(Nothing, Nothing) btnBersihA_Click(Nothing, Nothing) End Sub Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click hiddenTab(TC) End Sub Private Sub btnBersihA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBersihA.Click txtUsernameE.Clear() query = "select username as Username, nama as Nama, alamat as Alamat, blokir as Blokir from admin" updateTabel(DGVAdmin, query) DGVAdmin.Columns("Nama").Width = 300 DGVAdmin.Columns("Alamat").Width = 700 End Sub Private Sub txtUsernameE_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtUsernameE.TextChanged query = "select * from admin where username = '" & txtUsernameE.Text & "'" If Len(Trim(getRow(query, "username"))) > 0 Then btnUpdateA.Enabled = True btnHapusA.Enabled = True myReader = getDs(query) While myReader.Read txtNamaE.Text = myReader.GetString("nama") txtAlamatE.Text = myReader.GetString("alamat") cboBlokir.SelectedText = myReader.GetString("blokir") End While Else txtNamaE.Clear() txtAlamatE.Clear()

btnUpdateA.Enabled = False btnHapusA.Enabled = False End If End Sub Private Sub btnTutupA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTutupA.Click hiddenTab(TC) End Sub Private Sub btnUpdateA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdateA.Click Dim hasil As DialogResult = MessageBox.Show("Apakah anda yakin akan mengupdate data ini ?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If hasil = vbNo Then Exit Sub End If query = "update admin set nama = '" & txtNamaE.Text & "',alamat = '" & txtAlamatE.Text & "',blokir = '" & cboBlokir.Text & "' where username = '" & txtUsernameE.Text & "'" ExeQuery(query) btnBersihA_Click(Nothing, Nothing) End Sub Private Sub btnHapusA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHapusA.Click Dim hasil As DialogResult = MessageBox.Show("Apakah anda yakin akan menghapus data ini ?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If hasil = vbNo Then Exit Sub End If query = "delete from admin where username = '" & txtUsernameE.Text & "'" ExeQuery(query) btnBersihA_Click(Nothing, Nothing) End Sub Private Sub DGVAdmin_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGVAdmin.DoubleClick txtUsernameE.Text = DGVAdmin.CurrentRow.Cells("Username").Value End Sub Private Sub Button17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button17.Click query = "select * from admin where username ='" & username & "' and password = '" & txtPassLama.Text & "'" If getRow(query, "username") = "" Then MessageBox.Show("Password lama anda tidak valid !", "", MessageBoxButtons.OK) Exit Sub End If If Not txtPassBaru1.Text = txtPassBaru2.Text Then MessageBox.Show("Konfirmasi kembali password baru anda !", "", MessageBoxButtons.OK)

  Exit Sub End If query = "update admin set password = '" & txtPassBaru1.Text & "' where username = '" & username & "'" ExeQuery(query) MessageBox.Show("Password berhasil diganti !", "", MessageBoxButtons.OK) txtPassLama.Clear() txtPassBaru1.Clear() txtPassBaru2.Clear() End Sub Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click hiddenTab(TC) End Sub Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click hiddenTab(TC) TC.TabPages.Add(TPPassword) txtPassLama.Clear() txtPassBaru1.Clear() txtPassBaru2.Clear() End Sub Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click query = "select * from admin where username ='" & txtUserLogin.Text & "' and password = '" & txtPasswordLogin.Text & "'" If getRow(query, "username") = "" Then MessageBox.Show("Username & password anda tidak valid !", "", MessageBoxButtons.OK) Exit Sub End If If getRow(query, "blokir") = "Ya" Then MessageBox.Show("User Account anda telah diblokir", "", MessageBoxButtons.OK) Exit Sub End If username = txtUserLogin.Text hiddenTab(TC) Panel1.Visible = True End Sub Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click Dim cr As New CRPasien query = "select distinct * from pasien,hasil,penyakit where pasien.username = hasil.username and penyakit.ID = hasil.id_penyakit and hasil.waktu >='" & DateTimePicker1.Value.ToString("yyyy-MM-dd") & "' and hasil.waktu<='" & DateTimePicker2.Value.ToString("yyyy-MM-dd") & "'" myData.Clear() myCommand.Connection = getCon() myCommand.CommandText = query myAdapter.SelectCommand = myCommand myAdapter.Fill(myData) cr.Refresh() cr.SetDataSource(myData) cr.SetParameterValue("periode", DateTimePicker1.Value.ToString("dd/MM/yyyy") & " s/d " & DateTimePicker2.Value.ToString("dd/MM/yyyy")) CRView.Refresh() CRView.ReportSource = cr End Sub Private Sub Button18_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button18.Click hiddenTab(TC) TC.TabPages.Add(TPReport) End Sub

  End Class