Você está na página 1de 14

PEMROGRAMAN VISUAL FOXPRO 9.

0 DATABASE EDITION (Praktikum) TEMA: SISTEM PENDUKUNG KEPUTUSAN BERBASIS SAW (Simple Additive Weighting)

STMIK WIDYA DHARMA PONTIANAK

BY : ABRIYONO, S.KOM., M.CS.

Buatlah Sebuah Project dengan Nama : SPK_SAW.pjx Buatlah Sebuah Database dengan Nama : SAW.dbc Database akan berisi 3 Tabel yakni : Mhs.dbf ; Kriteria.dbf ; DetailKriteria.dbf

Adapun isi desain dari ke-3 tabel adalah :

Langkah Selanjutnya adalah membuat Form. Form yang dibuat adalah sebagai berikut : 1. Form Mahasiswa

Be_Giants October 2012

Page 2 of 14

Save Form dengan Nama : FMhs.scx Isi DataEnvironment dari Form dengan Tabel Mhs. Kemudian buatlah Objek Kontrols VFP seperti Label, Textbox, Combobox, Editbox, OptionGroup, Grid, dan Command Group sesuai kebutuhan seperti yang tampak pada form. Setting Property Objek Kontrols sebagai berikut : Objek Form, Setting AutoCenter = .T., Caption = Form Master Mahasiswa, dan Name = FMhs Objek Textbox, Setting DisabledBackColor = 217,251,255, Enabled = .F., dan Name secara berturut-turut : txtnim, txtnama, txttempatlahir, txttanggallahir, txtkelurahan, txtkecamatan, dan txtkota. Khusus untuk textbox dengan name txttanggallahir setting nilai Value = {} Objek Editbox, Setting DisabledBackColor = 217,251,255, Enabled = .F., dan Name = edtalamat Object OptionGroup, setting Enabled = .f., AutoCenter = .T., dan Name secara berturut-turut optjk dan optgoldarah. Untuk optjk setting value = 2 dan optgoldarah setting value = 4 Object ComboBox, setting DisabledBackColor = 217,251,255, Enabled = .F., dan Name secara berturut-turut cmbjurusan dan cmbagama. Untuk cmbjurusan isi dengan pilihan MI, SI, TI. Sedangkan untuk cmbagama isi dengan pilihan ISLAM, KATOLIK, KRISTEN, HINDU, BUDDHA, dan KONGHUCU. Object CommandGroup, setting Name = cmgmanipulasi. Isi dari commandgroup yang berupa command button disesuaikan pengaturan gambarnya (akan dikirimkan pada saat praktikum) sedangkan Name Commandbutton secara berturut-turut adalah cmdtambah, cmdedit, cmdsimpan, cmdbatal, cmdhapus, dan cmdkeluar. Object Grid, setting AllowCellSelection = .F., HighlightBackColor = 255,0,255, Name = grdMhs, RecordMark = .F., RecordSource = Mhs, dan RecordSourceType = 1 Selain Menambahkan Objek Controls Visual Fox Pro, Anda juga diminta untuk menambahkan method buatan (nama: Aktifkan dan TampilData) dan Property buatan (nama = baru). Method dan property buatan ini harus dibuat terlebih dahulu sebelum melakukan pengkodean. Berikut adalah Koding Program dari Form Mahasiswa Objek Form Event Aktifkan
LPARAMETERS x thisform.cmbjurusan.Enabled = x thisform.txtNim.Enabled = x thisform.txtNama.Enabled = x thisform.txtTempatlahir.Enabled = x thisform.txtTanggallahir.Enabled = x thisform.edtAlamat.Enabled = x thisform.optjk.Enabled = x thisform.optgoldarah.Enabled = x thisform.cmbAgama.Enabled = x thisform.txtKelurahan.Enabled = x thisform.txtKecamatan.Enabled = x thisform.txtKota.Enabled = x

Be_Giants October 2012

Page 3 of 14

thisform.grdMhs.Enabled = not x thisform.cmgmanipulasi.cmdtambah.Enabled = not x thisform.cmgmanipulasi.cmdedit.Enabled = not x thisform.cmgmanipulasi.cmdsimpan.Enabled = x thisform.cmgmanipulasi.cmdbatal.Enabled = x thisform.cmgmanipulasi.cmdhapus.Enabled = not x thisform.cmgmanipulasi.cmdkeluar.Enabled = not x

Objek Form Event TampilData


SELECT mhs DO CASE CASE mhs.jurusan = "MI" a = 1 CASE mhs.jurusan = "SI" a = 2 CASE mhs.jurusan = "TI" a = 3 OTHERWISE a = 0 ENDCASE thisform.cmbjurusan.ListIndex = a thisform.txtnim.Value = mhs.nim thisform.txtnama.Value = mhs.nama thisform.txttempatlahir.Value = mhs.tempatlahir thisform.txttanggallahir.Value = mhs.tanggallahir thisform.edtAlamat.Value = mhs.alamat IF mhs.jk = "L" a = 1 ELSE a = 2 ENDIF thisform.optjk.Value = a DO CASE CASE mhs.gol_darah = "A" a = 1 CASE mhs.gol_darah = "B" a = 2 CASE mhs.gol_darah = "AB" a = 3 OTHERWISE a = 4 ENDCASE thisform.optgoldarah.Value = a DO CASE CASE mhs.Agama = "Islam" a = 1 CASE mhs.Agama = "Katolik" a = 2 CASE mhs.Agama = "Kristen" a = 3 CASE mhs.Agama = "Hindu" a = 4 CASE mhs.Agama = "Buddha" a = 5 CASE mhs.Agama = "Konghucu" a = 6 OTHERWISE a = 0 ENDCASE thisform.cmbAgama.ListIndex = a thisform.txtKelurahan.Value = mhs.Kelurahan thisform.txtkecamatan.Value = mhs.Kecamatan thisform.txtKota.Value = mhs.Kota

Objek Form Event Init


SET DELETED ON

Be_Giants October 2012

Page 4 of 14

thisform.aktifkan(.f.) SELECT mhs GO TOP thisform.tampildata PUBLIC jumdatamhs, NIM_EDIT NIM_EDIT="" jumdatamhs = RECCOUNT()

Objek CmgManipulasi.CmdTambah Event Click


thisform.aktifkan(.t.) thisform.baru = .t. thisform.cmbjurusan.listindex = 0 thisform.txtNim.value = "" thisform.txtNama.value = "" thisform.txtTempatlahir.value = "" thisform.txtTanggallahir.value = {} thisform.edtAlamat.value = "" thisform.optjk.value = 2 thisform.optgoldarah.value = 4 thisform.cmbAgama.listindex = 0 thisform.txtKelurahan.value = "" thisform.txtKecamatan.value = "" thisform.txtKota.value = ""

Objek CmgManipulasi.CmdEdit Event Click


IF jumdatamhs > 0 NIM_EDIT = thisform.txtNim.Value thisform.aktifkan(.t.) thisform.baru = .f. ELSE MESSAGEBOX("Tidak Ada Data yang Dapat di-EDIT",0+16,"ERROR EDIT") ENDIF

Objek CmgManipulasi.CmdSimpan Event Click


IF EMPTY(thisform.cmbjurusan.listindex) OR EMPTY(thisform.txtnim.Value) OR EMPTY(thisform.txtnama.Value) MESSAGEBOX("DATA Jurusan, Nim, dan Nama TIDAK BOLEH KOSONG" + CHR(13); + "PENYIMPANAN GAGAL",0+16,"ERROR SIMPAN",100) ELSE nim_sama = .f. SELECT mhs SET ORDER TO nim SEEK ALLTRIM(thisform.txtnim.Value) IF FOUND() nim_sama = .t. ENDIF IF thisform.txtnim.Value = NIM_EDIT nim_sama = .f. ENDIF IF nim_sama = .f. kelamin = "P" IF thisform.optjk.Value = 1 kelamin = "L" ENDIF goldarah = "O" DO CASE CASE thisform.optgoldarah.Value = 1 goldarah = "A" CASE thisform.optgoldarah.Value = 2 goldarah = "B" CASE thisform.optgoldarah.Value = 3 goldarah = "AB" ENDCASE

Be_Giants October 2012

Page 5 of 14

IF thisform.baru INSERT INTO mhs(nim, nama, jurusan, tempatlahir,; tanggallahir, alamat, jk, gol_darah, ; agama, kelurahan, kecamatan, kota) ; VALUES (thisform.txtNim.Value,; UPPER(thisform.txtNama.Value),; thisform.cmbjurusan.Value,; UPPER(thisform.txtTempatlahir.Value),; thisform.txttanggallahir.Value, ; thisform.edtAlamat.value, kelamin, gol_darah,; thisform.cmbAgama.Value,; thisform.txtkelurahan.Value, ; thisform.txtKecamatan.value, thisform.txtKota.Value) ELSE SELECT mhs SET ORDER TO nim SEEK ALLTRIM(NIM_EDIT) REPLACE nim WITH thisform.txtnim.value REPLACE Nama WITH UPPER(thisform.txtNama.Value) REPLACE jurusan WITH thisform.cmbjurusan.Value REPLACE tempatlahir WITH ; UPPER(thisform.txtTempatlahir.Value) REPLACE tanggallahir WITH thisform.txtTanggallahir.Value REPLACE alamat WITH thisform.edtAlamat.Value REPLACE jk WITH kelamin REPLACE gol_darah WITH goldarah REPLACE agama WITH thisform.cmbAgama.Value REPLACE kelurahan WITH thisform.txtKelurahan.Value REPLACE kecamatan WITH thisform.txtkecamatan.Value REPLACE kota WITH thisform.txtkota.Value NIM_EDIT = "" ENDIF thisform.aktifkan(.f.) thisform.grdMhs.Refresh thisform.Refresh ELSE MESSAGEBOX("NIM YANG ANDA MASUKKAN TELAH ADA DALAM DATABASE" +; CHR(13) + "TERJADI REDUDANDI DATA. PENYIMPANAN ; GAGAL" ,0+16,"ERROR SIMPAN")

ENDIF

ENDIF

Objek CmgManipulasi.CmdBatal Event Click


thisform.aktifkan(.f.) thisform.tampildata

Objek CmgManipulasi.CmdHapus Event Click


IF jumdatamhs > 0 a = MESSAGEBOX("Anda Melakukan Penghapusan Data Mahasiswa " +; thisform.txtNim.Value+CHR(13)+"Perubahan Data Menyebabkan ; PENGHAPUSAN PADA TABEL LAIN Berhubungan Mahasiswa Ini"+; CHR(13)+"Anda Yakin Menghapus Data Ini ?",4+32+256,"Hapus Data") IF a=6 SELECT mhs DELETE FOR mhs.nim = ALLTRIM(thisform.txtNim.Value) SELECT mhs GO TOP thisform.tampildata thisform.grdMhs.Refresh thisform.Refresh

ENDIF ELSE ENDIF

MESSAGEBOX("Tidak Ada Data yang Dapat di-HAPUS",0+16,"ERROR HAPUS")

Objek GrdMhs Event AfterRowColChange Be_Giants October 2012 Page 6 of 14

thisform.tampildata thisform.Refresh

2. Form Kriteria

Save Form dengan Nama : FKriteria.scx Isi DataEnvironment dari Form dengan Tabel Kriteria dan DetailKriteria. Kemudian buatlah Objek Kontrols VFP seperti Label, Textbox, Combobox, Spinner, Grid, Container, Timer, dan Command Group sesuai kebutuhan seperti yang tampak pada form. Setting Property Objek Kontrols sebagai berikut : Objek Form, Setting AutoCenter = .T., Caption = Form Master Kriteria, dan Name = FKriteria Objek Textbox, Setting DisabledBackColor = 217,251,255, Enabled = .F., dan Name secara berturut-turut : txtkodekriteria,txtnamakeriteria, txtkodedetailkriteria, dan txtnamadetailkriteria. Object Spinner, setting DisabledBackColor = 217,251,255, Enabled = .F., dan Name secara berturut-turut spnbobotkriteria, spnnilaibawah, spnnilaiatas, spnbobotdetailkriteria. Untuk spnbobotkriteria dan spnbobotdetailkriteria setting nilai KeyboardHighvalue = 10, KeyBoardLowValue = 0, SpinnerHighValue = 10, dan SpinnerLowValue = 0. Sedangkan untuk spnnilaibawah dan spnnilaiatas setting nilai KeyboardHighvalue = 99999999, KeyBoardLowValue = 0, SpinnerHighValue = 99999999, dan SpinnerLowValue = 0 Object ComboBox, setting DisabledBackColor = 217,251,255, Enabled = .F., dan Name = cmbtipekriteria. Untuk cmbjurusan isi dengan pilihan Cost dan Benefit. Object CommandGroup, setting Name = cmgmanipulasi dan cmgmanipulasidetail. Isi dari commandgroup yang berupa command button disesuaikan pengaturan gambarnya (akan dikirimkan pada saat praktikum) sedangkan Name Commandbutton secara berturut-turut adalah cmdtambah, cmdedit, cmdsimpan, cmdbatal, cmdhapus, dan cmdkeluar.

Be_Giants October 2012

Page 7 of 14

Object Grid, setting AllowCellSelection = .F., HighlightBackColor = 255,0,255, , RecordMark = .F., RecordSourceType = 1 dan Name secara berturut-turut grdKriteria dan grdDetailKriteria. Untuk grdKriteria setting nilai RecordSource = Kriteria.

Object Container, setting Name = cntbutu dan tampilan disesuaikan dengan form Object Timer, setting Interval = 10 dan Enabled = .F.

Selain Menambahkan Objek Controls Visual Fox Pro, Anda juga diminta untuk menambahkan method buatan (nama: Aktifkan, TampilData, detail_aktifkan, detail_tampildata, dan refresh_detail_kriteria) dan Property buatan (nama = baru, detailbaru). Method dan property buatan ini harus dibuat terlebih dahulu sebelum melakukan pengkodean. Berikut adalah Koding Program dari Form Kriteria Objek Form Event Aktifkan
LPARAMETERS x thisform.txtnamakriteria.enabled = x thisform.spnBobotKriteria.enabled = x thisform.cmbTipeKriteria.enabled = x thisform.grdKriteria.Enabled = not x thisform.cmgmanipulasi.cmdtambah.Enabled = not x thisform.cmgmanipulasi.cmdedit.Enabled = not x thisform.cmgmanipulasi.cmdsimpan.Enabled = x thisform.cmgmanipulasi.cmdbatal.Enabled = x thisform.cmgmanipulasi.cmdhapus.Enabled = not x thisform.cmgmanipulasi.cmdkeluar.Enabled = not x thisform.cmgmanipulasidetail.cmdtambah.Enabled = not x thisform.cmgmanipulasidetail.cmdedit.Enabled = not x thisform.cmgmanipulasidetail.cmdhapus.Enabled = not x thisform.cmgmanipulasidetail.cmdkeluar.Enabled = not x

Objek Form Event Detail_Aktifkan


LPARAMETERS x thisform.txtnamadetailkriteria.enabled = x thisform.spnnilaiatas.Enabled = x thisform.spnnilaibawah.Enabled = x thisform.spnBobotDetailKriteria.enabled = x thisform.grddetailKriteria.Enabled = not x thisform.cmgmanipulasidetail.cmdtambah.Enabled = not x thisform.cmgmanipulasidetail.cmdedit.Enabled = not x thisform.cmgmanipulasidetail.cmdsimpan.Enabled = x thisform.cmgmanipulasidetail.cmdbatal.Enabled = x thisform.cmgmanipulasidetail.cmdhapus.Enabled = not x thisform.cmgmanipulasidetail.cmdkeluar.Enabled = not x thisform.grdKriteria.Enabled = not x thisform.cmgmanipulasi.cmdtambah.Enabled = not x thisform.cmgmanipulasi.cmdedit.Enabled = not x thisform.cmgmanipulasi.cmdhapus.Enabled = not x thisform.cmgmanipulasi.cmdkeluar.Enabled = not x

Objek Form Event Detail_TampilData


SELECT cs1 thisform.txtKodedetailkriteria.Value = cs1.kodedetailkriteria

Be_Giants October 2012

Page 8 of 14

thisform.txtnamadetailkriteria.Value = cs1.namadetailkriteria thisform.spnBobotdetailKriteria.Value = cs1.bobotdetailkriteria thisform.spnnilaiatas.Value = cs1.nilaiatas thisform.spnnilaibawah.Value = cs1.nilaibawah

Objek Form Event Refresh_Detail_Kriteria


SELECT kodedetailkriteria, namadetailkriteria, nilaibawah, nilaiatas, ; bobotdetailkriteria FROM detailkriteria WHERE ; detailkriteria.kodekriteria = thisform.txtKodekriteria.Value ; INTO CURSOR cs1 thisform.grddetailkriteria.RecordSource = SPACE(0) thisform.grddetailkriteria.RecordSource = "cs1" thisform.grddetailkriteria.column1.Width = 70 thisform.grddetailkriteria.column2.Width = 173 thisform.grddetailkriteria.column3.Width = 75 thisform.grddetailkriteria.column4.Width = 80 thisform.grddetailkriteria.column5.Width = 59 thisform.grddetailkriteria.column1.header1.Caption = "Kode" thisform.grddetailkriteria.column2.header1.Caption = "Detail Kriteria" thisform.grddetailkriteria.column3.header1.Caption = "NBawah" thisform.grddetailkriteria.column4.header1.Caption = "NAtas" thisform.grddetailkriteria.column5.header1.Caption = "Bobot" thisform.grddetailkriteria.column1.ControlSource = "cs1.kodedetailkriteria" SELECT cs1 jumdatadetailkriteria = RECCOUNT()

Objek Form Event TampilData


SELECT kriteria thisform.txtKodekriteria.Value = kriteria.kodekriteria thisform.txtnamakriteria.Value = kriteria.namakriteria thisform.spnBobotKriteria.Value = kriteria.bobotkriteria IF kriteria.tipekriteria = "C" thisform.cmbTipeKriteria.ListIndex = 1 ELSE IF kriteria.tipekriteria = "B" thisform.cmbTipeKriteria.ListIndex = 2 ELSE thisform.cmbTipeKriteria.ListIndex = -1 ENDIF ENDIF

Objek Form Event Init


SET DELETED ON PUBLIC buka,jumdatadetailkriteria,jumdatakriteria, lbform buka=1 jumdatadetailkriteria = 0 SELECT kriteria GO TOP jumdatakriteria =RECCOUNT() thisform.aktifkan(.f.) thisform.detail_aktifkan(.f.) thisform.tampildata lbform = thisform.Width thisform.Width = thisform.cntbutu.Width + thisform.cntbutu.left

Objek Timer1 Event Timer


IF buka = 1 thisform.Width = thisform.Width + 10 ELSE thisform.Width = thisform.Width - 10 ENDIF IF thisform.Width <= thisform.cntbutu.Width + thisform.cntbutu.left + 5 buka = 1 this.Enabled = .f.

Be_Giants October 2012

Page 9 of 14

ENDIF

SELECT kriteria

IF thisform.Width >= lbform + 5 buka = 0 this.Enabled = .f. ENDIF

Objek CntButu Event Click


thisform.timer1.Enabled = .t.

Objek GrdKriteria Event AfterRowColChange


thisform.tampildata thisform.refresh_detail_kriteria thisform.detail_tampildata thisform.grddetailkriteria.Refresh thisform.Refresh

Objek GrdDetailKriteria Event AfterRowColChange


thisform.detail_tampildata thisform.Refresh

Objek CmgManipulasi.CmdTambah Event Click


SELECT kriteria SET ORDER TO kodekrite GO BOTTOM IF RECCOUNT() = 0 thisform.txtKodekriteria.Value = "001" ELSE thisform.txtKodekriteria.Value = REPLICATE("0",3-LEN(ALLTRIM(; STR(VAL(kriteria.kodekriteria)+1)))) + ALLTRIM(STR(VAL(; (kriteria.kodekriteria)+1)) ENDIF thisform.aktifkan(.t.) thisform.baru = .t. thisform.txtNamakriteria.Value = "" thisform.spnBobotKriteria.Value = 0 thisform.cmbTipeKriteria.ListIndex = 0

Objek CmgManipulasi.CmdEdit Event Click


IF jumdatakriteria > 0 thisform.aktifkan(.t.) thisform.baru = .f. ELSE ENDIF MESSAGEBOX("Tidak Ada Data yang Dapat di-EDIT",0+16,"ERROR EDIT")

Objek CmgManipulasi.CmdSimpan Event Click


IF EMPTY(thisform.txtnamakriteria.Value) OR EMPTY(thisform.cmbTipeKriteria.Value) MESSAGEBOX("DATA MASIH ADA YANG KOSONG"+CHR(13)+"PENYIMPANAN GAGAL",; 0+16,"ERROR SIMPAN",100) ELSE IF thisform.baru INSERT INTO kriteria(kodekriteria, namakriteria, bobotkriteria,; aktif, tipekriteria) VALUES(thisform.txtKodekriteria.Value,; UPPER(thisform.txtnamakriteria.Value), ; thisform.spnBobotKriteria.Value, .f., ; LEFT(thisform.cmbTipeKriteria.Value,1)) ELSE SELECT kriteria SET ORDER TO kodekrite SEEK ALLTRIM(thisform.txtKodekriteria.Value) REPLACE namakriteria WITH UPPER(thisform.txtnamakriteria.Value)

Be_Giants October 2012

Page 10 of 14

REPLACE bobotkriteria WITH thisform.spnBobotKriteria.Value REPLACE tipekriteria WITH LEFT(thisform.cmbTipeKriteria.Value,1) ENDIF thisform.aktifkan(.f.) thisform.grdKriteria.Refresh thisform.Refresh

ENDIF

Objek CmgManipulasi.CmdBatal Event Click


thisform.aktifkan(.f.) thisform.tampildata

Objek CmgManipulasi.CmdHapus Event Click


IF jumdatakriteria > 0 a = MESSAGEBOX("Anda Melakukan Penghapusan Data Kriteria " + ; thisform.txtKodekriteria.Value+CHR(13)+"Perubahan Data ; Menyebabkan PENGHAPUSAN PADA TABEL LAIN Berhubungan Kriteria ; Ini"+CHR(13)+"Anda Yakin Menghapus Data Ini ?",4+32+256,"Hapus ; Data") IF a=6 SELECT kriteria DELETE FOR kriteria.kodekriteria = ; ALLTRIM(thisform.txtKodekriteria.Value) SELECT detailkriteria DELETE FOR detailkriteria.kodekriteria = ; ALLTRIM(thisform.txtKodekriteria.Value) SELECT kriteria GO TOP thisform.tampildata thisform.grdKriteria.Refresh thisform.Refresh

ENDIF ELSE ENDIF

MESSAGEBOX("Tidak Ada Data yang Dapat di-HAPUS",0+16,"ERROR HAPUS")

Objek CmgManipulasi.CmdKeluar Event Click


thisform.Release

Objek CmgManipulasiDetail.CmdTambah Event Click


SELECT detailkriteria SET ORDER TO kodedetail GO BOTTOM IF RECCOUNT() = 0 thisform.txtKodedetailkriteria.Value = "01" ELSE thisform.txtKodedetailkriteria.Value = REPLICATE("0",2-LEN(ALLTRIM(; STR(VAL(detailkriteria.kodedetailkriteria)+1)))) + ALLTRIM(STR(; (VAL(detailkriteria.kodedetailkriteria)+1)) ENDIF thisform.detail_aktifkan(.t.) thisform.detail_baru = .t. thisform.txtNamadetailkriteria.Value = "" SELECT kriteria

Objek CmgManipulasiDetail.CmdEdit Event Click


IF jumdatadetailkriteria > 0 thisform.detail_aktifkan(.t.) thisform.detail_baru = .f. SELECT kriteria ELSE ENDIF MESSAGEBOX("Tidak Ada Data yang Dapat di-EDIT",0+16,"ERROR EDIT")

Be_Giants October 2012

Page 11 of 14

Objek CmgManipulasiDetail.CmdSimpan Event Click


IF EMPTY(thisform.txtnamadetailkriteria.Value) OR (thisform.spnnilaiatas.Value < thisform.spnnilaibawah.Value) MESSAGEBOX("DATA MASIH ADA YANG KOSONG / SALAH" + CHR(13) +; "PENYIMPANAN GAGAL",0+16,"ERROR SIMPAN",100) ELSE IF thisform.detail_baru INSERT INTO detailkriteria(kodekriteria, kodedetailkriteria, namadetailkriteria, bobotdetailkriteria, nilaiatas, ; nilaibawah) VALUES (thisform.txtKodekriteria.Value, ; thisform.txtKodedetailkriteria.Value,; UPPER(thisform.txtnamadetailkriteria.Value),; thisform.spnbobotdetailkriteria.Value, ; thisform.spnNilaiAtas.Value, thisform.spnNilaiBawah.Value) ELSE SELECT detailkriteria SET ORDER TO kodedetail SEEK ALLTRIM(thisform.txtKodedetailkriteria.Value) REPLACE namadetailkriteria WITH ; UPPER(thisform.txtnamadetailkriteria.Value) REPLACE bobotdetailkriteria WITH ; thisform.spnBobotDetailKriteria.Value REPLACE nilaiatas WITH thisform.spnnilaiatas.Value REPLACE nilaibawah WITH thisform.spnnilaibawah.Value ENDIF thisform.detail_aktifkan(.f.) thisform.refresh_detail_kriteria thisform.detail_tampildata thisform.grddetailKriteria.Refresh thisform.Refresh ENDIF

Objek CmgManipulasiDetail.CmdBatal Event Click


thisform.detail_aktifkan(.f.) thisform.detail_tampildata thisform.Refresh

Objek CmgManipulasiDetail.CmdHapus Event Click


IF jumdatadetailkriteria > 0 a = MESSAGEBOX("Anda Melakukan Penghapusan Data Detail Kriteria " + ; thisform.txtNamaDetailkriteria.Value; +CHR(13)+"Anda Yakin Menghapus Data Ini ?",4+32+256,"Hapus Data") IF a=6 SELECT detailkriteria DELETE FOR detailkriteria.kodedetailkriteria = ; ALLTRIM(thisform.txtKodedetailkriteria.Value) thisform.refresh_detail_kriteria thisform.detail_tampildata thisform.grdDetailKriteria.Refresh thisform.Refresh ENDIF ELSE MESSAGEBOX("Tidak Ada Data yang Dapat di-HAPUS",0+16,"ERROR HAPUS") ENDIF

Objek CmgManipulasiDetail.CmdKeluar Event Click


thisform.timer1.Enabled = .t.

3. Form Aktivasi

Be_Giants October 2012

Page 12 of 14

Save Form dengan Nama : FAktivasi.scx Isi DataEnvironment dari Form dengan Tabel Kriteria. Kemudian buatlah Objek Kontrols VFP seperti Label, ListBox, CommandButton sesuai kebutuhan seperti yang tampak pada form. Setting Property Objek Kontrols sebagai berikut : Objek Form, Set AutoCenter = .T., Caption = Form Aktivasi Kriteria, dan Name = FAktivasi Object Listbox, setting Name secara berturut-turut lstnonaktif dan lstaktif Object CommandButton, setting Name secara berturut-turut cmdoneleft, cmdallleft, cmdoneright, cmdallright, dan cmdkeluar. Picture akan dikirimkan ada saat praktikum. Pada Form ini, Anda diminta membuat 1 method buatan dengan nama load_kategori Objek Form Event Load_Kategori
SELECT kriteria thisform.lstnonaktif.Clear thisform.lstaktif.Clear SCAN FOR !DELETED() AND kriteria.aktif = .f. thisform.lstnonaktif.AddItem(kriteria.kodekriteria+" | " + ; kriteria.namakriteria) ENDSCAN SCAN FOR !DELETED() AND kriteria.aktif = .t. thisform.lstaktif.AddItem(kriteria.kodekriteria+" | " + ; kriteria.namakriteria) ENDSCAN

Objek Form Event Init


SET DELETED ON thisform.load_kriteria

Objek CmdOneLeft Event Click


IF thisform.lstaktif.ListIndex > 0 UPDATE kriteria SET aktif = .f. WHERE kriteria.kodekriteria = ; LEFT(thisform.lstaktif.Value,3) thisform.load_kriteria thisform.Refresh ENDIF

Objek CmdAllLeft Event Click


UPDATE kriteria SET aktif = .f. thisform.load_kriteria thisform.Refresh

Objek CmdOneRight Event Click


IF thisform.lstnonaktif.ListIndex > 0 UPDATE kriteria SET aktif = .t. WHERE kriteria.kodekriteria = ;

Be_Giants October 2012

Page 13 of 14

ENDIF

LEFT(thisform.lstnonaktif.Value,3) thisform.load_kriteria thisform.Refresh

Objek CmdAllRight Event Click


UPDATE kriteria SET aktif = .t. thisform.load_kriteria thisform.Refresh

Objek CmdKeluar Event Click


a = MESSAGEBOX("ANDA YAKIN DENGAN PERUBAHAN DATA AKTIVASI INI ?" , 3+256+32,; "Aktivasi Kriteria") IF a = 6 IF FILE("DataKriteria.dbf") a = MESSAGEBOX("FILE Data Kriteria TERAKTIVASI sudah pernah ; dibuat." + CHR(13)+ "Melanjutkan Proses Ini Berarti ; Menghapus Semua Data yang Telah Ada."+CHR(13)+ "Kami ; Menyarankan Anda Mem-BackUp Data terlebih dahulu jika ; masih diperlukan." + CHR(13)+"Apakah Anda Yakin Untuk ; Melanjutkan ?",3+256+32,"Aktivasi Kriteria") ENDIF IF a = 6 IF USED("DataKriteria") SELECT DataKriteria USE ENDIF DELETE FILE "DataKriteria.dbf" DIMENSION DtKriteria(thisform.lstaktif.ListCount+1,4) i=1 DtKriteria(i,1) = "nim" DtKriteria(i,2) = "c" DtKriteria(i,3) = 8 DtKriteria(i,4) = 0 SELECT kriteria SCAN FOR kriteria.aktif = .t. i=i+1 DtKriteria(i,1) = "K"+kriteria.kodekriteria DtKriteria(i,2) = "n" DtKriteria(i,3) = 10 DtKriteria(i,4) = 2 ENDSCAN CREATE TABLE DataKriteria FROM ARRAY DtKriteria MESSAGEBOX("Perubahan Telah Selesai",0,"Aktivasi Kriteria") ENDIF ENDIF IF a <> 2 thisform.Release ENDIF

4. Form Isi Nilai Kriteria - Mahasiswa

Be_Giants October 2012

Page 14 of 14

Você também pode gostar