• Tidak ada hasil yang ditemukan

Sistem Pendukung Keputusan Penentuan Penerima Beasiswa pada FMIPA USU Menggunakan Metode Fuzzy Multiple Attribute Decision Making

N/A
N/A
Protected

Academic year: 2017

Membagikan "Sistem Pendukung Keputusan Penentuan Penerima Beasiswa pada FMIPA USU Menggunakan Metode Fuzzy Multiple Attribute Decision Making"

Copied!
43
0
0

Teks penuh

(1)

LISTING PROGRAM

Kode Program Form Login:

Public Class FrmLogin

Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

dr = openDR("SELECT * FROM tb_admin WHERE user='" & TxtUsername.Text & "' AND pass='" & TxtPassword.Text & "'")

If dr.Read Then

user = dr("user") FrmUtama.Show() Me.Close() Else

msgError("Salah kombinasi username dan password") TxtUsername.Focus()

End If End Sub

Private Sub txtUsername_KeyPress(ByVal sender As

System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) If e.KeyChar = Chr(13) Then

TxtPassword.Focus() End If

End Sub

Private Sub txtPassword_KeyPress(ByVal sender As

System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) If e.KeyChar = Chr(13) Then

BtnLogin_Click_1(Nothing, Nothing) End If

End Sub

Private Sub BtnLogin_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLogin.Click

dr = openDR("SELECT * FROM tb_admin WHERE user='" & TxtUsername.Text & "' AND pass='" & TxtPassword.Text & "'")

If dr.Read Then

user = dr("user") FormBeasiswa.Show() Me.Hide()

Else

msgError("Salah kombinasi username dan password") TxtUsername.Focus()

End If End Sub

Private Sub BtnKeluar_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKeluar.Click

Dim PS As String

(2)

If PS = vbYes Then End

ElseIf PS = vbNo Then Me.Show()

End If End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

Label16.Text = Format(Now, "dd / MM / yyyy") Label15.Text = Format(Now, "HH:mm:ss")

End Sub

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

Timer1.Start() End Sub

End Class

Kode Program Form Pilihan Beasiswa :

Public Class FormBeasiswa

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

Label16.Text = Format(Now, "dd / MM / yyyy") Label15.Text = Format(Now, "HH:mm:ss")

End Sub

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

Timer1.Start() End Sub

Private Sub Btn_Input_PPA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Input_PPA.Click

FrmUtama.Show() Me.Hide()

End Sub

Private Sub Btn_Input_BBM_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Input_BBM.Click

FrmUtama2.Show() Me.Hide()

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim PS As String

PS = MessageBox.Show("Anda yakin ingin keluar ?", "EXIT", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

If PS = vbYes Then End

(3)

Me.Show() End If

End Sub

End Class

Kode Program Form Halaman Utama Beasiswa PPA :

Public Class FrmUtama

Private Sub BtnAlternatif_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAlternatif.Click

Dim f As New FrmAlternatif f.ShowDialog()

End Sub

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

sb1.Text = "User: " & user

sb2.Text = Format(Date.Now, "dd MMMM yyyy HH:mm:ss") End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

sb2.Text = Format(Date.Now, "dd MMMM yyyy HH:mm:ss") End Sub

Private Sub BtnRelasi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnRelasi.Click

FrmRelAlternatif.ShowAsChild(Me) End Sub

Private Sub BtnHitung_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnHitung.Click

FrmHitung.ShowAsChild(Me) End Sub

Private Sub BtnKriteria_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKriteria.Click

Dim f As New FrmKriteria f.ShowDialog()

End Sub

Private Sub BtnLapAlternatif_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLapAlternatif.Click

LapAlternatif.ShowAsChild(Me) End Sub

Private Sub BtnLapKriteria_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLapKriteria.Click

LapKriteria.ShowAsChild(Me) End Sub

Private Sub MnPassword_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

(4)

End Sub

Private Sub BtnCrips_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCrips.Click

Dim f As New FrmCrips f.ShowDialog()

End Sub

Private Sub BtnLapRangking_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLapRangking.Click

LapRangking.ShowAsChild(Me)

End Sub

Private Sub BtnLogout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLogout.Click

FormBeasiswa.Show() Me.Hide()

End Sub

Private Sub BtnPassword_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPassword.Click

Dim f As New FrmPassword f.ShowDialog()

End Sub

End Class

Kode Program Form Halaman Utama Beasiswa BBM :

Public Class FrmUtama2

Private Sub BtnLogout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLogout.Click

FormBeasiswa.Show() Me.Hide()

End Sub

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

sb1.Text = "User: " & user

sb2.Text = Format(Date.Now, "dd MMMM yyyy HH:mm:ss") End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

sb2.Text = Format(Date.Now, "dd MMMM yyyy HH:mm:ss") End Sub

Private Sub BtnAlternatif_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAlternatif.Click

(5)

f.ShowDialog() End Sub

Private Sub BtnKriteria_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKriteria.Click

Dim f As New FrmKriteria2 f.ShowDialog()

End Sub

Private Sub BtnCrips_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCrips.Click

Dim f As New FrmCrips2 f.ShowDialog()

End Sub

Private Sub BtnRelasi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnRelasi.Click

Dim f As New FrmRelAlternatif2 f.ShowDialog()

End Sub

Private Sub BtnPassword_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPassword.Click

Dim f As New FrmPassword f.ShowDialog()

End Sub

Private Sub BtnHitung_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnHitung.Click

Dim f As New FrmHitung2 f.ShowDialog()

End Sub

Private Sub BtnLapAlternatif_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLapAlternatif.Click

Dim f As New LapAlternatif2 f.ShowDialog()

End Sub

Private Sub BtnLapKriteria_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLapKriteria.Click

LapKriteria2.ShowAsChild(Me.MdiParent)

End Sub

Private Sub BtnLapRangking_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLapRangking.Click

Lap3.ShowAsChild(Me.MdiParent) End Sub

(6)

Kode Program Form Menu Alternatif PPA :

Public Class FrmAlternatif

Dim editState As Boolean = False

Private Sub isiGrid()

Dgv.DataSource = openDT("SELECT Kode_Alternatif, Nama_Alternatif, Keterangan, No_Rekening, Pekerjaan_OrangTua, No_Hp FROM tb_alternatif WHERE kode_alternatif LIKE @0 OR

nama_alternatif LIKE @0 OR keterangan ORDER BY kode_alternatif", "%" + TxtCari.Text + "%")

tampil() End Sub

Private Sub enbText(ByVal enb As Boolean) TxtKode.Enabled = enb

TxtNama.Enabled = enb

TxtKeterangan.Enabled = enb Txt_Rekening.Enabled = enb Txt_Pekerjaan.Enabled = enb Txt_Hp.Enabled = enb

End Sub

Private Sub enbBtn(ByVal add As Boolean, ByVal edit As Boolean, ByVal save As Boolean, ByVal cancel As Boolean, ByVal delete As Boolean)

BtnTambah.Enabled = add BtnUbah.Enabled = edit BtnSimpan.Enabled = save BtnBatal.Enabled = cancel BtnHapus.Enabled = delete End Sub

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

Dgv.SetDefault() isiGrid()

End Sub Sub tampil()

enbBtn(True, True, False, False, True) enbText(False)

If Dgv.CurrentCell Is Nothing Then Exit Sub With Dgv.Rows(Dgv.CurrentCell.RowIndex)

TxtKode.Text = .Cells("kode_alternatif").Value TxtNama.Text = .Cells("nama_alternatif").Value TxtKeterangan.Text = .Cells("keterangan").Value Txt_Rekening.Text = .Cells("No_Rekening").Value Txt_Pekerjaan.Text =

.Cells("Pekerjaan_OrangTua").Value

Txt_Hp.Text = .Cells("No_Hp").Value End With

(7)

Private Sub txtCari_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)

If e.KeyChar = Chr(13) Then isiGrid()

End If End Sub

Private Sub Dgv_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs)

tampil() End Sub

Private Sub BtnTambah_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnTambah.Click

enbText(True)

TxtKode.Text = "" TxtNama.Text = ""

TxtKeterangan.Text = "" Txt_Rekening.Text = ""

Txt_Pekerjaan.Text = ""

Txt_Hp.Text = ""

enbBtn(False, False, True, True, False) End Sub

Private Sub BtnUbah_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnUbah.Click

editState = True enbText(True)

TxtKode.Enabled = False

enbBtn(False, False, True, True, False) End Sub

Private Sub BtnSimpan_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSimpan.Click

Dim kode_exist As Boolean = openDT("SELECT * FROM

tb_alternatif WHERE kode_alternatif=@0", TxtKode.Text).Rows.Count > 0

Dim f0, f1, f2, f3, f4, f5 As String f0 = TxtKode.Text

f1 = TxtNama.Text

f2 = TxtKeterangan.Text f3 = Txt_Rekening.Text

f4 = Txt_Pekerjaan.Text

f5 = Txt_Hp.Text

If Not editState And kode_exist Then msgError("Kode sudah ada")

ElseIf TxtKode.Text = "" Or TxtNama.Text = "" Then msgError("Field bertanda * tidak boleh kosong") Else

If editState Then

execute("UPDATE tb_alternatif SET nama_alternatif=@0, keterangan=@1, No_Rekening=@2,

Pekerjaan_OrangTua=@3, No_Hp=@4 WHERE kode_alternatif=@5", f1, f2, f3, f4, f5, f0)

(8)

execute("INSERT INTO tb_alternatif

(kode_alternatif, nama_alternatif, keterangan, No_Rekening, Pekerjaan_OrangTua, No_Hp) VALUES (@0, @1, @2, @3, @4, @5)", f0, f1, f2, f3, f4, f5)

execute("INSERT INTO tb_rel_alternatif (kode_kriteria, kode_alternatif, kode_crips) SELECT kode_kriteria, @0, -1 FROM tb_kriteria", f0)

End If

msgInfo("Data tersimpan") isiGrid()

End If

End Sub

Private Sub BtnBatal_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBatal.Click

isiGrid() End Sub

Private Sub BtnHapus_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnHapus.Click

If msgAsk("Hapus data?") = DialogResult.Yes Then execute("DELETE FROM tb_alternatif WHERE kode_alternatif=@0", TxtKode.Text)

execute("DELETE FROM tb_rel_alternatif WHERE kode_alternatif=@0", TxtKode.Text)

msgInfo("Data terhapus") isiGrid()

End If End Sub

Private Sub BtnKeluar_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKeluar.Click

Me.Close() End Sub

Private Sub BtnCari_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCari.Click

isiGrid() End Sub

End Class

Kode Program Form Menu Alternatif BBM :

Public Class FrmAlternatif2

Dim editState As Boolean = False

Private Sub isiGrid()

Dgv.DataSource = openDT("SELECT NIM, Nama_Mahasiswa, Jenjang_Studi, No_Rekening, Pekerjaan_OrangTua, No_Hp FROM tb_alternatif2 WHERE nim LIKE @0 OR nama_mahasiswa LIKE @0 OR jenjang_studi ORDER BY nim", "%" + TxtCari.Text + "%")

(9)

Private Sub enbText(ByVal enb As Boolean) TxtKode.Enabled = enb

TxtNama.Enabled = enb

TxtKeterangan.Enabled = enb Txt_Rekening.Enabled = enb Txt_Pekerjaan.Enabled = enb Txt_Hp.Enabled = enb

End Sub

Private Sub enbBtn(ByVal add As Boolean, ByVal edit As Boolean, ByVal save As Boolean, ByVal cancel As Boolean, ByVal delete As Boolean)

BtnTambah.Enabled = add BtnUbah.Enabled = edit BtnSimpan.Enabled = save BtnBatal.Enabled = cancel BtnHapus.Enabled = delete End Sub

Sub tampil()

enbBtn(True, True, False, False, True) enbText(False)

If Dgv.CurrentCell Is Nothing Then Exit Sub With Dgv.Rows(Dgv.CurrentCell.RowIndex)

TxtKode.Text = .Cells("nim").Value

TxtNama.Text = .Cells("nama_mahasiswa").Value TxtKeterangan.Text = .Cells("jenjang_studi").Value Txt_Rekening.Text = .Cells("No_Rekening").Value

Txt_Pekerjaan.Text =

.Cells("Pekerjaan_OrangTua").Value

Txt_Hp.Text = .Cells("No_Hp").Value End With

editState = False End Sub

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

Dgv.SetDefault() isiGrid()

End Sub

Private Sub Dgv_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs)

tampil() End Sub

Private Sub TxtCari_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)

If e.KeyChar = Chr(13) Then isiGrid()

End If End Sub

Private Sub BtnTambah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnTambah.Click

enbText(True)

TxtKode.Text = "" TxtNama.Text = ""

TxtKeterangan.Text = "" Txt_Rekening.Text = ""

(10)

Txt_Hp.Text = ""

enbBtn(False, False, True, True, False) End Sub

Private Sub BtnUbah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnUbah.Click

editState = True enbText(True)

TxtKode.Enabled = False

enbBtn(False, False, True, True, False) End Sub

Private Sub BtnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSimpan.Click

Dim kode_exist As Boolean = openDT("SELECT * FROM tb_alternatif2 WHERE nim=@0", TxtKode.Text).Rows.Count > 0

Dim f0, f1, f2, f3, f4, f5 As String f0 = TxtKode.Text

f1 = TxtNama.Text

f2 = TxtKeterangan.Text f3 = Txt_Rekening.Text

f4 = Txt_Pekerjaan.Text

f5 = Txt_Hp.Text

If Not editState And kode_exist Then msgError("Kode sudah ada")

ElseIf TxtKode.Text = "" Or TxtNama.Text = "" Then msgError("Field bertanda * tidak boleh kosong") Else

If editState Then

execute("UPDATE tb_alternatif2 SET nama_mahasiswa=@0, jenjang_studi=@1, No_Rekening=@2, Pekerjaan_OrangTua=@3, No_Hp=@4 WHERE nim=@4", f1, f2, f3, f4, f5, f0)

Else

execute("INSERT INTO tb_alternatif2 (nim, nama_mahasiswa, jenjang_studi, No_Rekening, Pekerjaan_OrangTua, No_Hp) VALUES (@0, @1, @2, @3, @4, @5)", f0, f1, f2, f3, f4, f5)

execute("INSERT INTO tb_rel_alternatif2 (kode_kriteria, nim, kode_crips) SELECT kode_kriteria, @0, -1 FROM tb_kriteria", f0)

End If

msgInfo("Data tersimpan") isiGrid()

End If End Sub

Private Sub BtnBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBatal.Click

(11)

Private Sub BtnHapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnHapus.Click

If msgAsk("Hapus data?") = DialogResult.Yes Then

execute("DELETE FROM tb_alternatif2 WHERE nim=@0", TxtKode.Text)

execute("DELETE FROM tb_rel_alternatif2 WHERE nim=@0", TxtKode.Text)

msgInfo("Data terhapus") isiGrid()

End If End Sub

Private Sub BtnKeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKeluar.Click

Me.Close() End Sub

Private Sub BtnCari_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCari.Click

isiGrid() End Sub

End Class

Kode Program Form Menu Crips PPA :

Public Class FrmCrips

Dim editState As Boolean

Private Sub isiGrid()

Dgv.DataSource = openDT("SELECT k.Kode_Kriteria, k.Nama_Kriteria, c.Kode_Crips, c.Nama_Crips, c.Nilai " &

" FROM tb_crips c INNER JOIN tb_kriteria k ON k.kode_kriteria=c.kode_kriteria " &

" WHERE k.nama_kriteria LIKE '%" + TxtCari.Text + "%' OR c.nama_crips LIKE '%" + TxtCari.Text + "%' " &

" ORDER BY k.kode_kriteria, c.kode_crips")

Dgv.Columns("kode_kriteria").Visible = False Dgv.Columns("kode_crips").Visible = False End Sub

Sub tampil()

enbBtn(True, True, True, True, True, True, False, False, True)

enbText(False)

If Dgv.CurrentCell Is Nothing Then Exit Sub

With Dgv.CurrentRow

TxtKriteria.SelectedValue = .Cells("kode_kriteria").Value

TxtKode.Text = .Cells("kode_crips").Value TxtNama.Text = .Cells("nama_crips").Value TxtNilai.Text = .Cells("nilai").Value End With

(12)

Private Sub enbText(ByVal enb As Boolean) TxtKode.Enabled = False

TxtKriteria.Enabled = enb TxtNama.Enabled = enb TxtNilai.Enabled = enb End Sub

Private Sub enbBtn(ByVal First As Boolean, ByVal Prev As

Boolean, ByVal Nxt As Boolean, ByVal Last As Boolean, ByVal add As Boolean, ByVal edit As Boolean, ByVal save As Boolean, ByVal

cancel As Boolean, ByVal del As Boolean) BtnFirst.Enabled = First

BtnPrev.Enabled = Prev BtnNext.Enabled = Nxt BtnLast.Enabled = Last

BtnTambah.Enabled = add BtnUbah.Enabled = edit BtnSimpan.Enabled = save BtnBatal.Enabled = cancel BtnHapus.Enabled = del End Sub

Private Sub awal()

TxtKriteria.setDS(openDT("SELECT kode_kriteria, nama_kriteria AS nama_kriteria FROM tb_kriteria ORDER BY kode_kriteria"))

isiGrid() tampil()

editState = False End Sub

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

Dgv.SetDefault() awal()

End Sub

Private Sub btnTambah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnTambah.Click

TxtKode.Text = "Auto" TxtNama.Text = "" TxtNilai.Text = ""

enbBtn(False, False, False, False, False, False, True, True, False)

enbText(True) End Sub

Private Sub btnBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBatal.Click

awal() End Sub

Private Sub btnKeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKeluar.Click

(13)

Private Sub btnCari_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCari.Click

isiGrid() End Sub

Private Sub txtCari_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtCari.KeyPress

If e.KeyChar = CChar(ChrW(13)) Then isiGrid()

End If End Sub

Private Sub btnUbah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnUbah.Click

editState = True enbText(True)

enbBtn(False, False, False, False, False, False, True, True, False)

TxtKriteria.Enabled = False TxtKode.Enabled = False TxtNama.Focus()

End Sub

Private Sub btnHapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnHapus.Click

If Not Dgv.CurrentCell Is Nothing Then If msgAsk("Hapus Data?") = vbYes Then

execute("DELETE FROM tb_crips WHERE kode_crips=@0", TxtKode.Text)

msgInfo("Data terhapus") awal()

End If End If End Sub

Private Sub BtnFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFirst.Click

Dgv.SelectFirst() tampil()

End Sub

Private Sub BtnPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPrev.Click

Dgv.SelectPrevious() tampil()

End Sub

Private Sub BtnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnNext.Click

Dgv.SelectNext() tampil()

End Sub

Private Sub BtnLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLast.Click

Dgv.SelectLast() tampil()

(14)

Private Sub BtnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSimpan.Click

Dim kode_exist As Boolean = openDT("SELECT * FROM tb_crips WHERE kode_crips=@0", TxtKode.Text).Rows.Count > 0

If Not editState And kode_exist Then msgError("Kode sudah ada")

ElseIf TxtKriteria.Text = "" Or TxtNama.Text = "" Or TxtNilai.Text = "" Then

msgError("Field bertanda * tidak boleh kosong") Else

Dim f0, f1, f2 As String f0 = TxtKode.Text

f1 = TxtNama.Text

f2 = TxtKriteria.SelectedValue

Dim f3 As Single = Val(TxtNilai.Text)

If editState Then

execute("UPDATE tb_crips SET nama_crips=@0, kode_kriteria=@1, nilai=@2 WHERE kode_crips=@3", f1, f2, f3, f0)

Else

execute("INSERT INTO tb_crips (kode_crips, nama_crips, kode_kriteria, nilai) VALUES (@0, @1, @2, @3)", f0, f1, f2, f3)

End If

msgInfo("Data tersimpan") awal()

End If End Sub

Private Sub dgv_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Dgv.SelectionChanged

tampil() End Sub

End Class

Kode Program Form Menu Crips BBM :

Public Class FrmCrips2

Dim editState As Boolean

Private Sub isiGrid()

Dgv.DataSource = openDT("SELECT k.Kode_Kriteria, k.Nama_Kriteria, c.Kode_Crips, c.Nama_Crips, c.Nilai " &

" FROM tb_crips2 c INNER JOIN tb_kriteria2 k ON k.kode_kriteria=c.kode_kriteria " &

" WHERE k.nama_kriteria LIKE '%" + TxtCari.Text + "%' OR c.nama_crips LIKE '%" + TxtCari.Text + "%' " &

(15)

Dgv.Columns("kode_kriteria").Visible = False Dgv.Columns("kode_crips").Visible = False End Sub

Sub tampil()

enbBtn(True, True, True, True, True, True, False, False, True)

enbText(False)

If Dgv.CurrentCell Is Nothing Then Exit Sub

With Dgv.CurrentRow

TxtKriteria.SelectedValue = .Cells("kode_kriteria").Value

TxtKode.Text = .Cells("kode_crips").Value TxtNama.Text = .Cells("nama_crips").Value TxtNilai.Text = .Cells("nilai").Value End With

End Sub

Private Sub enbText(ByVal enb As Boolean) TxtKode.Enabled = False

TxtKriteria.Enabled = enb TxtNama.Enabled = enb TxtNilai.Enabled = enb End Sub

Private Sub enbBtn(ByVal First As Boolean, ByVal Prev As

Boolean, ByVal Nxt As Boolean, ByVal Last As Boolean, ByVal add As Boolean, ByVal edit As Boolean, ByVal save As Boolean, ByVal

cancel As Boolean, ByVal del As Boolean) BtnFirst.Enabled = First

BtnPrev.Enabled = Prev BtnNext.Enabled = Nxt BtnLast.Enabled = Last

BtnTambah.Enabled = add BtnUbah.Enabled = edit BtnSimpan.Enabled = save BtnBatal.Enabled = cancel BtnHapus.Enabled = del End Sub

Private Sub awal()

TxtKriteria.setDS(openDT("SELECT kode_kriteria, nama_kriteria AS nama_kriteria FROM tb_kriteria2 ORDER BY kode_kriteria"))

isiGrid() tampil()

editState = False End Sub

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

Dgv.SetDefault() awal()

(16)

Private Sub BtnTambah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnTambah.Click

TxtKode.Text = "Auto" TxtNama.Text = "" TxtNilai.Text = ""

enbBtn(False, False, False, False, False, False, True, True, False)

enbText(True) End Sub

Private Sub BtnBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBatal.Click

awal() End Sub

Private Sub BtnKeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKeluar.Click

Me.Close() End Sub

Private Sub BtnCari_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCari.Click

isiGrid() End Sub

Private Sub txtCari_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtCari.KeyPress

If e.KeyChar = CChar(ChrW(13)) Then isiGrid()

End If End Sub

Private Sub BtnUbah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnUbah.Click

editState = True enbText(True)

enbBtn(False, False, False, False, False, False, True, True, False)

TxtKriteria.Enabled = False TxtKode.Enabled = False TxtNama.Focus()

End Sub

Private Sub BtnHapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnHapus.Click

If Not Dgv.CurrentCell Is Nothing Then If msgAsk("Hapus Data?") = vbYes Then

execute("DELETE FROM tb_crips2 WHERE kode_crips=@0", TxtKode.Text)

msgInfo("Data terhapus") awal()

End If End If End Sub

Private Sub BtnFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFirst.Click

(17)

End Sub

Private Sub BtnPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPrev.Click

Dgv.SelectPrevious() tampil()

End Sub

Private Sub BtnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnNext.Click

Dgv.SelectNext() tampil()

End Sub

Private Sub BtnLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLast.Click

Dgv.SelectLast() tampil()

End Sub

Private Sub BtnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSimpan.Click

Dim kode_exist As Boolean = openDT("SELECT * FROM tb_crips2 WHERE kode_crips=@0", TxtKode.Text).Rows.Count > 0

If Not editState And kode_exist Then msgError("Kode sudah ada")

ElseIf TxtKriteria.Text = "" Or TxtNama.Text = "" Or TxtNilai.Text = "" Then

msgError("Field bertanda * tidak boleh kosong") Else

Dim f0, f1, f2 As String f0 = TxtKode.Text

f1 = TxtNama.Text

f2 = TxtKriteria.SelectedValue

Dim f3 As Single = Val(TxtNilai.Text)

If editState Then

execute("UPDATE tb_crips2 SET nama_crips=@0, kode_kriteria=@1, nilai=@2 WHERE kode_crips=@3", f1, f2, f3, f0)

Else

execute("INSERT INTO tb_crips2 (kode_crips, nama_crips, kode_kriteria, nilai) VALUES (@0, @1, @2, @3)", f0, f1, f2, f3)

End If

msgInfo("Data tersimpan") awal()

End If

End Sub

Private Sub dgv_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Dgv.SelectionChanged

(18)

Kode Program Form Hitung PPA :

Public Class FrmHitung

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

Dim dt As DataTable = openDT("SELECT * FROM

tb_rel_alternatif WHERE kode_crips NOT IN (SELECT kode_crips FROM tb_crips)")

If dt.Rows.Count > 0 Then

msgError("Anda belum mengatur nilai untuk setiap alternatif, silahkan atur di menu Nilai Bobot")

BtnCetak.Enabled = False Else

Dgv1.AllowUserToAddRows = False Dgv1.AllowUserToDeleteRows = False Dgv1.ReadOnly = True

Dgv1.AutoGenerateColumns = False awal()

End If End Sub

Sub awal()

Dgv1.Columns.Clear() Dgv1.Rows.Clear()

Dgv1.Columns.Add("kode_alternatif", "Kode") Dgv1.Columns("kode_alternatif").ReadOnly = True Dgv1.Columns.Add("nama_alternatif", "Nama") Dgv1.Columns("nama_alternatif").ReadOnly = True

dr = openDR("SELECT * FROM tb_alternatif ORDER BY kode_alternatif")

While dr.Read()

Dgv1.Rows.Add(dr(0), dr(1)) End While

dr = openDR("SELECT kode_kriteria, atribut FROM tb_kriteria ORDER BY kode_kriteria")

While dr.Read()

Dgv1.Columns.Add(dr(0), dr(0))

Dgv1.Columns(dr(0).ToString()).ToolTipText = dr(1).ToString()

End While

For a = 0 To Dgv1.Rows.Count - 1

dr = openDR("SELECT c.nama_crips FROM tb_rel_alternatif r " &

" LEFT JOIN tb_crips c ON c.kode_crips = r.kode_crips " &

" WHERE kode_alternatif='" &

Dgv1.Rows(a).Cells(0).Value & "' ORDER BY r.kode_kriteria") Dim b As Integer = 2

While dr.Read

(19)

b = b + 1 End While Next

Dgv1.AutoSizeColumnsMode =

DataGridViewAutoSizeColumnsMode.AllCells BtnCetak.Enabled = False

End Sub

Private Sub btnKeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKeluar.Click

Me.Close() End Sub

Function get_col_max(ByVal dgv As DataGridView, ByVal col_name As String) As Double

Dim max As Double = 0

If dgv.Rows.Count > 0 Then max = Val(dgv.Rows(0).Cells(col_name).Value)

For Each row As DataGridViewRow In dgv.Rows If Val(row.Cells(col_name).Value) > max Then

max = Val(row.Cells(col_name).Value) End If

Next

get_col_max = max End Function

Function get_col_min(ByVal dgv As DataGridView, ByVal col_name As String) As Double

Dim min As Double = 0

If dgv.Rows.Count > 0 Then min = Val(dgv.Rows(0).Cells(col_name).Value)

For Each row As DataGridViewRow In dgv.Rows If Val(row.Cells(col_name).Value) < min Then

min = Val(row.Cells(col_name).Value) End If

Next

get_col_min = min End Function

Private Sub btnCetak_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCetak.Click

LapRangking.ShowAsChild(Me.MdiParent) End Sub

Private Sub BtnHitung_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnHitung.Click

Dim a, b As Integer

awal()

Dgv1.copyTo(Dgv2)

For a = 0 To Dgv2.Rows.Count - 1

dr = openDR("SELECT c.nilai FROM tb_rel_alternatif r " &

" LEFT JOIN tb_crips c ON c.kode_crips = r.kode_crips " &

" WHERE kode_alternatif='" &

(20)

b = 2

While dr.Read

Dgv2.Rows(a).Cells(b).Value = dr(0) b = b + 1

End While Next

Dgv2.copyTo(Dgv3)

For Each row As DataGridViewRow In Dgv2.Rows For b = 2 To Dgv2.Columns.Count - 1

Dim v = row.Cells(b).Value

If Dgv2.Columns(b).ToolTipText = "benefit" Then Dgv3.Rows(row.Index).Cells(b).Value = v / get_col_max(Dgv2, Dgv2.Columns(b).Name)

Else

Dgv3.Rows(row.Index).Cells(b).Value = get_col_min(Dgv2, Dgv2.Columns(b).Name) / v

End If Next

Next

dr = openDR("SELECT kode_kriteria, bobot FROM tb_kriteria ORDER BY kode_kriteria")

While dr.Read()

Dgv3.Columns(dr(0).ToString()).ToolTipText = dr(1).ToString()

End While

Dgv3.copyTo(Dgv4)

For Each row As DataGridViewRow In Dgv3.Rows For b = 2 To Dgv3.Columns.Count - 1

Dim v = row.Cells(b).Value

Dgv4.Rows(row.Index).Cells(b).Value = v * Val(Dgv3.Columns(b).ToolTipText)

Next Next

Dgv4.Columns.Add("total", "Total")

For Each row As DataGridViewRow In Dgv4.Rows For b = 2 To Dgv2.Columns.Count - 1

row.Cells("total").Value = row.Cells("total").Value + row.Cells(b).Value

Next Next

Dgv4.copyTo(Dgv5)

Dgv5.Sort(Dgv5.Columns("total"),

System.ComponentModel.ListSortDirection.Descending) For Each row As DataGridViewRow In Dgv5.Rows

execute("UPDATE tb_alternatif SET total=@0, rank=@1 WHERE kode_alternatif=@2", row.Cells("total").Value, row.Index + 1, row.Cells("kode_alternatif").Value)

Next

TabControl1.SelectedTab = TabRangking BtnCetak.Enabled = True

End Sub

(21)

Kode Program Form Menu Hitung BBM :

Public Class FrmHitung2

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

Dim dt As DataTable = openDT("SELECT * FROM

tb_rel_alternatif WHERE kode_crips NOT IN (SELECT kode_crips FROM tb_crips)")

If dt.Rows.Count > 0 Then

msgError("Anda belum mengatur nilai untuk setiap alternatif, silahkan atur di menu Nilai Bobot")

BtnCetak.Enabled = False Else

Dgv1.AllowUserToAddRows = False Dgv1.AllowUserToDeleteRows = False Dgv1.ReadOnly = True

Dgv1.AutoGenerateColumns = False awal()

End If End Sub Sub awal()

Dgv1.Columns.Clear() Dgv1.Rows.Clear()

Dgv1.Columns.Add("kode_alternatif", "Kode") Dgv1.Columns("kode_alternatif").ReadOnly = True Dgv1.Columns.Add("nama_alternatif", "Nama") Dgv1.Columns("nama_alternatif").ReadOnly = True

dr = openDR("SELECT * FROM tb_alternatif ORDER BY kode_alternatif")

While dr.Read()

Dgv1.Rows.Add(dr(0), dr(1)) End While

dr = openDR("SELECT kode_kriteria, atribut FROM tb_kriteria ORDER BY kode_kriteria")

While dr.Read()

Dgv1.Columns.Add(dr(0), dr(0))

Dgv1.Columns(dr(0).ToString()).ToolTipText = dr(1).ToString()

End While

For a = 0 To Dgv1.Rows.Count - 1

dr = openDR("SELECT c.nama_crips FROM tb_rel_alternatif r " &

" LEFT JOIN tb_crips c ON c.kode_crips = r.kode_crips " &

" WHERE kode_alternatif='" &

Dgv1.Rows(a).Cells(0).Value & "' ORDER BY r.kode_kriteria") Dim b As Integer = 2

While dr.Read

Dgv1.Rows(a).Cells(b).Value = dr(0) b = b + 1

(22)

Next

Dgv1.AutoSizeColumnsMode =

DataGridViewAutoSizeColumnsMode.AllCells BtnCetak.Enabled = False

End Sub

Function get_col_max(ByVal dgv As DataGridView, ByVal col_name As String) As Double

Dim max As Double = 0

If dgv.Rows.Count > 0 Then max = Val(dgv.Rows(0).Cells(col_name).Value)

For Each row As DataGridViewRow In dgv.Rows If Val(row.Cells(col_name).Value) > max Then

max = Val(row.Cells(col_name).Value) End If

Next

get_col_max = max End Function

Function get_col_min(ByVal dgv As DataGridView, ByVal col_name As String) As Double

Dim min As Double = 0

If dgv.Rows.Count > 0 Then min = Val(dgv.Rows(0).Cells(col_name).Value)

For Each row As DataGridViewRow In dgv.Rows If Val(row.Cells(col_name).Value) < min Then

min = Val(row.Cells(col_name).Value) End If

Next

get_col_min = min End Function

Private Sub BtnHitung_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnHitung.Click

Dim a, b As Integer

awal()

Dgv1.copyTo(Dgv2)

For a = 0 To Dgv2.Rows.Count - 1

dr = openDR("SELECT c.nilai FROM tb_rel_alternatif r " &

" LEFT JOIN tb_crips c ON c.kode_crips = r.kode_crips " &

" WHERE kode_alternatif ='" &

Dgv2.Rows(a).Cells(0).Value & "' ORDER BY r.kode_kriteria") b = 2

While dr.Read

Dgv2.Rows(a).Cells(b).Value = dr(0) b = b + 1

End While Next

Dgv2.copyTo(Dgv3)

For Each row As DataGridViewRow In Dgv2.Rows For b = 2 To Dgv2.Columns.Count - 1

Dim v = row.Cells(b).Value

If Dgv2.Columns(b).ToolTipText = "benefit" Then Dgv3.Rows(row.Index).Cells(b).Value = v / get_col_max(Dgv2, Dgv2.Columns(b).Name)

(23)

Dgv3.Rows(row.Index).Cells(b).Value = get_col_min(Dgv2, Dgv2.Columns(b).Name) / v

End If Next

Next

dr = openDR("SELECT kode_kriteria, bobot FROM tb_kriteria ORDER BY kode_kriteria")

While dr.Read()

Dgv3.Columns(dr(0).ToString()).ToolTipText = dr(1).ToString()

End While

Dgv3.copyTo(Dgv4)

For Each row As DataGridViewRow In Dgv3.Rows For b = 2 To Dgv3.Columns.Count - 1

Dim v = row.Cells(b).Value

Dgv4.Rows(row.Index).Cells(b).Value = v * Val(Dgv3.Columns(b).ToolTipText)

Next Next

Dgv4.Columns.Add("total", "Total")

For Each row As DataGridViewRow In Dgv4.Rows For b = 2 To Dgv2.Columns.Count - 1

row.Cells("total").Value = row.Cells("total").Value + row.Cells(b).Value

Next Next

Dgv4.copyTo(Dgv5)

Dgv5.Sort(Dgv5.Columns("total"),

System.ComponentModel.ListSortDirection.Descending) For Each row As DataGridViewRow In Dgv5.Rows

execute("UPDATE tb_alternatif SET total=@0, rank=@1 WHERE kode_alternatif=@2", row.Cells("total").Value, row.Index + 1, row.Cells("kode_alternatif").Value)

Next

TabControl1.SelectedTab = TabRangking BtnCetak.Enabled = True

End Sub

Private Sub BtnCetak_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCetak.Click

LapRangking.ShowAsChild(Me.MdiParent) End Sub

Private Sub BtnKeluar_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKeluar.Click

Me.Close() End Sub

End Class

Kode Program Form Menu Kriteria PPA :

Public Class FrmKriteria

(24)

Private Sub isiGrid()

Dgv.DataSource = openDT("SELECT Kode_Kriteria, Nama_Kriteria, Atribut, Bobot FROM tb_kriteria k " &

"WHERE kode_kriteria LIKE @0 OR nama_kriteria LIKE @0 OR atribut LIKE @0 ORDER BY kode_kriteria", "%" + TxtCari.Text + "%%" + TxtCari.Text + "%")

tampil() End Sub

Sub tampil()

enbBtn(True, True, False, False, True) enbText(False)

If Dgv.CurrentCell Is Nothing Then Exit Sub With Dgv.CurrentRow

TxtKode.Text = .Cells("kode_kriteria").Value TxtNama.Text = .Cells("nama_kriteria").Value If .Cells("atribut").Value = "benefit" Then

RbBenefit.Checked = True Else

RbCost.Checked = True End If

TxtBobot.Text = .Cells("bobot").Value End With

editState = False

End Sub

Private Sub enbText(ByVal enb As Boolean) TxtKode.Enabled = enb

TxtNama.Enabled = enb RbBenefit.Enabled = enb RbCost.Enabled = enb TxtBobot.Enabled = enb End Sub

Private Sub enbBtn(ByVal add As Boolean, ByVal edit As Boolean, ByVal save As Boolean, ByVal cancel As Boolean, ByVal delete As Boolean)

BtnTambah.Enabled = add BtnUbah.Enabled = edit BtnSimpan.Enabled = save BtnBatal.Enabled = cancel BtnHapus.Enabled = delete End Sub

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

Dgv.SetDefault() isiGrid()

End Sub

Private Sub btnTambah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnTambah.Click

(25)

TxtKode.Text = "" TxtNama.Text = ""

RbBenefit.Checked = True TxtBobot.Text = ""

enbBtn(False, False, True, True, False) End Sub

Private Sub btnBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBatal.Click

isiGrid() End Sub

Private Sub btnKeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKeluar.Click

Me.Close() End Sub

Private Sub btnCari_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCari.Click

isiGrid() End Sub

Private Sub txtCari_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtCari.KeyPress

If e.KeyChar = Chr(13) Then isiGrid()

End If End Sub

Private Sub btnUbah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnUbah.Click

editState = True enbText(True)

TxtKode.Enabled = False

enbBtn(False, False, True, True, False)

End Sub

Private Sub btnHapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnHapus.Click

If msgAsk("Hapus data?") = DialogResult.Yes Then execute("DELETE FROM tb_kriteria WHERE

kode_kriteria=@0", TxtKode.Text)

execute("DELETE FROM tb_rel_alternatif WHERE kode_kriteria=@0", TxtKode.Text)

msgInfo("Data terhapus") isiGrid()

End If End Sub

Private Sub BtnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSimpan.Click

Dim kode_exist As Boolean = openDT("SELECT * FROM

tb_kriteria WHERE kode_kriteria=@0", TxtKode.Text).Rows.Count > 0

(26)

ElseIf TxtNama.Text = "" Or TxtBobot.Text = "" Then msgError("Field bertanda * tidak boleh kosong") Else

Dim f0, f1, f2 As String f0 = TxtKode.Text

f1 = TxtNama.Text

If RbBenefit.Checked Then f2 = "benefit"

Else

f2 = "cost" End If

Dim f3 As Single = Val(TxtBobot.Text)

If editState Then

execute("UPDATE tb_kriteria SET nama_kriteria=@0, atribut=@1, bobot=@2 WHERE kode_kriteria=@3", f1, f2, f3, f0)

Else

execute("INSERT INTO tb_kriteria (kode_kriteria, nama_kriteria, atribut, bobot) VALUES (@0, @1, @2, @3)", f0, f1, f2, f3)

execute("INSERT INTO tb_rel_alternatif (kode_alternatif, kode_kriteria, kode_crips) SELECT kode_alternatif, @0, '-1' FROM tb_alternatif", f0)

End If

msgInfo("Data tersimpan") isiGrid()

End If End Sub

Private Sub Dgv_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Dgv.SelectionChanged

tampil() End Sub End Class

Kode Program Form Menu Kriteria BBM :

Public Class FrmKriteria2

Dim editState As Boolean = False

Private Sub isiGrid()

Dgv.DataSource = openDT("SELECT Kode_Kriteria, Nama_Kriteria, Atribut, Bobot FROM tb_kriteria2 k " &

"WHERE kode_kriteria LIKE @0 OR nama_kriteria LIKE @0 OR atribut LIKE @0 ORDER BY kode_kriteria", "%" + TxtCari.Text + "%%" + TxtCari.Text + "%")

tampil() End Sub Sub tampil()

enbBtn(True, True, False, False, True) enbText(False)

(27)

TxtKode.Text = .Cells("kode_kriteria").Value TxtNama.Text = .Cells("nama_kriteria").Value If .Cells("atribut").Value = "benefit" Then

RbBenefit.Checked = True Else

RbCost.Checked = True End If

TxtBobot.Text = .Cells("bobot").Value End With

editState = False

End Sub

Private Sub enbText(ByVal enb As Boolean) TxtKode.Enabled = enb

TxtNama.Enabled = enb RbBenefit.Enabled = enb RbCost.Enabled = enb TxtBobot.Enabled = enb End Sub

Private Sub enbBtn(ByVal add As Boolean, ByVal edit As Boolean, ByVal save As Boolean, ByVal cancel As Boolean, ByVal delete As Boolean)

BtnTambah.Enabled = add BtnUbah.Enabled = edit BtnSimpan.Enabled = save BtnBatal.Enabled = cancel BtnHapus.Enabled = delete End Sub

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

Dgv.SetDefault() isiGrid()

End Sub

Private Sub BtnTambah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnTambah.Click

enbText(True)

TxtKode.Text = "" TxtNama.Text = ""

RbBenefit.Checked = True TxtBobot.Text = ""

enbBtn(False, False, True, True, False) End Sub

Private Sub BtnUbah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnUbah.Click

editState = True enbText(True)

TxtKode.Enabled = False

enbBtn(False, False, True, True, False) End Sub

(28)

Dim kode_exist As Boolean = openDT("SELECT * FROM

tb_kriteria2 WHERE kode_kriteria=@0", TxtKode.Text).Rows.Count > 0

If Not editState And kode_exist Then msgError("Kode sudah ada")

ElseIf TxtNama.Text = "" Or TxtBobot.Text = "" Then msgError("Field bertanda * tidak boleh kosong") Else

Dim f0, f1, f2 As String f0 = TxtKode.Text

f1 = TxtNama.Text

If RbBenefit.Checked Then f2 = "benefit"

Else

f2 = "cost" End If

Dim f3 As Single = Val(TxtBobot.Text)

If editState Then

execute("UPDATE tb_kriteria2 SET nama_kriteria=@0, atribut=@1, bobot=@2 WHERE kode_kriteria=@3", f1, f2, f3, f0)

Else

execute("INSERT INTO tb_kriteria2 (kode_kriteria, nama_kriteria, atribut, bobot) VALUES (@0, @1, @2, @3)", f0, f1, f2, f3)

execute("INSERT INTO tb_rel_alternatif2 (nim, kode_kriteria, kode_crips) SELECT nim, @0, '-1' FROM

tb_alternatif2", f0) End If

msgInfo("Data tersimpan") isiGrid()

End If End Sub

Private Sub BtnBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBatal.Click

isiGrid() End Sub

Private Sub BtnHapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnHapus.Click

If msgAsk("Hapus data?") = DialogResult.Yes Then execute("DELETE FROM tb_kriteria2 WHERE kode_kriteria=@0", TxtKode.Text)

execute("DELETE FROM tb_rel_alternatif2 WHERE kode_kriteria=@0", TxtKode.Text)

msgInfo("Data terhapus") isiGrid()

End If End Sub

Private Sub BtnKeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKeluar.Click

Me.Close() End Sub

Private Sub BtnCari_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCari.Click

(29)

End Sub

Private Sub txtCari_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtCari.KeyPress

If e.KeyChar = Chr(13) Then isiGrid()

End If End Sub End Class

Kode Program Form Menu Ubah Password :

Public Class FrmPassword

Private Sub btnKeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnKeluar.Click

Me.Close() End Sub

Private Sub BtnUbah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnUbah.Click

dr = openDR("SELECT * FROM tb_admin WHERE user='" & user & "' AND pass='" & TxtPass1.Text & "'")

If Not dr.Read Then

msgError("Password lama salah!")

ElseIf TxtPass2.Text <> TxtPass3.Text Then

msgError("Password baru dan konfirmasi passwrod baru tidak sama")

ElseIf TxtPass2.Text.Length < 4 Then

msgError("Password minimal 4 karakter") Else

execute("UPDATE tb_admin SET pass='" & TxtPass2.Text & "' WHERE user='" & user & "'")

msgInfo("Password berhasil diubah!") Me.Close()

End If End Sub

End Class

Kode Program Form Menu Relasi Alternatif:

Public Class FrmRelAlternatif Private Sub isiGrid()

Dgv.Columns.Clear()

Dgv.Columns.Add("kd_peserta", "Kode") Dgv.Columns(0).ReadOnly = True

Dgv.Columns.Add("nama_peserta", "Nama") Dgv.Columns(1).ReadOnly = True

dr = openDR("SELECT kode_alternatif, nama_alternatif FROM tb_alternatif WHERE kode_alternatif LIKE '%" & TxtCari.Text & "%' OR nama_alternatif LIKE '%" & TxtCari.Text & "%' ORDER BY

(30)

While dr.Read()

Dgv.Rows.Add(dr(0), dr(1)) End While

Dim kriteria As DataTable = openDT("SELECT kode_kriteria, nama_kriteria FROM tb_kriteria ORDER BY kode_kriteria")

For Each row As DataRow In kriteria.Rows

Dim col As New DataGridViewComboBoxColumn() col.Name = row(0).ToString()

col.HeaderText = row(1).ToString()

col.DataSource = openDT("SELECT kode_crips, nama_crips FROM tb_crips WHERE kode_kriteria=@0", row(0))

col.ValueMember = "kode_crips" col.DisplayMember = "nama_crips" Dgv.Columns.Add(col)

Next

For Each row As DataGridViewRow In Dgv.Rows

dr = openDR("SELECT kode_crips, kode_kriteria FROM tb_rel_alternatif r WHERE kode_alternatif=@0 ORDER BY

r.kode_kriteria", row.Cells(0).Value) Dim b As Integer = 2 While dr.Read

Dim cel As New DataGridViewComboBoxCell() cel = row.Cells(dr("kode_kriteria")) setComboValue(cel, dr(0))

b = b + 1 End While Next

Dgv.AutoSizeColumnsMode =

DataGridViewAutoSizeColumnsMode.AllCells

End Sub

Sub setComboValue(ByRef cell As DataGridViewComboBoxCell, ByVal newValue As Object)

Dim dt As DataTable = cell.DataSource For Each item As DataRow In dt.Rows

If newValue = item(0) Then cell.Value = newValue Return

End If Next

End Sub

Private Sub awal()

Dgv.AllowUserToAddRows = False Dgv.AllowUserToDeleteRows = False isiGrid()

End Sub

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

awal() End Sub

Private Sub btnKeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKeluar.Click

(31)

End Sub

Private Sub btnCari_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCari.Click

isiGrid() End Sub

Private Sub txtCari_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtCari.KeyPress

If e.KeyChar = CChar(ChrW(13)) Then isiGrid()

End If End Sub

Private Sub btnUbah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnUbah.Click

Dim b As Integer

For Each row As DataGridViewRow In Dgv.Rows For b = 2 To Dgv.Columns.Count - 1

execute("UPDATE tb_rel_alternatif SET

kode_crips=@0 WHERE kode_alternatif=@1 AND kode_kriteria=@2", row.Cells(b).Value, row.Cells(0).Value, Dgv.Columns(b).Name)

Next Next

msgInfo("Data tersimpan") awal()

End Sub End Class

Kode Program Form Laporan Alternatif:

Public Class LapAlternatif Public sql As String = ""

Private Sub CrystalReportViewer1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

CrystalReportViewer1.Load

If sql = "" Then sql = "SELECT * FROM tb_alternatif ORDER BY kode_alternatif"

Me.RptAlternatif1.SetDataSource(openDT(sql)) CrystalReportViewer1.RefreshReport()

End Sub

End Class

Kode Program Form Laporan Kriteria :

Public Class LapKriteria Public sql As String = ""

Private Sub CrystalReportViewer1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

(32)

If sql = "" Then sql = "SELECT * FROM tb_kriteria k INNER JOIN tb_crips c ON c.kode_kriteria=k.kode_kriteria ORDER BY

k.kode_kriteria, kode_crips"

Rpt.SetDataSource(openDT(sql))

CrystalReportViewer1.RefreshReport() End Sub

End Class

Kode Program Form Laporan Rangking :

Public Class LapRangking Public sql As String = ""

Private Sub CrystalReportViewer1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

CrystalReportViewer1.Load

If sql = "" Then sql = "SELECT * FROM tb_alternatif ORDER BY Total DESC"

Me.RptRangking1.SetDataSource(openDT(sql)) CrystalReportViewer1.RefreshReport()

End Sub

End Class

Kode Program Modulo Mysql :

Imports MySql.Data.MySqlClient Imports vb = Microsoft.VisualBasic Imports System.Globalization

Module ModMySQL

Private conn As New MySqlConnection Private cmd As MySqlCommand

Private da As MySqlDataAdapter Private ds As New DataSet Public dr As MySqlDataReader Public user, level As String

Private Sub connect() Try

If conn.State = ConnectionState.Open Then Exit Sub conn = New

MySqlConnection("SERVER=localhost;UID=root;PASSWORD=;DATABASE=db_s pk_saw")

conn.Open()

Application.CurrentCulture = New CultureInfo("en-US") Catch ex As Exception

msgError("ERROR: " & ex.Message) End Try

(33)

Public Function getConnection() As MySqlConnection connect()

Return conn End Function

Public Function openDT(ByVal sql As String, ByVal ParamArray parameters() As Object) As DataTable

Try

closeDR()

ds.Tables.Clear()

cmd = New MySqlCommand(sql, getConnection()) SetParameter(cmd, parameters)

da = New MySqlDataAdapter(cmd) da.Fill(ds)

Return ds.Tables(0) Catch ex As Exception

msgError("ERROR: " & ex.Message & vbCrLf & sql) Return Nothing

End Try End Function

Public Function openDR(ByVal sql As String, ByVal ParamArray parameters() As Object) As MySqlDataReader

Try

closeDR()

cmd = New MySqlCommand(sql, getConnection()) SetParameter(cmd, parameters)

Return cmd.ExecuteReader() Catch ex As Exception

msgError("ERROR: " & ex.Message & vbCrLf & sql) Return Nothing

End Try End Function

Private Sub closeDR() Try

dr.Close()

Catch ex As Exception

End Try End Sub

Public Sub execute(ByVal sql As String, ByVal ParamArray parameters() As Object)

Try

closeDR()

cmd = New MySqlCommand(sql, getConnection()) SetParameter(cmd, parameters)

cmd.ExecuteNonQuery() Catch ex As Exception

msgError("ERROR: " & ex.Message & vbCrLf & sql) End Try

End Sub

Private Sub SetParameter(ByVal cmd As MySqlCommand, ByVal ParamArray parameters() As Object)

(34)

Dim parameterName As String = "@" & Trim(Str(a)) Dim value As Object = parameters(a)

cmd.Parameters.AddWithValue(parameterName, value) Next

End Sub

Public Function sRight(ByVal str As String, ByVal Length As Integer) As String

Return vb.Right(str, Length) End Function

Public Sub msgError(ByVal msg As String)

MsgBox(msg, vbExclamation + MsgBoxStyle.OkOnly, "Error") End Sub

Public Sub msgInfo(ByVal msg As String)

MsgBox(msg, vbInformation + MsgBoxStyle.OkOnly, "Informasi")

End Sub

Public Function msgAsk(ByVal msg As String) As MsgBoxResult Return MsgBox(msg, vbYesNo + vbQuestion, "Konfirmasi") End Function

End Module

Kode Program Modulo Mysql Extension :

Imports MySql.Data.MySqlClient

Imports System.Runtime.CompilerServices

Module ModMySQLExtension '===== DATABASE ===== <Extension()>

Public Sub Buka(ByVal dataReader As OleDb.OleDbDataReader, ByVal sql As String, ByVal ParamArray parameters() As String)

'MsgBox("")

'dataReader = openDR(sql, parameters) 'msgAsk("")

End Sub

'===== FORM ===== <Extension()>

Public Sub ShowAsChild(ByVal frm As System.Windows.Forms.Form, ByVal parent As System.Windows.Forms.Form)

frm.WindowState = FormWindowState.Maximized frm.MdiParent = parent

frm.Show() End Sub

'===== DataGridView ===== <Extension()>

Public Sub SelectFirst(ByVal Dgv As DataGridView) If Not Dgv.CurrentCell Is Nothing Then

Dgv.CurrentCell =

(35)

End If End Sub

<Extension()>

Public Sub SelectNext(ByVal Dgv As DataGridView) If Not Dgv.CurrentCell Is Nothing And

Dgv.CurrentCell.RowIndex + 1 < Dgv.Rows.Count Then

Dgv.CurrentCell = Dgv.Rows(Dgv.CurrentCell.RowIndex + 1).Cells(Dgv.CurrentCell.ColumnIndex)

End If End Sub

<Extension()>

Public Sub SelectPrevious(ByVal Dgv As DataGridView) If Not Dgv.CurrentCell Is Nothing And

Dgv.CurrentCell.RowIndex > 0 Then

Dgv.CurrentCell = Dgv.Rows(Dgv.CurrentCell.RowIndex -1).Cells(Dgv.CurrentCell.ColumnIndex)

End If End Sub

<Extension()>

Public Sub SelectLast(ByVal Dgv As DataGridView) If Not Dgv.CurrentCell Is Nothing Then

Dgv.CurrentCell = Dgv.Rows(Dgv.Rows.Count -1).Cells(Dgv.CurrentCell.ColumnIndex)

End If End Sub

<Extension()>

Public Sub SetDefault(ByVal Dgv As DataGridView) Dgv.ReadOnly = True

Dgv.AutoSizeColumnsMode =

DataGridViewAutoSizeColumnsMode.AllCells Dgv.RowHeadersWidthSizeMode =

DataGridViewRowHeadersWidthSizeMode.AutoSizeToDisplayedHeaders Dgv.AllowUserToAddRows = False

End Sub

<Extension()>

Public Sub copyTo(ByVal dgvFrom As DataGridView, ByVal dgvTo As DataGridView)

dgvTo.AutoGenerateColumns = dgvFrom.AutoGenerateColumns dgvTo.AllowUserToAddRows = dgvFrom.AllowUserToAddRows dgvTo.ReadOnly = dgvFrom.ReadOnly

dgvTo.AutoSizeColumnsMode = dgvFrom.AutoSizeColumnsMode dgvTo.RowHeadersWidthSizeMode =

DataGridViewRowHeadersWidthSizeMode.AutoSizeToDisplayedHeaders dgvTo.Columns.Clear()

For Each c As DataGridViewColumn In dgvFrom.Columns dgvTo.Columns.Add(c.Name, c.HeaderText)

dgvTo.Columns(c.Name).DefaultCellStyle = c.DefaultCellStyle

dgvTo.Columns(c.Name).ToolTipText = c.ToolTipText Next

(36)

For a = 0 To dgvFrom.Rows.Count - 1 dgvTo.Rows.Add(1)

For b As Integer = 0 To dgvFrom.Columns.Count - 1 dgvTo.Rows(a).Cells(b).Value =

dgvFrom.Rows(a).Cells(b).Value Next

dgvTo.Rows(a).HeaderCell.Value = dgvFrom.Rows(a).HeaderCell.Value

Next End Sub

<Extension()>

Public Function SumColums(ByVal dgv As DataGridView, ByVal col As String) As Double

Dim total As Double = 0

For Each row As DataGridViewRow In dgv.Rows If Not IsDBNull(row.Cells(col).Value) Then

total = total + Val(row.Cells(col).Value) End If

Next

SumColums = total End Function

<Extension()>

Public Sub fillFromArray(ByVal dgv As DataGridView, ByVal matriks(,) As Double, Optional ByVal row As Integer = 0, Optional ByVal col As Integer = 0)

For a = 0 To matriks.GetUpperBound(0)

For b As Integer = 0 To matriks.GetUpperBound(1) dgv.Rows(row + a).Cells(b + col).Value = matriks(a, b)

Next Next End Sub

<Extension()>

Public Function getValAt(ByVal dgv As DataGridView, ByVal row As Integer, ByVal col As String) As Object

getValAt = dgv.Rows(row).Cells(col).Value End Function

<Extension()>

Public Function getValAt(ByVal dgv As DataGridView, ByVal row As Integer, ByVal col As Integer) As Object

getValAt = dgv.Rows(row).Cells(col).Value End Function

<Extension()>

Public Function getSelAt(ByVal dgv As DataGridView, ByVal col As Integer) As Object

getSelAt =

dgv.Rows(dgv.CurrentCell.RowIndex).Cells(col).Value End Function

<Extension()>

Public Function getSelAt(ByVal dgv As DataGridView, ByVal col As String) As Object

getSelAt =

(37)

End Function

<Extension()>

Public Sub formatNumber(ByVal col As DataGridViewColumn) col.DefaultCellStyle.Format = "N0"

col.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight

End Sub

'===== KeyPressEventArgs ===== <Extension()>

Public Function isEnter(ByVal e As

System.Windows.Forms.KeyPressEventArgs) As Boolean isEnter = (e.KeyChar = Chr(13))

End Function

'===== KeyEventArgs ===== <Extension()>

Public Function isSearch(ByVal e As

System.Windows.Forms.KeyEventArgs) As Boolean isSearch = (e.KeyCode = Keys.F1) End Function

<Extension()>

Public Function isAdd(ByVal e As

System.Windows.Forms.KeyEventArgs) As Boolean isAdd = (e.KeyCode = Keys.F2)

End Function

<Extension()>

Public Function isSave(ByVal e As

System.Windows.Forms.KeyEventArgs) As Boolean isSave = (e.KeyCode = Keys.F3)

End Function

<Extension()>

Public Function isPay(ByVal e As

System.Windows.Forms.KeyEventArgs) As Boolean isPay = (e.KeyCode = Keys.F4)

End Function

<Extension()>

Public Function isRefresh(ByVal e As System.Windows.Forms.KeyEventArgs) As Boolean

isRefresh = (e.KeyCode = Keys.F5) End Function

<Extension()>

Public Function isPrint(ByVal e As

System.Windows.Forms.KeyEventArgs) As Boolean isPrint = (e.KeyCode = Keys.F6)

End Function

<Extension()>

Public Function isEdit(ByVal e As

System.Windows.Forms.KeyEventArgs) As Boolean isEdit = (e.KeyCode = Keys.F7)

(38)

<Extension()>

Public Function isDelete(ByVal e As

System.Windows.Forms.KeyEventArgs) As Boolean isDelete = (e.KeyCode = Keys.F8) End Function

<Extension()>

Public Function isCancel(ByVal e As

System.Windows.Forms.KeyEventArgs) As Boolean isCancel = (e.KeyCode = Keys.F9) End Function

<Extension()>

Public Function isClose(ByVal e As

System.Windows.Forms.KeyEventArgs) As Boolean isClose = (e.KeyCode = Keys.Escape) End Function

'===== DateTimePicker ===== <Extension()>

Public Sub Today(ByVal dtp As DateTimePicker) dtp.Value = Now

End Sub

<Extension()>

Public Sub ThisMonth(ByVal dtp As DateTimePicker) dtp.Value = Now.AddDays(Now.Day * -1 + 1) End Sub

'===== ComboBox ===== <Extension()>

Public Sub setDS(ByVal cmb As ComboBox, ByVal dt As DataTable) cmb.DataSource = dt

cmb.ValueMember = dt.Columns(0).ColumnName

If dt.Columns.Count > 1 Then cmb.DisplayMember = dt.Columns(1).ColumnName

If dt.Rows.Count > 0 Then cmb.SelectedIndex = 0 End Sub

<Extension()>

Public Sub fillTerm(ByVal cmb As ComboBox, ByVal taxonomy As String, Optional ByVal selected As String = "", Optional ByVal addDefault As String = "")

dr = openDR("SELECT term_name FROM tb_terms WHERE taxonomy='" & taxonomy & "' ORDER BY term_name")

cmb.fill(dr, selected, addDefault) End Sub

<Extension()>

Public Sub fill(ByVal cmb As ComboBox, ByVal dr As

MySqlDataReader, Optional ByVal selected As String = "", Optional ByVal addDefault As String = "")

cmb.Items.Clear()

If addDefault <> "" Then cmb.Items.Add(addDefault) While dr.Read()

cmb.Items.Add(dr(0)) End While

cmb.Text = selected End Sub

(39)
(40)
(41)
(42)
(43)

Referensi

Dokumen terkait

Private Sub QuitToolStripMenuItem_Click(ByVal sender As _ System.Object, ByVal e As System.EventArgs) Handles _ QuitToolStripMenuItem.Click. Close()

Private Sub BtnBilangan_Click(ByVal sender As System.. EventArgs ) Handles btnSaveAudio.Click.. dlgSaveAudio.ShowDialog()

Diklat Kuliah Kecerdasan Buatan , Jurusan Teknik Informatika, Fakultas Teknologi Industri, Universitas Islam Indonesia.. Sistem Pendukung

Sistem pendukung pengambilan keputusan kelompok (DSS) adalah sistem berbasis komputer yang interaktif, yang membantu pengambil keputusan dalam menggunakan data dan

Salah satu metode yang dapat digunakan untuk Sistem Pendukung Keputusan adalah dengan menggunakan Fuzzy Multiple Attribute Decision Making (FMADM).. Adapun aplikasi yang

Private Sub CancelBt_Click( ByVal sender As System. EventArgs ) Handles CancelBtGuru.Click, CancelBtSiswa.Click, CancelBtKelas.Click, CancelBtMapel.Click,

Private Sub ShowNewForm(ByVal sender As Object, ByVal e.

Private Sub KeluarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KeluarToolStripMenuItem.Click. End