Top Banner
1 I. Praktek Visual FoxPro I Materi: 1. Tahap pembuatan form 2. Perangkat untuk pembuatan form 3. Membuat label, text box, dan tombol command pada form 4. Mengatur properti 5. Menyimpan, Menguji dan Menutup form 1.1 Membuat File Project a. Buatlah sub directory dengan nama depan masingmasing b. Buka program Visual FoxPro c. Membuat File Project 1). Klik menu File 2). Klik New 3). Pilih option Project 4). Pilih dan klik New File (lihat gambar 1.1.1) 5). Pilih subdirectory nama masingmasing untuk menyimpan file project 6). Ketik nama file project (PRAKVFP) 7). Klik tombol save (lihat gambar 1.1.2) 8). Setelah itu akan tampil Project Manager (seperti pada gambar 1.1.3.) Gambar 1.1.1. Kotak dialog pembuatan file project
119

Modul Visual Foxpro 91

Nov 24, 2015

Download

Documents

Anggun Setyanto
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 1

    I. Praktek Visual FoxPro I

    Materi:1. Tahappembuatanform2. Perangkatuntukpembuatanform3. Membuatlabel,textbox, dan tombolcommandpadaform4. Mengaturproperti5. Menyimpan,MengujidanMenutupform

    1.1 MembuatFileProject

    a. Buatlahsub directorydengannamadepanmasingmasingb. BukaprogramVisualFoxProc. MembuatFileProject

    1).Klikmenu File2).Klik New3).PilihoptionProject4).Pilihdanklik NewFile (lihatgambar1.1.1)5).Pilihsubdirectorynamamasingmasinguntuk menyimpanfileproject6).Ketiknamafileproject(PRAKVFP)7).Kliktombolsave(lihatgambar1.1.2)8).SetelahituakantampilProjectManager(sepertipadagambar1.1.3.)

    Gambar1.1.1.Kotakdialogpembuatanfileproject

  • 2

    Gambar1.1.2.KotakdialogpenyimpananfileProject

    Gambar1.1.3.KotakdialogpenyimpananfileProject

  • 3

    1.2 MembuatFileForm

    Kasus1.2:Buatkan form untukmengetahui hasil seleksi penerimaan calon pegawai, dengan

    ketentuansebagaiberikut: Jikanilai akhirminimal70,maka diterima Tapijikasebaliknya,maka ditolak/gagal.1. MembuatFormKosong

    a. Klikpage DocumentspadaProjectManagerb. PilihdanKlikobjectFormc. KliktombolNewd. Pilihdanklik tombolNewForm pada kotak dialogNewForm(gb. 1.2.1)

    Gambar1.2.1 KotakDialogNewForm

    e. SetelahitudilayarakantampilFormkosongsepertipadagambar1.2.2.

    Gambar1.2.2 FormKosong

  • 4

    2. MemberikanJudulFormdanGambarLatarForma. MunculkanJendelaProperties denganmengklikkananpadaformkosongb. Pilihdanklik Propertiesc. PilihobjectForm padajendelapropertiesd. Padabariscaption,ketik PERHITUNGANHASILSELEKSIe. PadabarisPicture,pilihgambarlataryangdikehendaki.

    3. MembuatControlQuestiondanFieldEntrya. MunculkantoolbarFormControlerToolbar darimenuViewb. Buatkan Questin Nama, Nilai Akhir, dan Keterangan denganmenggunakan

    LabeldariFormControlerToolbarc. Buatkan Field Entry untuk menginput Nama, Nilai Akhir dan Keterangan

    denganmenggunakanTextBox.d. Hasilnyasepertipadagambar1.2.3.

    Gambar1.2.3FormPerhitunganHasilSeleksiI

    4. MengisiEntryFielddenganFormulaa. Doubleklik ControlText2b. CaridanpilihProcedure InteractiveChangec. KetikProcedureberikut:

    ifthisform.text2.value>=60thisform.text3.value="Lulus"elsethisform.text3.value="Gagal"

    endifreturn

  • 5

    5. SimpanFormdengannama fileHasilSeleksi1 (sebaiknyanama file tidak pakaisepasi)

    6. UjiFormdenganmengklikiconRun padatoolbarStandard

    1.3 LatihanMembuatForm

    Kasus1.3.Buatkan form untuk mencari nilai akhir, angka mutu dan hurup mutu dengan

    ketentuansbb.:

    NA =(UTS+UAS*2+TGS)/4

    NA AM HM

    86 100 4 A71 85 3 B56 70 2 C41 55 1 D0 40 0 E

    1. BuatkanFormsepertipadagambar1.3.1.

  • 6

    Gambar1.3.1FormPerhitunganHasilSeleksiII2. BuatkanTombolTekanCheckerdenganfasilitasCommandButtondariForm

    ControlerToolbar,kemudianberinamaProses.3. IsikanProcedure Clickdari ControlProsesberikut:

    localvnavna=(thisform.text2.value+thisform.text3.value*2+thisform.text4.value)/4ifvna>=86vam=4vhm="A"elseifvna>=71vam=3vhm="B"elseifvna>=56vam=2vhm="C"elseifvna>=41vam=1

  • 7

    vhm="D"elsevam=0vhm="D"endifendifendif

    endifthisform.text5.value=vnathisform.text6.value=vamthisform.text7.value=vhmretu

    4. SimpanFormdengannamaFileHasilSeleksi25. UjiForm.

  • 8

    1.4 TugasI

    1. KasusTugas1:Buatkan form untukmenghitung gaji pokok, gaji lembur dan jumlah gaji denganketentuansbb: Jumlahjamkerjapokok=8jam Jikabekerjalebihdari8jam,makaselebihnyadihitunglembur Tariplembur=150%*GajiPerJam GajiTotal=GajiPokok+GajiLembur

    2. BuatkanFormsepertipadagambar1.4.1.:

    Gambar1.4.1FormPerhitunganUpahHarian

  • 9

    II. Praktek Visual FoxPro II

    Materi:1. Tahappembuatanform2. PenggunaanfasilitasOptionGroup&CheckBox3. PenggunaanPerintahIF4. PenggunaanPerintahDoCase5. Menyimpan,MengujidanMenutupform

    2.1 MembukaFileProject

    Untuk membuka File Project PRAKVFP yang sudah dibuat pada prakteksebelumnya,makalakukanlangkahsbb.:1. Klikmenu File2. Klik Open3. Cari Folder namamasingmasingdi driveO:\AFOX4.. PilihdanDoubleKlikfileprojectPRAKVFP,sepertipadagambar2.1.1

    Gambar2.1.1KotakDialogOpenFile

  • 10

    2.2 MembuatFileFormBaru

    1. MembuatFormKosonga. Klikpage DocumentspadaProjectManagerb. PilihdanKlikobjectFormc. KliktombolNewd. PilihdankliktombolNewForm padakotakdialogNewForm(gb. 2.2.1)

    Gambar2.2.1KotakDialogNewForm

    2. MemberikanJudulFormdanGambarLatarForma. MunculkanJendelaProperties denganmengklikkananpadaformkosongb. Pilihdanklik Propertiesc. PilihobjectForm padajendelapropertiesd. Padabariscaption,ketik ENTRYGAJIKARYAWANe. PadabarisPicture,pilihgambarlataryangdikehendaki.

    3. MembuatControlQuestiondanFieldEntrya. MunculkantoolbarFormControlerToolbar darimenuViewb. BuatkanQuestion NamaKaryawan,Golongan, Status, JumlahAnak,Gaji

    Pokok, Tunjangan Istri, Tunjangan Anak dan Gaji Total denganmenggunakanLabeldariFormControlerToolbar

    c. BuatkanFieldEntry untukmenginputNamaKaryawan,Golongan, JumlahAnak,GajiPokok,TunjanganIstri,TunjanganAnakdanGajiTotaldenganmenggunakanTextBox.

    4. MembuatOptionGroupa. CaridanKlikcontrol OptionGrouppadaFormControl Toolbarb. KlikpadaformsebelahkananStatus,kemudianberinama STpadaproperties.

  • 11

    c. GantiOption1 denganKawin, dengan cara klik kanan option group kemudianpilihedit.

    d. KlikOption1,kemudianpadabarisCaptiondijendelapropertiesketikKawin.e. KlikOption2,kemudiangantidengan BelumKawinf. Hasilnyalihatgambar2.2.2.

    Gambar2.2.2FormEntryGajiKaryawan

    5. MengisiControlSpinnerGoldenganFormulaa. DoubleklikControl Golb. CaridanpilihProcedure InteractiveChangec. KetikProcedureberikut:

    gol=thisform.gol.valuedocasecasegol=1gapok=200000

    casegol=2gapok=400000

    casegol=3

  • 12

    gapok=600000casegol=4gapok=800000

    otherwisegapok=0

    endcasest=thisform.st.valueifst=1thisform.ja.visible=.t.thisform.text2.visible=.t.thisform.o.visible=.t.ti=0.5*gapokelsethisform.ja.visible=.f.thisform.text2.visible=.f.thisform.o.visible=.f.ti=0thisform.text2.value=0

    endifja=thisform.text2.valueifja>3ta=0.2*gapok*3elseta=0.2*gapok*ja

    endifgatot=gapok+ti+tathisform.text3.value=gapokthisform.text4.value=tithisform.text5.value=tathisform.text6.value=gatotretu

    6. MengisiControlOptionGroupStatusKdenganFormulaa. DoubleklikControlStatusKb. CaridanpilihProcedure InteractiveChangec. Isi Procedure InteractiveChange object ST dicopy dari Procedure

    InteractivechangeobjectGol

    7. MengisiControlFieldEntryText2denganFormulaa. DoubleklikControlText2

  • 13

    b. CaridanpilihProcedure InteractiveChangec. Isi Procedure InteractiveChange object Text2 dicopy dari Procedure

    InteractivechangeobjectGol

    8. Simpan Form dengan nama file HitungGaji (sebaiknya nama file tidak pakaisepasi)

    9. UjiFormdenganmengklikiconRun padatoolbarStandard

    2.3 MembuatFormPilihGambar

    1. BuatkanFormsepertipadagambar2.3.1.berikut:

    Gambar2.3.1FormPilihGambar2. BuatkanOptionGroup,kemudianberinamaPIL. ButtonCountnyaganti63. GantiOption1 s/dOption6denganGambar1s/dGambar64. Buatkan Image untuk menampilkan gambar, sebanya 4 buah, yang diletakan

    disebelah kanan, kanan atas, atas dankiriatas option group (seperti pada gambar2.3.1)

    5. Buatkan CheckBox Kiri Atas kemudian berinama kiri, CheckBox Tengah Ataskemudianberinamatengah,danCheckBoxKananAtaskemudianberinama kanan)

  • 14

    sebanyaktigabuahyangdiletakandisebelahKiriBawah,TengahBawahdanKananBawahOptionGroup(sepertipadagambar2.3.1)

    6. DoubleKlikcontrolOptionGroupPil,kemudianpilihprocedureInteractiveChange,laluketikprocedureberikut:

    docasecasethisform.pil.value=1thisform.image1.picture="gb1.jpg"

    casethisform.pil.value=2thisform.image1.picture="gb2.jpg"

    casethisform.pil.value=3thisform.image1.picture="gb3.jpg"

    casethisform.pil.value=4thisform.image1.picture="gb4.jpg"

    casethisform.pil.value=5thisform.image1.picture="gb5.jpg"

    casethisform.pil.value=6otherwisethisform.image1.picture="gb6.jpg"

    endcase

    7. DoubleKlikcontrolCheckBoxKiri,kemudianpilihprocedure InteractiveChange,laluketikprocedureberikut:ifthisform.kiri.value=1thisform.gbkiri.picture=thisform.image1.pictureelsethisform.gbkiri.picture=""

    endif

    8. Double Klik control CheckBox Tengah, kemudian pilih procedureInteractiveChange,laluketikprocedureberikut:

    ifthisform.tengah.value=1thisform.gbtengah.picture=thisform.image1.pictureelsethisform.gbtengah.picture=""

    endif

    9. Double Klik control CheckBox Kanan, kemudian pilih procedureInteractiveChange,laluketikprocedureberikut:

  • 15

    ifthisform.kanan.value=1thisform.gbkanan.picture=thisform.image1.pictureelsethisform.gbkanan.picture=""

    endif

    10. SimpanFormdengannamaFile PilihGB11.UjiForm.

  • 16

    2.4 TugasII

    1. BuatkanFormsepertipadagambar2.4.1

    Gambar2.4.1.FormMenghitungAngka

    2. Formula/ketentuanperhitunganadalahsbb.:a=0b=0c=0JikaCheckbox100dipilih

    a=100JikaCheckbox10dipilih

    b=10JikaCheckbox2dipilih

    c=2

    Jikaoptiontambahdipilih,makaformulanya:Hasil=a+b+c

    JikaoptionKurangdipilih,makaformulanya:Hasil=a b c

  • 17

    JikaoptionKalidipilih,maka:Jikayangcheckboxhanya100dan10,makaformulanyaHasil=a*b

    Jikayangcheckboxhanya10dan2,makaformulanyaHasil=b*c

    Jikayangcheckboxhanya100dan2,makaformulanyaHasil=a*c

    Jikayangcheckbox100,10dan2,makaformulanyaHasil=a*b*c

    3. Selamatmencoba!

  • 18

    III. Praktek Visual FoxPro III

    Materi:1. Tahappembuatanform2. PenggunaanfasilitasOlecontrol3. PenggunaanPerintahDOWHILE4. PenggunaanPerintahFORNEXT5. Menyimpan,MengujidanMenutupform

    3.1 MembukaFileProjectUntuk membuka File Project PRAKVFP yang sudah dibuat pada praktek

    sebelumnya,makalakukanlangkahsbb.:1. Klikmenu File2. Klik Open3. Cari Folder namamasingmasingdodriveO:\4.. PilihdanDoubleKlikfileprojectPRAKVFP,sepertipadagambar3.1.1

    Gambar3.1.1KotakDialogOpenFile

    3.2 AplikasiDOWHILE

    1. MembuatFormKosonga. Klikpage DocumentspadaProjectManager

  • 19

    b. PilihdanKlikobjectFormc. KliktombolNewd. PilihdankliktombolNewForm padakotakdialogNewForm(gambar3.2.1)

    Gambar3.2.1KotakDialogNewForm

    2. MemberikanJudulFormdanGambarLatarForma. MunculkanJendelaProperties denganmengklikkananpadaformkosongb. Pilihdanklik Propertiesc. PilihobjectForm padajendelapropertiesd. Padabariscaption,ketikMEMBUATANGKABERURUTe. PadabarisPicture,pilihgambarlataryangdikehendaki.

    3. MembuatControlQuestiondanFieldEntrya. MunculkantoolbarFormControlerToolbar darimenuViewb. BuatkanQuestionStart,Step,Stop,danHasildenganmenggunakanLabeldari

    FormControlerToolbarc. Buatkan Field Entry untuk menginput Start, Step, Stop, dan Hasil dengan

    menggunakanTextBox.

    4. MembuatCommandButtona. CaridanKlikcontrolCommandButtonpadaFormControlToolbarb. Letakan di bawah control textbox Text1, kemudian pada properties ganti

    CaptiondanNamenyadenganProses.c. Hasilnyalihatgambar3.2.3.

    5. MembuatOleControla. KlikMenu Tools

  • 20

    b. PilihdanKlik Optionc. PilihdanKlikpage Controlsd. PilihdanKlik ActiveXControle. CariMicrosoftProgressBarControl6.0kemudianberikantandaCheckBoxpada

    kotaksebelahkirinya,sepertipadagambar3.2.2.

    Gambar3.2.2Kotakdialogoption

    f. KliktombolOkg. Pilihdanklikcontrol ViewClassespadaFormControlsToolbarh. Pilihdanklik ActiveXControlsi. PilihdanklikControlMicrosoftProgressBarControl,Version5.0j. Buatkan ProgressBar di sebelah bawah Tombol Proses, seperti pada gambar

    3.2.3.

  • 21

    Gambar3.2.3FormMembuatAngkaBerurut

    k. GantinamenyadenganCtrl

    6. MengisiControlTombolProsesdenganFormulaa. DoubleklikControlTombolProsesb. CaridanpilihProcedure Clic padaobjectProsesc. KetikProcedureberikut:

    locala,b,cifthisform.text1.value>0.or.thisform.text2.value>0.or.thisform.text3.value>0this.enabled=.f.a=thisform.text1.valueb=thisform.text2.valuec=thisform.text3.valuedowhilea

  • 22

    thisform.ctrl.value=nendifx=0dowhilex0.or.thisform.text2.value>0.or.thisform.text3.value>0this.enabled=.f.a=thisform.text1.valueb=thisform.text2.valuec=thisform.text3.valuefori=atocstepbthisform.text4.value=aa=a+bn=(100/c)*aifa

  • 23

    endifforx=1to10000000step1next

    nextelsemessagebox("Start,StepdanStopharusdiisi..!",0,"Perhatian..!")thisform.text1.setfocus()retuendifthis.enabled=.t.retu

    4. SimpanFormdengannamaFile URUTANGKA25. UjiFormdenganmengklikiconRun/!.

    3.4 TugasIII

    1. Klikpage Code padaprojectmanager2. PilihdanklikoptionProgram,kemudiankliktombolNew3. Ketikprogramberikut:

    functionterbilangparameternumerikprivatehasil,ulang,uang,kesatu,kedua,ketiga,cangkaprivatecangka0,cangka1,cangka2,cangka3,cangka4,cangka5privatecangka6,cangka7,cangka8,cangka9privatesatu,dua,tiga,gabung,sen1,sen2

    hasil=""uang=str(numerik,15,2)kesatu=1kedua=2ketiga=3cangka0=""cangka1="Satu"cangka2="Dua"cangka3="Tiga"cangka4="Empat"cangka5="Lima"cangka6="Enam"

  • 24

    cangka7="Tujuh"cangka8="Delapan"cangka9="Sembilan"gabung=""

    forulang=1 to4satu=substr(uang,kesatu,1)dua=substr(uang,kedua,1)tiga=substr(uang,ketiga,1)gabung=satu+dua+tigaifval(satu)=1hasil=hasil+"Seratus"

    elseifval(satu)>1

    hasil=hasil+cangka&satu+"Ratus"endif

    endifDOCASE

    CASEVAL(DUA)=1DOCASECASEVAL(TIGA)=0

    HASIL=HASIL+"Sepuluh"CASEVAL(TIGA)=1

    HASIL=HASIL+"Sebelas"OTHER

    HASIL=HASIL+ALLTRIM(CANGKA&TIGA)+"Belas"

    ENDCASECASEVAL(DUA)>1

    HASIL=HASIL+CANGKA&DUA+"Puluh"+CANGKA&TIGA

    CASEVAL(DUA)=0.AND.VAL(TIGA)>0IF(ulang=3.AND.GABUNG="001").OR.(ulang=3.AND.GABUNG="1")HASIL=HASIL+"Seribu"

    ELSEHASIL=HASIL+CANGKA&TIGA

    ENDIFENDCASE

  • 25

    DOCASECASEulang=1.AND.VAL(GABUNG)>0

    HASIL=HASIL+"Milyar"CASEulang=2.AND.VAL(GABUNG)>0

    HASIL=HASIL+"Juta"CASEulang=3.AND.VAL(GABUNG)>0

    IFGABUNG="001".OR.GABUNG="1"HASIL=HASIL+""

    ELSEHASIL=HASIL+"Ribu"

    ENDIFENDCASEkesatu=kesatu+3kedua=kedua+3ketiga=ketiga+3

    nextulangsen1=substr(uang,14,1)sen2=substr(uang,15,1)iflen(hasil)>1hasil=hasil+"Rupiah"

    endif

    DOCASECASEVAL(SEN1)=0.AND.VAL(SEN2)>0

    HASIL=HASIL+CANGKA&SEN2+"Sen"CASEVAL(SEN1)=1

    DOCASECASEVAL(SEN2)=0

    HASIL=HASIL+"SepuluhSen"CASEVAL(SEN2)=1

    HASIL=HASIL+"SebelasSen"CASEVAL(SEN2)>1

    HASIL=HASIL+ALLTRIM(CANGKA&SEN2)+"BelasSen"

    ENDCASECASEVAL(SEN1)>1

    HASIL=HASIL+CANGKA&SEN1+"Puluh"+CANGKA&SEN2+"Sen"

    ENDCASERETURNHASIL

  • 26

    4. UjiProgramdiatasdenganformberikut:

    5. ProcedureInteractiveChangepadaObjectText1,adalahsbb.:

    setdefatoo:\AFOX\susisetproceduretoterbilanga=terbilang(thisform.text1.value)thisform.text2.value=aretu

  • 27

    IV. Praktek Visual FoxPro IV

    Materi:1. MembuatDatabse2. MembuatTable3. MengeditdanMengisiTable4. MembuatPassword5. MembuatMenu6. MembuatFileProgram(PRG)7. MengujiMenu

    4.1 MembukaFileProject

    Untuk membuka File Project PRAKVFP yang sudah dibuat pada prakteksebelumnya,makalakukanlangkahsbb.:1. Klikmenu File2. Klik Open3. Cari Folder namamasingmasingdodriveO:\AFOX4.. PilihdanDoubleKlikfileprojectPRAKVFP,sepertipadagambar4.1.1

    Gambar4.1.1KotakDialogOpenFile

  • 28

    4.2 MembuatOrganisasiMenu

    1. KlikpageOther(lihatgambar4.2.1)2. KlikoptionmenukemudiankliktombolNew3. Pilihdankliktombolmenu

    Gambar4.2.1Kotakdialogprojectmanager

    4. Ketikmenuberikut:

    5. Klik FileMaster padabarispertama6. Kliktombolcreate,kemudianbuatkansubmenuberikut:

  • 29

    7. PadakotakMenulevel sebelahkanan,pilihMenuBar

    8. BuatkanSubmenu Transaksiberikut:

    9. PadakotakMenulevel,pilihlagiMenuBar10. BuatkanSubMenu Laporansbb.:

  • 30

    11.BuatkanSubMenu LaporanPenjualansbb.:

    12. PadakotakMenulevel,pilihlagiMenuBar13. BuatkanSubMenu Utilitysbb.:

    14. SimpanMenudengannamaMenuPenjualan15.MengujimenudenganmengkliktombolRun

    4.3 MembuatFileDatabasedanTable

    1. MembuatFileDatabasea. Klikpage Data padaProjectManagerb. PilihdanKlikobjectDatabasec. Klik tombolNewd. PilihdankliktombolNewDatabase padakotakdialogNewDatabase(gb4.3.1)

    Gambar4.3.1KotakDialogNewDatabase

  • 31

    2. MembuatTablePSWDa. Klikkananpadajendeladatabase DATAKKBAMb. Pilihdanklik NewTablec. PilihdankliktombolNewTable,sepertipadagambar4.3.2.

    Gambar4.3.2KotakDialogNewTable

    d. PastikanfolderyangaktifpadabarisSaveIn adalahFolderNamaAndae. Ketiknamafiletable PSWDpadabaris Entertable,sepertiopada gambar4.3.3.

    Gambar4.3.3KotakDialogCreateTable

  • 32

    f. KliktombolSave,kemudianketikstrukturtablesepertipadagambar4.3.4.

    Gambar4.3.4StrukturTablePSWD

    g. KliktombolOk,untukmengakhiripembuatanstrukturtableh. Jawab/PilihdanKliktombolNopadapertanyaanInputDataRecordNow?,

    sepertipadagambar4.3.5.

    Gambar4.3.5KotakDialogQuestion

    3. MengisiTablea. KlikTanda+padasebelahkiriDatabasesdipageData,ProjectManager,untuk

    mengetahuidatabaseyangsudahdibuat.b. KliklagiTanda+padasebelahkiri DATAKKBAM, untukmembukatablec. KliklagiTanda+padasebelahkiriTable,untukmengetahuitableyangsudah

    dibuat.d. Klik Table PSWD, kemudian klik tombol Browse yang terletak sebelah

    kanannya.e. Setelahkebuka,klikmenuTable,kemudianpilihdanklikAppendNewRecord

    (Ctrl+Y)f. IsiIdNmdengannamadepanandag. IsiPswddengankodesandianda

  • 33

    4.4 MembuatFormuntukLogin

    1. BuatkanFormsepertipada gambar4.4.1

    Gambar4.4.1FormEntryLogindanPassword

    2. Procedure LoaddariObjectForm1

    setdefatoo:\AFOX\PolderAdndaifused('pswd')useinpswd

    endifusepswdretu

    3. Procedure UnLoaddariobjectForm1

    closedatacloseindexretu

  • 34

    4. Procedure ActivatedariobjectForm1

    thisform.text1.value=""thisform.text2.value=""retu

    5. Procedure ClickdariObjectLogin

    locatefornmid=trim(thisform.text1.value)if!found()messagebox("MaafUserIdAndaBelumTerdaftar...!",0,"Perhatian...")thisform.text1.setfocus()retu

    elselocateforpswd=trim(thisform.text2.value)if!found()messagebox("MaafPasswordTidakDikenal...!",0,"Perhatian...")thisform.text2.setfocus()retu

    elsemessagebox(Selamat,Andaberhakmengaksessystemini..,0,AssalamualaikumWr.Wb.)doo:\AFOX\PolderAnda\MENUPENJUALAN.MPRthisform.release()

    endifendif

    6. Procedure ClickdariobjectBatalthisform.release()quitretu

    7. SimpanFormdengan namaFile PASWORD8. UjiFormdenganmengklikiconRun/!.

    4.5 MembuatFileProgram

    1. Klikpage Code2. PilihdanklikoptionProgram, kemudiankliktombolNew

  • 35

    3. Ketikanprogramberikut:

    CLOSEDATABASEallCLEARALLCLOSEALLSETTALKOFFSETSTATOFFSETAUTOSAVEONSETCENTURYONSETDATEITALIANSETDEFATO O:\AFOX\\SUSIPUSHMENU_MSYSMENUMODIWINDOWSSCREENTITLE'SISTEMINFORMASIGAJIDOSEN'WITH_SCREEN

    .VISIBLE=.T.

    .WINDOWSTATE=2

    .picture='LATAR.JPG'ENDWITHRELEASEALLDOFORMO:\AFOX\PolderAnda\PASWORD.SCXREADEVENTSQUIT

    4. SimpanprogramdengannamaSIPB5. JalankanprogramdenganmengkliktombolRun

  • 36

    4.6 TugasIV

    1. Buatkan database baru dengan nama SIPNM (Sistem Informasi PengolahanNilaiMahasiswa)

    2. BuatkantablepassworddengannamaPSWDsepertipadapraktek4,dengantrukturtablesepertipadagambar4.6.1.

    Gambar4.6.1StrukturFileTablePSWD

    3. Entry(tambahdata)tablePSWD,nmiddiisinamaanda,danpswdandaisidengankoderahasiahanda.

    4. BuatkanFormuntukmengeditPassword,dengancontohformsepertipadagambar4.6.2.berikut:

    Gambar4.6.2.FormGantiPassword

  • 37

    V. Praktek Visual FoxPro V

    Materi:1. MembuatFileProject2. MengambilFileDatabasedariprojectlain3. MembuatFileTabel

    5.1 MembuatProjectBaru

    1. MembuatFileProjecta. Klikmenu Fileb. Klik Newc. PilihoptionProjectd. Pilihdanklik NewFile (lihatgambar5.1.1)e. PilihFoldernamamasingmasinguntukmenyimpanfileprojectf. Ketiknamafileproject(SIPB)g. Kliktombolsave(lihatgambar5.1.2)

    Gambar5.1.1Kotakdialogpembuatanfileproject

    Gambar5.1.2KotakdialogpenyimpananfileProject

  • 38

    2. MembukaMenua. KlikpageOther (lihatgambar5.1.3)b. KlikoptionmenukemudiankliktombolAdd

    Gambar5.1.3Kotakdialogprojectmanager

    c. BukaFolderAndadidrive o:\AFox\NamaAndad. Pilihdanklikfile MENUPENJUALAN.MNX,kemudiankliktombolOk

    3. MembukaFileProgramSIPB.PRGdanTERBILANG.PRG

    a. Klikpage Codeb. KlikoptionProgramkemudiankliktombolAddc. BukaFolderAndadidrive o:\AFox\NamaAndad. Pilihdanklikfile SIPB.PRG,kemudiankliktombolOke. Ulangiperintahdiatasuntukmembukafile TERBILANG.PRG

    4. MembukaFileDatabase

    a. Klikpage Datab. KlikoptionDatabasekemudiankliktombolAddc. BukaFolderAndadidrive o:\AFox\NamaAndad. Pilihdanklikfile DATAKKBAM.DBC,kemudiankliktombolOk

    5. MembuatFileTabela. Kliktanda+yangterletakdidepanoptiondatabaseb. Kliklagitanda+yangadadidepanfiledatabase DATAKKBAM

  • 39

    c. Klik table, kemudiankliktombolNewd. PilihdanKliktombolNewTabele. PilihFoldernamaandamasingmasingf. Ketiknamafiletable BARANGg. Kliktombolsaveh. Isikannamanamafieldberikut:

    i. BerikanFormat!padafieldKODEBRG,untukmemformatmenjadiCapital.j. IndextabletersebutberdasarkankodebrgdanberikantypePrimaryKeyseperti

    padagambarberikut:

    k. KliktombolOKl. PilihtombolNo padakotakdialogInputDataRecordNow

    6. MengisiTable BARANG denganfasilitas Browsea. KlikTable BARANG,kemudiankliktombol Browseb. Klik menu Table, kemudian pilih dan klik Append New Record (Ctrl + Y),

    sepertipadagambarberikut:

  • 40

    c. Entry databerikutini:

    7. MembuatFormOlahDataBaranga. Klikpage Documentsb. KlikoptionForm,kemudiankliktombolNewc. KliktombolNewFormd. BuatkanFormberikut:

  • 41

    e. MembuatTytleFormdanBackgroud1) KlikbarisCaptiondijendelaproperties2) Ketik:OLAHDATABARANG3) Klik pada baris Picture, kemudian klik , lalu pilih latar yang anda

    kehendaki. (jika gambar background belum ada minta dicopykan dulukepadadosenanda)

    4) Aturlahlebarformmenjadi: Width :623 Hight :443

    f. MembuatLabelKodeBarang Caption :KodeBarang FontBold :.t.(true) FontName :Arial FontSize :12 Hight :25 Left :24 Name :Label1 TabIndex :1 Top :24 Width :108

    g. MembuatTextBoxKodeBarang(Text1) FontBold :.f.(false) FontName :Arial FontSize :12 Format :! Hight :27 Left :144 MaxLength :6 Name :Text1 TabIndex :4 Top :24 Width :97

    h. MembuatCommandButtonPeriksa Caption : Hight :48 Left :408 Name :periksa Picture :o:\AFox\NamaAnda\find.bmp

  • 42

    TabIndex :5 Top :18 Width :84

    i. MembuatCommandButton< Caption : Hight :36 Left :264 Name :simpan Picture :o:\AFox\NamaAnda\wzsave.bmp TabIndex :8 Top :132 Width :48

    j. MembuatCommandButton+ Caption : Hight :36 Left :324 Name :tambah Picture :o:\AFox\NamaAnda\add.bmp TabIndex :9 Top :132 Width :36

    k. MembuatCommandButtonPerbaiki Caption :\

  • 43

    FontSize :14 Forecolor :0,0,0 Hight :36 Left :408 Name :ud TabIndex :11 Top :96 Width :84

    m.MembuatGrid Hight :240 Left :24 Name :Grid1 ReadOnly :.t. TabIndex :12 Top :180 Width :564

    n. MemilihFieldyangakanditampilkandigrid Klikkananpada grid Pilihoptionbuilder PilihfileBARANGpadakotakdialoggambar5.1.4

    Gambar5.1.4GridBuilder

  • 44

    Pilihnamafieldyangakanditampilkandigrid,masukankekolomselected

    fileddenganmenggunakantombol atau .KliktombolOkuntukmengahirinya.EditpadapropertiesHeaderHeightmenjadi30danRowHeightmenjadi20

    o. MengeditgridKlikkananpada gridPilihoptioneditPilihdanklikHeaderkolomKodeBrg,aturpropertiesnya,menjadisbb:* Aligment :2 MiddleCenter* BackColor :* Caption :KODE* FontBold :.t.(true)* FontName :Arial* FontSize :11* ForeColor :* Name :Header1

    KlikkolomKodeBrg,aturpropertiesnya,menjadisbb:* Aligment :2 MiddleCenter* BackColor :* ControlSource :Barang.Kodebrg* FontBold :.t.(true)* FontName :Arial* FontSize :11* ForeColor :* Name :Column1

    8. FormControlyanglainnyaandabuatseperticontohdiatas.

    9. MembuatProcedure LoadpadaobjectForm1 Doubleklikpadaformyangkosong CariProcedure loadpadaobjectForm1 Ketikprocedureberikut:

    closedatacloseindexsetdefatoo:\AFox\NamaAndaIFUSED("barang")

    USEINbarangendif

  • 45

    usebarangsetordertotagkodebrgreindexreturn

    10.MembuatProcedure UnloadpadaobjectForm1 CariProcedure UnloadpadaobjectForm1 Ketikprocedureberikut:

    closeindexclosedatareturn

    11.MembuatProcedureKosongkandanTampilkan PilihdankilkmenuForm(sepertipadagambar5.1.5)

    Gambar5.1.5.MemilihMenuNewMethod

    KetikkosongkanpadakolomName,kemudiankeliktombolAdd(sepertipadagambar5.1.6)

    Gambar5.1.6KotakdialogNewMethod

    KetikTampilkanpadakolomName,kemudiankeliktombolAdd(sepertipadagambar5.1.7)

    Gambar5.1.7.KotakdialogNewMethod

  • 46

    KetikNonText1padakolomName,kemudiankeliktombolAdd(sepertipadagambar5.1.8)

    Gambar5.1.8.KotakdialogNewMethod

    Ketik Kendali pada kolom Name, kemudian kelik tombol Add (seperti padagambar5.1.9)

    Gambar5.1.9.KotakdialogNewMethod

    KliktombolClose,untukmenutupkotakdialog CariProcedure KosongkanpadaobjectForm1 Ketikprocedureberikut:

    thisform.text2.value=""thisform.text3.value=0thisform.text4.value=""thisform.text5.value=0return

    Cariprocedure Tampilkan padaobjectForm1 Ketikprocedureberikut:

    thisform.text1.value=barang.kodebrgthisform.text2.value=barang.namabrgthisform.text3.value=barang.qtythisform.text4.value=barang.satuanthisform.text5.value=barang.hrgdsrthisform.text6.value=recno()return

  • 47

    Cariprocedure NonText1padaobjectForm1 Ketikprocedureberikut:

    parameterkeadaanthisform.text2.enabled=keadaanthisform.text3.enabled=keadaanthisform.text4.enabled=keadaanthisform.text5.enabled=keadaanreturn

    CariprocedureKendalipadaobjectForm1 Ketikprocedureberikut:

    PARAMETERSxthisform.pertama.enabled=xthisform.sebelumnya.enabled=xthisform.berikutnya.enabled=xthisform.terakhir.enabled=xretu

    12.MembuatProcedure ActivatepadaobjectForm1 Cariprocedure Activate padaobjectForm1 Ketikprocedureberikut:

    thisform.kosongkan()thisform.text1.enabled=.t.thisform.nontext1(.f.)thisform.kendali(.t.)thisform.text1.setfocus()thisform.keluar.enabled=.t.thisform.periksa.enabled=.t.thisform.simpan.enabled=.f.thisform.batal.enabled=.f.thisform.hapus.enabled=.f.thisform.perbaiki.enabled=.f.thisform.ud.enabled=.f.thisform.perbaiki.visible=.t.thisform.tambah.enabled=.t.thisform.ud.visible=.f.thisform.grid1.Enabled=.t.thisform.grid1.readonly=.t.return

    Tutupjendelaprosedur,jikapengetikanprosedursudahselesai

  • 48

    13.MembuatProcedure ClickpadaobjectTambah( )

    Doublekliktombol (klikkanantombol ,kemudianpilihcode) Cariprocedure Clickpadaobjecttambah Ketikprocedureberikut:

    thisform.kosongkan()thisform.text1.enabled=.t.thisform.nontext1(.f.)thisform.kendali(.t.)thisform.periksa.enabled=.t.thisform.simpan.enabled=.f.thisform.perbaiki.visible=.t.thisform.ud.visible=.f.thisform.perbaiki.enabled=.f.thisform.ud.enabled=.f.thisform.keluar.enabled=.f.thisform.tambah.enabled=.f.thisform.batal.enabled=.t.thisform.hapus.enabled=.f.thisform.grid1.Enabled=.t.thisform.text1.SetFocus()return

    14. Procedure ClickpadaobjectPeriksa ( )

    ifempty(thisform.text1.value)messagebox("KodeBarangHarusDiisi!",0,"Perhatian...!")thisform.text1.setfocus()return

    endififseek(thisform.text1.value)

    thisform.grid1.setfocus()thisform.refresh()messagebox("Kodebarangtsbsudahada...!",0,"Perhatian...")thisform.text1.enabled=.t.thisform.nontext1(.f.)thisform.kendali(.t.)thisform.periksa.enabled=.t.thisform.simpan.enabled=.f.thisform.batal.enabled=.f.thisform.hapus.enabled=.f.thisform.tambah.enabled=.t.thisform.perbaiki.enabled=.f.thisform.ud.enabled=.f.thisform.perbaiki.visible=.t.

  • 49

    thisform.ud.visible=.f.thisform.grid1.Enabled=.t.thisform.text1.setfocus()return

    elsethisform.text1.enabled=.f.thisform.nontext1(.t.)thisform.kendali(.f.)thisform.periksa.enabled=.f.thisform.simpan.enabled=.t.thisform.batal.enabled=.t.thisform.hapus.enabled=.f.thisform.tambah.enabled=.f.thisform.perbaiki.enabled=.f.thisform.ud.enabled=.f.thisform.perbaiki.visible=.t.thisform.ud.visible=.f.thisform.grid1.Enabled=.f.thisform.text2.setfocus()

    endifreturn

    15. Procedure ClickpadaobjectSimpan( )

    ifempty(thisform.text2.value).or.empty(thisform.text4.value).or.empty(thisform.text5.value)messagebox("Isidatadenganlengkap!",0,"Perhatian...!")thisform.text2.setfocusreturn

    endiflocateforkodebrg=space(6)

    if!found()appendblank

    endifreplkodebrgwiththisform.text1.valuereplnamabrgwiththisform.text2.valuereplqtywiththisform.text3.valuereplsatuanwiththisform.text4.valuereplhrgdsrwiththisform.text5.value

    thisform.grid1.setfocus()thisform.refresh()thisform.kendali(.t.)thisform.keluar.enabled=.t.thisform.periksa.enabled=.f.thisform.simpan.enabled=.f.thisform.batal.enabled=.f.thisform.hapus.enabled=.f.thisform.tambah.Enabled=.t.thisform.perbaiki.enabled=.t.

  • 50

    thisform.ud.enabled=.f.thisform.perbaiki.visible=.t.thisform.ud.visible=.f.return

    16. Procedure ClickpadaobjectPertama( )

    setordertogotopifeof()

    messagebox("Tidakadarecord...!",0,"Perhatian...!")thisform.refresh()return

    endifthisform.grid1.setfocus()thisform.refresh()setordertotagkodebrgreturn

    17. Procedure ClickpadaobjectSebelumnya( )

    setordertoskip1ifbof()

    gotopendifthisform.grid1.setfocus()thisform.refresh()setordertotagkodebrgreturn

    18. Procedure ClickpadaobjectBerikutnya( )

    setordertoskipifbof()

    gobottomendifthisform.grid1.setfocus()thisform.refresh()setordertotagkodebrgreturn

  • 51

    19. Procedure ClickpadaobjectTerakhir ( )

    setordertogobottomifeof()

    messagebox("Tidakadarecord...!",0,"Perhatian...!")thisform.refresh()return

    endifthisform.grid1.setfocus()thisform.refresh()setordertotagkodebrgreturn

    20. Procedure ClickpadaobjectHapus( )

    localljawab,lnln=recno()ljawab=messagebox("AndaYakin?",4+32+256,"Recordinimaudihapus!")ifljawab=6

    setdeleondele

    endifgotolnthisform.grid1.setfocus()thisform.refresh()return

    21. Procedure ClickpadaobjectPerbaiki

    thisform.text1.enabled=.t.thisform.nontext1(.t.)thisform.kendali(.f.)thisform.keluar.enabled=.f.thisform.periksa.enabled=.f.thisform.simpan.enabled=.f.thisform.batal.enabled=.t.thisform.hapus.enabled=.f.thisform.tambah.enabled=.f.thisform.perbaiki.enabled=.f.thisform.ud.enabled=.t.thisform.perbaiki.visible=.f.thisform.ud.visible=.t.thisform.grid1.Enabled=.f.return

  • 52

    22. Procedure ClickpadaobjectUd(UpDate)

    localjawab,lnln=recno()jawab=messagebox("MauMemperbaikiDataSebelumnya?",4+32,"Perhatian...!")

    ifjawab=6gotolnreplkodebrgwiththisform.text1.valuereplnamabrgwiththisform.text2.valuereplqtywiththisform.text3.valuereplsatuanwiththisform.text4.valuereplhrgdsrwiththisform.text5.value

    endifthisform.grid1.setfocus()thisform.refresh()thisform.kendali(.f.)thisform.keluar.enabled=.f.thisform.periksa.enabled=.f.thisform.simpan.enabled=.f.thisform.batal.enabled=.t.thisform.hapus.enabled=.f.thisform.tambah.enabled=.t.thisform.perbaiki.enabled=.f.thisform.ud.enabled=.t.thisform.perbaiki.visible=.f.thisform.ud.visible=.t.thisform.grid1.Enabled=.f.return

    23. Procedure ClickpadaobjectBatal

    n=RECNO()LOCATEFORkodebrg=SPACE(6)IFFOUND()

    DELETESETDELETEDON

    ENDIFIFthisform.ud.Enabled=.t.

    thisform.grid1.Enabled=.t.GOTOnthisform.grid1.SetFocus()thisform.Refresh()

    elsethisform.kosongkan()thisform.text1.enabled=.t.thisform.nontext1(.f.)thisform.kendali(.t.)thisform.periksa.enabled=.t.thisform.simpan.enabled=.f.thisform.perbaiki.visible=.t.

  • 53

    thisform.ud.visible=.f.thisform.perbaiki.enabled=.f.thisform.ud.enabled=.f.thisform.keluar.enabled=.t.thisform.tambah.enabled=.t.thisform.batal.enabled=.f.thisform.hapus.enabled=.f.thisform.grid1.Enabled=.t.thisform.text1.SetFocus()

    endifreturn

    24. Procedure ClickpadaobjectKeluar( )

    jawab=messagebox("AndaYakin?",4+32,"MauKeluardariEntryData...")ifjawab=6

    thisform.release()setdeleoffpack

    endifreturn

    25. Procedure AfterRowColChangepadaobjectGrid1

    LPARAMETERSnColIndexthisform.text1.enabled=.f.thisform.nontext1(.f.)thisform.kendali(.t.)thisform.keluar.enabled=.t.thisform.periksa.enabled=.f.thisform.simpan.enabled=.f.thisform.batal.enabled=.f.thisform.hapus.enabled=.t.thisform.tambah.Enabled=.t.thisform.perbaiki.enabled=.t.thisform.ud.enabled=.f.thisform.perbaiki.visible=.t.thisform.ud.visible=.f.thisform.tampilkan()return

    26.MengurutkanProses(TabOrder)Clikmenu ViewPilihdanklik TabOrderPilihdanklik AssignInteractively

  • 54

    Urutkanproseseksekusisepertipadagambar5.1.10.

    Gambar5.1.10UrutanEksekusiFormOlahDataBarang

    27.UjiForm,dataandakarangsendiri.

    5.2TugasV.

    1. BukafileprojectSIPNM2. BuatlahfiledatabasedengannamaDATANILAI3. BuatkanfileTabelMHS.DBFdenganstruktursbb.:

  • 55

    2. MebuatfilemenudengannamafileMenuNilaiContoh:

  • 56

    VI. Praktek Visual FoxPro VI

    Materi:1. BekerjadenganIndeks2. Melatihpemahamanpembuatanform3. Mengenalbentuktanggaldanmerubahsetingtanggal

    6.1 BahanPraktekVisualFoxProVI

    a. BuatlahFileTable ANGGOTA denganstruktursbb:

    b. Buatlahdesainformpadagambar6.1.1.(simpandengannama OlahAnggota)

    Gambar6.1.1DesainFormOlahDataAnggota

  • 57

    6.2. TUGASVI

    1. BuatkanFormsepertipadalatihandi atasuntukMengentryFileMHS.DBFContohlayoutFormOlahDataMahasiswaadalahsbb.:

    2. BuatkanProcedurenya,kemudianentrydatamahasiswa,minimal10record(datanyangarangsendiri)

  • 58

    VII. Praktek Visual FoxPro VII

    Materi:1. MembuatProcedure2. MembuatForm/ProgramEntryData3. BekerjadenganIndeks4. Melakukanpencariandata5. MengaplikasikanfungsiIF

    7.1 BahanPraktekVisualFoxProVII

    BukakembalifileOlahAnggotayangsudahdibuatpadapraktekVI.

    Gambar7.1.1DesainFormOlahData Anggota

    1. BuatkanProcedure Loadclosedatacloseindexsetdefatoo:\AFox\NamaAndaIFUSED("anggota")

  • 59

    USEINanggotaENDIFuseanggotareturn

    2. BuatkanProcedure Unload3. BuatkanProcedure Kosongkan

    thisform.text2.value=""thisform.text3.value=""thisform.text4.value=""thisform.text5.value=""thisform.text6.value=""thisform.text7.value=recno()return

    4. BuatkanProcedure Tampilkan5. BuatkanProcedure NonText16. BuatkanProcedure Kendali7. BuatkanProcedure Activate

    8. BuatkanProcedureTombolTambah

    9. BuatkanProcedureTombolSimpan

    10. BuatkanProcedureTombolKeluar

    11. BuatkanProcedureTombolRecordPertama

    12. BuatkanProcedureTombolRecordSebelumnya

    13. BuatkanProcedureTombolRecord Berikutnya

    14. BuatkanProcedureTombolRecordTerakhir

    15. BuatkanProcedureTombolPeriksa16. BuatkanProcedureTombolPerbaiki

    17. BuatkanProcedureTombolHapus18. BuatkanProcedure AfterRowColChangepada Grid119.Ujiprogramdanentrydataberikut:(datalainnyaandakarangsendiri)

  • 60

    7.2. TUGASVII

    1. BuatkanFileTableMKdenganstruktursbb.:

    2. BuatkanFormuntukmengentryfileTableMK diatas,dengandesainformsbb.:

  • 61

    3. BuatkanProsedurprosedurnya,laluentrydataberikut:

  • 62

    VIII. Praktek Visual FoxPro VIII

    Materi:1. RelasiFile2. BekerjadenganIndeks3. PencariandatadenganSEEKdanLocate4. MengaplikasikanfungsiIF

    8.1 BahanPraktekVisualFoxProVIII

    1. BuatkanstrukturfiletableberikutdengannamafileFAKTUR

    2. BuatkanstrukturfiletableberikutdengannamafilePENJUALAN

  • 63

    3 BuatkanstrukturfiletableberikutdengannamafileNOFAKTUR

    4. BuatkanstrukturfileFreeTableberikutdengannamafileTMPJUAL

  • 64

    5. BuatkandesainFormPENJUALAN sbb.:

    6. Procedure Load

    closedatacloseindexsetdatebritishsetcentonsetdefatoo:\AFox\NamaIFUSED("barang")

    USEINbarangENDIFIFUSED("anggota")

    USEINanggotaENDIFIFUSED("faktur")

    USEINfakturENDIFIFUSED("Penjualan")

    USEINpenjualanendifIFUSED("NoFaktur")

  • 65

    USEINNoFakturendifIFUSED("TmpJual")

    USEINTmpJualendifselectausebarangsetordertotagkodebrgsetordertotagnamabrgselectbuseanggotasetordertotagnoangselectcusefaktursetordertotagnofakturselectdusepenjualansetordertotagnofakturselecteusetmpjualSELECTfUSENoFakturReturn

    7. Procedure UnloadObjectForm1

    closedatacloseindexretu

    8. Procedure KosongkanObjectForm1

    thisform.noang.value=""thisform.nama.value=""thisform.combo1.value=""thisform.combo2.value=""thisform.qty.value=0thisform.text1.value=0thisform.text2.value=0thisform.text3.value=0thisform.text4.value=0thisform.text5.value=0selectfakturgobottomthisform.text6.value=recno()+1return

  • 66

    9. Procedure TampilkanObjectForm1

    selecttmpjualthisform.combo1.value=tmpjual.kodebrgthisform.combo2.value=tmpjual.namabrgthisform.text1.value=tmpjual.hrgjualthisform.qty.value=tmpjual.qtyreturn

    10. Procedure TampilsemuaObjectForm1

    selectfakturthisform.nofak.value=faktur.nofakturthisform.tgljual.value=faktur.tgltranthisform.text3.value=faktur.diskonthisform.text2.value=faktur.totjualthisform.text4.value=faktur.bayarthisform.text5.value=faktur.sisathisform.text6.value=recno()thisform.noang.value=faktur.noangselectanggotalocatefornoang=thisform.noang.valuethisform.nama.value=anggota.namaselecttmpjualdeleallsetdeleonappefrompenjualanfornofaktur=thisform.nofak.valuegotopdowhile!eof()

    selectbaranglocateforkodebrg=tmpjual.kodebrgvnamabrg=barang.namabrgvsatuan=barang.satuanselecttmpjualreplnamabrgwithvnamabrgreplsatuanwithvsatuanreplhrgjualwithtmpjual.jumlah/tmpjual.qtyskip

    enddoGObottomrepltotjualwiththisform.text2.valuerepldiskonwiththisform.text3.valuereplbayarwiththisform.text4.valuereplsisawiththisform.text5.valuegotopREPLACEtgltranWITHthisform.tgljual.ValueREPLACEnoangWITHthisform.noang.Valuethisform.combo1.value=tmpjual.kodebrgthisform.combo2.value=tmpjual.namabrgthisform.text1.value=tmpjual.hrgjual

  • 67

    thisform.qty.value=tmpjual.qtythisform.refresh()return

    11. Procedure Kendali ObjectForm1

    PARAMETERSxthisform.pertama.Enabled=xthisform.sebelumnya.Enabled=xthisform.berikutnya.Enabled=xthisform.terakhir.Enabled=xretu

    12. Procedure ActivateObjectForm1

    PUBLICLnofakselectbarangsetordertotagnamabrgthisform.tgljual.Value=DATE()selenofakturgobottomifnofaktur.tanggalthisform.tgljual.value

    deleallpackappendblanklnofak=1

    elselnofak=nofaktur.nofak+1

    endiftgl=day(thisform.tgljual.value)bln=month(thisform.tgljual.value)th=year(thisform.tgljual.value)thisform.nofak.value=ltrim(str(tgl,2))+ltrim(str(bln,2))+ltrim(right(str(th),2))+alltrim(str(lnofak,3))seletmpjualDELETEALLSETDELETEDONthisform.noang.setfocus()thisform.cetak.enabled=.f.thisform.simpan.enabled=.f.thisform.tambah.enabled=.t.thisform.hitung.enabled=.f.thisform.batal.enabled=.f.thisform.kembalian.enabled=.f.thisform.keluar.enabled=.t.thisform.kendali(.t.)return

  • 68

    13. ProcedureInteractiveChangeObjectNOANG

    thisform.nama.value=anggota.namaa=thisform.noang.Valueb=".JPG"c=ALLTRIM(a)+bthisform.foto.Picture="o:\AFox\NamaAnda\"+creturn

    14. Procedure InteractiveChangeObjectNAMA

    thisform.noang.value=anggota.noanga=thisform.noang.Valueb=".JPG"c=ALLTRIM(a)+bthisform.foto.Picture="o:\AFox\NamaAnda\"+creturn

    15. ProcedureInteractiveChangeObjectCombo1

    thisform.combo2.value=barang.namabrgthisform.text1.value=barang.hrgdsr*1.1thisform.cetak.enabled=.f.thisform.simpan.enabled=.f.thisform.tambah.enabled=.f.thisform.hitung.enabled=.t.thisform.batal.enabled=.t.thisform.kembalian.enabled=.f.thisform.keluar.enabled=.f.thisform.kendali(.f.)thisform.qty.setfocus()return

    16. ProcedureInteractiveChangeObjectCombo2

    thisform.combo1.value=barang.kodebrgthisform.text1.value=barang.hrgdsr*1.1thisform.cetak.enabled=.f.thisform.simpan.enabled=.f.thisform.tambah.enabled=.f.thisform.hitung.enabled=.t.thisform.batal.enabled=.t.thisform.kembalian.enabled=.f.thisform.keluar.enabled=.f.thisform.kendali(.f.)thisform.qty.setfocus()return

  • 69

    17. Procedure RightClickObject Qty

    DOo:\AFox\NamaAnda\editBarang.MPRReturn

    18. Procedure ClickObjectTombolHitung

    localselisih,llaba,jml,vsatuanselebaranglocateforkodebrg=thisform.combo1.valueifbarang>qtyqtythisform.qty.setfocus()return

    endifvsatuan=barang.satuanjml=thisform.qty.value*thisform.text1.valuethisform.text2.value=thisform.text2.value+jmlselisih=thisform.text1.valuebarang.hrgdsrllaba=selisih*thisform.qty.valueselecttmpjualifthisform.text1.value>0.or.thisform.qty.value>0appendblankreplnofakturwiththisform.Nofak.valuerepltgltranwiththisform.tgljual.valuereplnoangwiththisform.noang.valuereplkodebrgwiththisform.combo1.valuereplnamabrgwiththisform.combo2.valuereplqtywiththisform.qty.valuereplsatuanwithvsatuanreplhrgjualwiththisform.text1.valuerepljumlahwithjmlendifthisform.refresh()selepenjualanifthisform.qty.value>0.and.thisform.text1.value>0appeblankreplNofakturwiththisform.Nofak.valuereplkodebrgwiththisform.combo1.valuereplqtywiththisform.qty.valuerepljumlahwithjmlrepllabawithllabaendifselebaranglocateforkodebrg=thisform.combo1.valueifthisform.qty.value>0.and.thisform.text1.value>0replbarang.qtywithbarang.qtythisform.qty.valueendifselecttmpjual

  • 70

    thisform.combo1.value=""thisform.text1.value=0thisform.combo2.value=""thisform.qty.value=0thisform.cetak.enabled=.f.thisform.simpan.enabled=.f.thisform.tambah.enabled=.f.thisform.hitung.enabled=.f.thisform.batal.enabled=.f.thisform.kembalian.enabled=.f.thisform.keluar.enabled=.f.thisform.kendali(.f.)return

    19a. ProcedureClickObjectTombolBatal

    localqty1,jawab,ljmljawab=messagebox("Andamaumenghapusrecordini?",4+32+256,"Perhatian...")ifjawab=6seletmpjualljml=tmpjual.jumlahsetdeleondeleselepenjualanlocafornofaktur=thisform.nofak.value.and.kodebrg=thisform.combo1.valuedeleselebaranglocateforkodebrg=thisform.combo1.valueifthisform.qty.value>0

    qty1=barang.qtyqty1=qty1+thisform.qty.valuereplbarang.qtywithqty1

    endifthisform.text2.value=thisform.text2.valueljmlthisform.text4.Value=thisform.text2.Valuethisform.text3.valuethisform.text5.Value=thisform.text2.Valuethisform.text3.valuethisform.text4.Valueselectfakturlocatefornofaktur=thisform.nofak.valuerepltotjualwiththisform.text2.valuerepldiskonwiththisform.text3.valuereplbayarwiththisform.text4.valuereplsisawiththisform.text5.valueselecttmpjualgotopreplnoangwiththisform.noang.valuerepltgltranwiththisform.tgljual.value

  • 71

    GObottomrepltotjualwiththisform.text2.valuerepldiskonwiththisform.text3.valuereplbayarwiththisform.text4.valuereplsisawiththisform.text5.valuethisform.text2.value=tmpjual.totjualthisform.text3.value=tmpjual.diskonthisform.text4.value=tmpjual.bayarthisform.text5.value=tmpjual.sisagotopthisform.refresh()thisform.qty.value=0endifreturn

    19b. ProcedureRightClickObjectTombolBatal

    jawab=MESSAGEBOX("Maumembatalkantransaksi?",4+32+512,"Perhatian...")IFjawab=6

    SELECTfakturDELETEFORNofaktur=ALLTRIM(thisform.Nofak.value)SELECTpenjualanDELETEFORNofaktur=ALLTRIM(thisform.Nofak.value)SELECTtmpjualDELETEALLSETDELETEDonthisform.Refresh()thisform.keluar.Enabled=.t.thisform.kendali(.t.)thisform.kosongkan()thisform.hitung.Enabled=.f.thisform.batal.Enabled=.f.

    endifretu

    20. ProcedureClickObjectTombolKeluarseletmpjualdeleallsetdeleoffpackselepenjualanPACKSELECTfakturpackthisform.release()return

    21a. ProcedureInteractiveChangeObjectText4

  • 72

    IFthisform.text4.Value>(thisform.text2.Valuethisform.text3.Value)MESSAGEBOX("Jumlahbayaryangandamasukansalah...",0,"Perhatian...")thisform.text4.SetFocus()RETURN

    ENDIFthisform.cetak.enabled=.f.thisform.simpan.enabled=.t.thisform.tambah.enabled=.f.thisform.hitung.enabled=.f.thisform.batal.enabled=.f.thisform.kembalian.enabled=.f.thisform.keluar.enabled=.f.thisform.kendali(.f.)thisform.text5.Value=thisform.text2.valuethisform.text3.valuethisform.text4.valuereturn

    21b. ProcedureDoubleClickObjectText4

    thisform.cetak.enabled=.f.thisform.simpan.enabled=.t.thisform.tambah.enabled=.f.thisform.hitung.enabled=.f.thisform.batal.enabled=.f.thisform.kembalian.enabled=.f.thisform.keluar.enabled=.f.thisform.kendali(.f.)thisform.text4.value=thisform.text2.valuethisform.text3.valuereturn

    21c. ProcedureRightClickObjectText4

    DOo:\AFox\Nama\bukakembalian.mprReturn

    22. ProcedureClickObjectTombolSimpan

    ifthisform.text2.value>0selectfakturlocatefornofaktur=thisform.nofak.valueif!found()

    appendblankendifreplnofakturwiththisform.nofak.valuerepltotjualwiththisform.text2.valueREPLdiskonWITHthisform.text3.Valuereplbayarwiththisform.text4.valuereplsisawiththisform.text5.value

  • 73

    repltgltranwiththisform.tgljual.valuereplnoangwiththisform.noang.valueselecttmpjualgobottomreplnofakturwiththisform.nofak.valuerepltotjualwiththisform.text2.valuerepltgltranwiththisform.tgljual.valuereplnoangwiththisform.noang.valueREPLdiskonWITHthisform.text3.Valuereplbayarwiththisform.text4.valuereplsisawiththisform.text5.value

    ENDIFSELECTNofakturGObottomREPLACEnofakWITHlnofakREPLACEtanggalWITHthisform.tgljual.valuethisform.cetak.enabled=.t.thisform.simpan.enabled=.f.thisform.tambah.enabled=.t.thisform.hitung.enabled=.f.thisform.batal.enabled=.f.thisform.kembalian.enabled=.t.thisform.keluar.enabled=.t.thisform.kendali(.t.)return

    23. ProcedureClickObjectTombolCetak

    SELECTanggotaSETORDERTOtagNoangselecttmpjualSETRELATIONTOnoangINTOanggotalocatefornofaktur=thisform.Nofak.valueREPORTformo:\AFox\Nama\fakturjualPREVIEWthisform.cetak.enabled=.f.thisform.simpan.enabled=.f.thisform.tambah.enabled=.t.thisform.hitung.enabled=.f.thisform.batal.enabled=.f.thisform.kembalian.enabled=.f.thisform.keluar.enabled=.t.thisform.kendali(.t.)return

    24. ProcedureClickObjectTombolTambah

    selectbarangsetordertotagnamabrg

  • 74

    thisform.tgljual.Value=DATE()selenofakturgobottomifnofaktur.tanggalthisform.tgljual.value

    deleallpackappendblanklnofak=1

    elselnofak=nofaktur.nofak+1

    endiftgl=day(thisform.tgljual.value)bln=month(thisform.tgljual.value)th=year(thisform.tgljual.value)thisform.nofak.value=ltrim(str(tgl,2))+ltrim(str(bln,2))+ltrim(right(str(th),2))+alltrim(str(lnofak,3))seletmpjualdeleallsetdeleonthisform.refresh()thisform.kosongkan()thisform.noang.setfocus()thisform.cetak.enabled=.f.thisform.simpan.enabled=.f.thisform.tambah.enabled=.f.thisform.hitung.enabled=.f.thisform.batal.enabled=.f.thisform.kembalian.enabled=.f.thisform.keluar.enabled=.t.thisform.kendali(.t.)thisform.noang.SetFocus()return

    25 ProcedureClickObjectTombolHitungKembalian

    doformo:\AFox\Nama\hitungkembalian.scxreturn

    26. ProcedureClickObjectTombolPertama

    selectfakturSETORDERTOgotopifeof()

    messagebox("Tidakadarecord",0,"Perhatian...!")thisform.release()return

    endif

  • 75

    thisform.tampilsemua()thisform.refresh()thisform.cetak.enabled=.t.thisform.tambah.enabled=.t.SETORDERTOtagnofakturReturn

    27. ProcedureClickObjectTombolSebelumnya

    selectfakturSETORDERTOskip1ifbof()

    gotopendifthisform.tampilsemua()thisform.refresh()thisform.cetak.enabled=.t.thisform.tambah.enabled=.t.SETORDERTOtagnofakturReturn

    28. ProcedureClickObjectTombolBerikutnya

    selectfakturSETORDERTOskip1ifeof()

    gobottomendifthisform.tampilsemua()thisform.refresh()thisform.cetak.enabled=.t.thisform.tambah.enabled=.t.SETORDERTOtagnofakturReturn

    29. ProcedureClickObjectTombolTerakhir

    selectfakturSETORDERTOgobottomifeof()

    messagebox("Tidakadarecord",0,"Perhatian...!")thisform.release()return

    endif

  • 76

    thisform.tampilsemua()thisform.refresh()thisform.cetak.enabled=.t.thisform.tambah.enabled=.t.SETORDERTOtagnofakturreturn

    30. SimpanFormdengannamaGAJIDSN,kemudianujidengandatakarangsendiri

    8.2. TUGASVIII

    1. Buatkanstrukturtablenilaisbb:

    2. Buatkanlagistrukturtabledetnilaisbb:

  • 77

    3. Buatkantabletmpnilaidantmpnilai1denganstruktursbb:

  • 78

    4. ButlahFormOLAHNILAI,dengandesainformsbb.:

  • 79

    IX. Praktek Visual FoxPro IX

    Materi:1. MembuatMenuShortCut2. MembuatFormHitungKembalian

    9.1 BahanPraktekVisualFoxProIX1. MembuatMenuShortCut EditBarang

    PilihOptionOther PilihMenu KliktombolNew PilihdankliktombolShotcut Buatkanmenushotcutberikutini:

    Procedure EditDataBarang

    DOFORMo:\AFox\Nama\entryBrg1.scxretu

    SimpanMenudengannamafile EditBarang TutupMenudanjalankandenganmengclickRUN

    2. MembuatFormHitungKembalian

  • 80

    ProcedureLOADpadaobjectFORM1

    selecttmpjualgobottomreturn

    ProcedureACTIVEpadaobjectFORM1

    thisform.text1.value=tmpjual.bayarthisform.text2.value=0thisform.text3.value=0thisform.text2.setfocus()return

    ProcedureCLICKpadaobjectKELUAR

    thisform.release()return

    3. JalankanmenudanFormHitungKembaliandiatasdariFormPenjualan

  • 81

    X. Praktek Visual FoxPro X

    Materi:1. MembuatFileReport2. MengujiReport

    10.1 BahanPraktekVisualFoxProX

    1. MendesainReport FaturJual PilihOptionDocument PilihReport KliktombolNew PilihdankliktombolNewReport Desainreportsepertiberikutini:

  • 82

    2. Langkahlangkahpembuatantanyakanpadainstruktur(dosen)3. Formulayangdigunakan

    FormulaNo.Anggotaexpression=":"+tmpjual.noang FormulaNamaAnggotaExpression=":"+ANGGOTA.NAMA FormulaNomorFakturexpression=tmpjual.nofaktur FormulaTanggalexpression=tmpjual.tgltran FormulaKodeBarangexpression=tmpjual.kodebrg FormulaNamaBarangexpression=tmpjual.namabrg FormulaQtyexpression=tmpjual.QTY

    Formatexpression=999

    Aligment FormulaSatuanexpression=tmpjual.satuan FormulaHargaJualexpression=tmpjual.hrgjual

    Formatexpression=9,999,999

    Aligment FormulaJumlahexpression=tmpjual.jumlah

    Formatexpression=99,999,999

    Aligment FormulaTotalTransaksiexpression:tmpjual.totjual

    Formatexpression=99,999,999

    Aligment FormulaDiskonexpression:tmpjual.diskon

    Formatexpression=99,999,999

    Aligment FormulaTotalBersihexpression:tmpjual.totjualtmpjual.diskon

    Formatexpression=99,999,999

    Aligment FormulaJumlahBayarexpression:tmpjual.bayar

    Formatexpression=99,999,999

    Aligment FormulaSisaexpression:tmpjual.sisa

    Formatexpression=99,999,999

    Aligment

    4. SimpanReportdengannamafile FakturJual5. TutupdesainreportdanjalankanForm PENJUALAN6. KliktombolCetak

  • 83

    10.2.TUGASX

    1. BuatkanreportuntukfileMahasiswa,dengancontohdesainsbb:

    2. Formula formula: FormulaNIM=mhs.nim FormulaNamaMahasiswa=mhs.nama FormulaTempat/tgl.Lahir=trim(mhs.tlahir)+,+dtoc(mhs.tgllahir) FormulaAlamat=trim(mhs.alamat)++mhs.kota

  • 84

    XI. Praktek Visual FoxPro XI

    Materi:1. MembuatFileReport2. MengujiReport

    11.1 BahanPraktekVisualFoxProXI

    1. MendesainReportDaftarStockBarang PilihOptionDocument PilihReport KliktombolNew PilihdankliktombolNewReport Desainreportsepertiberikutini:

  • 85

    2. Langkahlangkahpembuatantanyakanpadainstruktur(dosen)3. Formulayangdigunakan

    FormulaPerTanggalexpression=lapjual.tgltran FormulaNomorFakturexpression=lapjual.nofaktur FormulaNomorAnggotaexpression=lapjual.noang FormulaNamaAnggotaexpression=anggota.nama FormulaKodeBarangexpression=lapjual.kodebrg FormulaNamaBarangexpression=barang.namabrg FormulaQtyexpression=lapjual.qty

    Formatexpression=999

    Aligment FormulaSatuanexpression=barang.satuan FormulaHargaJualexpression=lapjual.jumlah/lapjual.qty

    Formatexpression=999,999

    Aligment FormulaJumlahexpression=lapjual.jumlah

    Formatexpression=99,999,999

    Aligment FormulaSubTotal Jumlahexpression=lapjual.jumlah

    Formatexpression=99,999,999

    Aligment

    FormulaSubTotal Diskonexpression=lapjual.diskonFormatexpression=999,999

    Aligment

  • 86

    FormulaSubTotal Bayar expression=lapjual.bayarFormatexpression=99,999,999

    Aligment

    FormulaSubTotal Sisa expression=lapjual.sisaFormatexpression=99,999,999

    Aligment

    FormulaGrandTotal Jumlahexpression=lapjual.jumlahFormatexpression=99,999,999

    Aligment

    FormulaGrandTotal Diskonexpression=lapjual.diskonFormatexpression=999,999

    Aligment

  • 87

    FormulaGrandTotal Bayar expression=lapjual.bayarFormatexpression=99,999,999

    Aligment

    FormulaGrandTotal Sisa expression=lapjual.sisaFormatexpression=99,999,999

    Aligment

    4. SimpanReportdengannamafile LAPHARIAN5. UjiReport

  • 88

    11.2.TUGASXI

    BuatkanreportKKSdariFileNilaidengandesainsbb.:

  • 89

    XII. Praktek Visual FoxPro XII

    Materi:1. MembuatformuntukmemfilterReport2. MengujiForm

    12.1 BahanPraktekVisualFoxProXII

    1. DesainFormsbb.:

    2. Buatkanprosedursbb:

    ProcedureLoad

    closedatacloseindexsetdatebritishsetcentonsetdefatoo:\AFox\NamaIFUSED("barang")

    USEINbarangENDIFIFUSED("Anggota")

    USEINAnggotaENDIFIFUSED("faktur")

    USEINfakturENDIF

  • 90

    IFUSED("Penjualan")USEINpenjualan

    ENDIFIFUSED("TMPJUAL")

    USEINTMPJUALENDIFIFUSED("LAPJUAL")

    USEINLAPJUALENDIFselectausebarangsetordertotagkodebrgSELECTbUSEanggotaSETORDERTOtagnoangselectcusefaktursetordertotagtgltranselectdusepenjualansetordertotagnofakturselecteuselapjualselectfusetmpjualreturn

    b. ProsedurActivate

    thisform.tgl.day=DAY(date())thisform.tgl.month=month(date())thisform.tgl.year=year(date())return

    c. ProcedureUnLoad

    closedatacloseindexreturn

    d. ProcedureCetak

    a=thisform.tgl.dayb=thisform.tgl.monthc=thisform.tgl.yearvtgl=ALLTRIM(STR(a,2))+"/"+ALLTRIM(STR(b,2))+"/"+STR(c,4)selectlapjualdeleall

  • 91

    setdeleoffPACKselecttmpjualDELETEALLPACKappefromfakturfortgltran=CTOD(vtgl)gotopdowhile!eof()

    selectlapjualAPPENDFROMpenjualanFORnofaktur=tmpjual.nofakturSELECTtmpjualSKIP

    enddoSELECTlapjualGOtopDOWHILE!EOF()

    SELECTtmpjualLOCATEFORnofaktur=lapjual.nofakturIFFOUND()

    vtgltran=tmpjual.tgltranvnoang=tmpjual.noang

    ELSEvtgltran=CTOD("//")vnoang=""

    ENDIFSELECTlapjualREPLACEtgltranWITHvtgltranREPLACEnoangWITHvnoangSKIP

    ENDDOSELECTtmpjualGOtopDOWHILE!EOF()

    SELECTlapjualLOCATEFORnofaktur=tmpjual.nofakturIFFOUND()

    vtotjual=tmpjual.totjualvbayar=tmpjual.bayarvdiskon=tmpjual.diskonvsisa=tmpjual.sisa

    ELSEvtotjual=0vdiskon=0vbayar=0vsisa=0

    ENDIFREPLACEtotjualWITHvtotjualREPLACEdiskonWITHvdiskonREPLACEbayarWITHvbayarREPLACEsisaWITHvsisaselecttmpjual

  • 92

    SKIPENDDOSELECTlapjualSETRELATIONTOkodebrgINTObarang,noangINTOanggotarepoformo:\Fox\Nama\lapharianpreviewreturn

    e. ProcedureKeluar

    thisform.release()return

    3. SimpanFormdengannamafile LAPHARIAN5. UjiForm

  • 93

    XIII. Praktek Visual FoxPro XIII

    Materi:1. MembuatformGrafik2. MengujiGrafik

    13.1 BahanPraktekVisualFoxProXIII

    1. DesainFormsbb.:

    2. Buatkanprosedursbb:

    ProcedureLoad

    setdefatoo:\AFox\Namaselectlapjualreturn

    b. ProsedurActivate

    thisform.text1.Value=YEAR(lapjual.tgltran)SELECTlapjualGOtop

  • 94

    doWHILE!eof()thisform.Grafik.row=MONTH(lapjual.tgltran)thisform.grafik.rowlabel=MONTH(lapjual.tgltran)thisform.Grafik.column=1thisform.Grafik.data=lapjual.totjualskip

    ENDDOthisform.keluar.SetFocus()retu

    c. ProcedureKeluar

    thisform.release()return

    3. SimpanFormdengannamafileGRAFIK

    4. BuatkanFormuntukmenajalankanGrafiktsbdiatas.

    5. BuatkanProsedurberikut.

    a. ProcedureLoad

    closedatacloseindexsetdatebritishsetcentonsetdefatoo:\AFox\NamaIFUSED("faktur")

    USEINfakturENDIFIFUSED("LAPJUAL")

  • 95

    USEINLAPJUALENDIFselectausefaktursetordertotagtgltranselectbuselapjualreturn

    b. ProcedureActivate

    thisform.tgl.day=DAY(date())thisform.tgl.month=month(date())thisform.tgl.year=year(date())return

    c. ProcedureActivate

    closedatacloseindexreturn

    d. ProcedureTombolGrafik

    c=thisform.tgl.yearselectlapjualdeleallsetdeleoffPACKappefromfakturforYEAR(tgltran)=cSETORDERTOtagtgltrandoformo:\AFox\Nama\grafik.scxreturn

    e. ProcedureKeluar

    thisform.release()return

    6. SimpanFormdengannamafile LAPTAHUNAN7. UjiForm

  • 96

    XIV.Praktek Visual FoxPro XIV

    Materi:1. ReportTahunan2. FormFilterpertahun

    14.1 BahanPraktekVisualFoxProXIV

    1. DesainReportsbb.:

    2. Buatkanformulaexpressionsbb:

    FormulaTahunexpression=year(lapjual.tgltran) FormulaBulanexpression=month(lapjual.tgltran)

  • 97

    FormulaTotalPenjualanexpression=lapjual.totjualFormatexpression=999,999,999

    Aligment

    FormulaTotalDiskonexpression=lapjual.diskonFormatexpression=999,999,999

    Aligment

    FormulaTotalBayarexpression=lapjual.bayarFormatexpression=999,999,999

    Aligment

    FormulaTotalPiutangexpression=lapjual.sisaFormatexpression=999,999,999

    Aligment

  • 98

    FormulaTotalPenjualanexpression=lapjual.totjualFormatexpression=999,999,999

    Aligment

    FormulaTotalDiskonexpression=lapjual.diskonFormatexpression=999,999,999

    Aligment

    FormulaTotalBayarexpression=lapjual.bayarFormatexpression=999,999,999

    Aligment

  • 99

    FormulaTotalPiutangexpression=lapjual.sisaFormatexpression=999,999,999

    Aligment

    3. SimpanFormdengannamafile LAPTAHUNAN

    4. BukaFormLAPTAHUNAN,yangdibuatpadapraktek13sbb:

    5. BuatkanProsedurCetakLaporansbb.:

    c=thisform.tgl.yearselectlapjual

  • 100

    deleallsetdeleoffPACKappefromfakturforYEAR(tgltran)=cSETORDERTOtagtgltranrepoformo:\AFox\Nama\laptahunanpreviewreturn

    6. SimpandanUjiForm

  • 101

    LANDASANTEORI

    1. PengertianDatabase

    Database adalah suatu pengorganisasian data dengan tujuan agar data dapat diaksesdengan mudah. Sebagai contoh, database dapat diterapkan untuk mengelolakepegawaianatauakunting.Padakenyataannya,umumnyasebuahdatabaseterdiriatassejumlahtabel.

    Sebagaigambaran,databasetentangpenggajianbisamengandungtabelkaryawan,tabelgolongan,tabelabsensi,tabeljabatandantabeltransasksipenggajian.Tabelkaryawandapat dilukiskan sebagai kumpulankartu, denganmasingmasing kartumewakili dataseorangkaryawan.

    2. TypeDataVisualFoxPro

    DalamVisualFoxPro6.0initerdapattigabelasjenisdata,diantaranya:

    a. CharacterType ini merupakan type bawaan. Digunakan untuk menyatakan informasi yangtidakuntukdihitungdanjugabukanberupatanggal.Misalnyauntuknamapegawaiataunamabarang.Bisamengandungsimbol*atau+.Typeinidapatmenampung1sampai254character.

    b. CurencyUntukmenyatakankarakterkarakteryangdipakaiuntuksymbolmatauang.Angkayangdapatditanganidatainiadalah$922triliun.Defaultnyamempunyai4tempatdesimaldanmemerlukantempatsebesar8bytedidalamtable.

    c. NumericUntukmenyatakanbilangan(yangnantinyadapatdiprosesuntukperhitungan).Typeinibisamengandungbagianpecahan.Panjangmaksimal20digitdenganmaksimum19 tempat desimal, termasuk tanda plus atauminusdan juga tempat untuk bagianpecahan.

    d. FloatMerupakan type untuk data yang dinyatakan dengan notasi ilmiah (misalnya1.6E+02).SifatsifatyanglainsamadengantypeNumerik.

  • 102

    e. DateMenyatakan tanggal. Panjangnya selalu 8 karakter. Format tanggal dapat diatursesuaidenganformatdiIndonesia(tanggalbulantahun)melaluiSETDATE.Bentuktanggalyangbisadiset,diantaranya: American Format:mm/dd/yy British/French Format:dd/mm/yy Italian Format:ddmmyy German Format:dd.mm.yy Ansi Format:yymmdd

    f. DateTimeMenyatakan tanggal dan waktu. Panjangnya selalu 8 karakter. Type DateTimememakai format HHMMSS untuk menyimpan data jam. Jangkauan tanggal01/01/100 sampai 31/12/9999 dan jangkauan jam adalah 12:00:00 AM sampai11:59:59PM.

    g. DoubleTypeinimenyimpandatanumeric18digitdalamformatyangtelahdikompresdanmemerlukan 8 byte. Type ini mempunyai kelebihan dalam hal banyaknya angkadesimal yang ditangani dengan range 4.94065648541247E324 sampai1.79769313486232E.

    h. IntigerUntukmenyatakanbilangan(yangnantinyadapatdiprosesuntukperhitungan).Typeinitidamengandungpecahan.Panjangmaksimal4.

    i. LogicalMenyatakan logika benaratau salah. IsinyaY jika benar (True) atauN jika salah(False). Misalnya dapat dipakai untukmenyatakan jenis kelamin (Y = pria, N =wanita).Pasasaatmemasukandatahurufhurufberikut(kecilataupunkapital)bisadigunakanY,T,FatauN.TdianggapYdanFdianggapN.

    j. MemoBerguna untuk menyatakan suatu keterangan yang panjangnya lebih dari 254character.Misalnya, isi surat. Ukuranmemo dapat bervariasi, disesuaikan denganukuran sebuah blok. Defaulnya setiap blok foxpro berukuran 64 byte. Misalnyauntukmenampungdata72bytediperlukan2blok.

    k. General

  • 103

    Dipakaiuntukmenyimpangrafik.FoxpromenyimpanfieldGeneraldalamfile.FPT.yangdipakaijugaolehfieldMemo.

    l. Character(Binary)m.Memo(binary)

    3. TahapPembuatanProgram

    PembuatanprogramdenganVisualFoxProselalumelaluiduatahap,yakni:a. Tahappemrogramanvisual,danb. Tahappenulisankode

    Pada tahap pemrograman visual, mulamula merancang form yang dipakai program.Pada tahap ini dibuatkan form beserta kontrolkontrol yang diperlukan. PerancanganformbesertakontrolkontrolyangdilibatkanditanganidenganmenggunakanperangkatperangkatyangtersediadalampaketViasualFoxPro.

    Padatahappenulisankode,dituliskankodekodeyangdilekatkanpadakontrolkontrolyang dipakai. Sebagai gambaran, Jika operator menekan suatu tombol yang kitabuatkan,maka kode yang kita buatkan harusmenampilkan suatu tindakan. Penulisankode ini dilakukan denganmenggunakan editor teks yang tersedia pada paket visualFoxPro.

    4. PerangkatuntukPembuatanProgram

    BilabermaksudmembuatsuatuprogramdenganVisualFoxPro,akanselalumelibatkantigajendelaberikut:a. JendelaFormb. JendelaFormControlc. JendelaProperties

    Formmerupakanjendelayangakanmunculsebagailatarbelakangdaritampilansuatuaplikasi.Sebuahaplikasidapatmemilikibanyak form,namunpaling tidakmelibatkansebuah form. Itulah sebabnya, tidak berlebihan jika form dianggap sebagai tulangpunggungaplikasiVisual FoxPro. Formlah yangmenjadiantarmuka dengan pemakaiaplikasi.

  • 104

    Pada saat perancangan, form tampak tersusun atas sejumlah titik. Hal ini bermanfaatsebagaipatokandalammengaturtataletakkontrol(misalnyatomboltekanataubahkanteks). Sudah tentu, pada saat aplikasi dijalankan, titiktitik tersebut tidak kelihatan.Dengankatalain,tandatitiktitikhanyamunculsaatperancangan.

    Jendela Form Control (lihat gambar 1a) merupakan jendela yang membuat berbagaikontrol yang tersedia pada Visual FoxPro. Kita perlu memilih kontrol yang terdapatpadajendelainisebelummenempatkannyapadaform.

    Gambar1a.FormControl

    Jendela Properties merupakan tempat untukmengatur halhal yang berkaitan dengansuatukontrolyang terdapatpadaform.Jendelainimengandunglimabuahtab,yaitu:a.Allb.Datac.Methodsd.LayOute.Other

    Kelimatabiniterlihatpadabagianatasjendelaproperties.Tab properties berisi properti dari kontrol, misalnya ukuran font, jenis font, namakontrol,dansebagainya.Sepertipadagambar2a

    Gambar2a.JendelaProperties

  • 105

    5. GambaranprogramdengankontrolTombolTekandanFieldEntri

    Jika kita perhatikan programprogram padawindows, pengerjaan suatu tindakan bisadilakukan dengan menggunakan suatu tombol perintah, seperti Ok atau Cansel.Bagaimana cara membuat tomboltombol tersebut kita akan coba praktekanpembuatannyapadasubbabini.

    Pada Modul praktek ke II kita sudah mempelajari membuat kontrol teks, yang bertuliskanKodeMataKuliah,NamaMataKuliahdanKredit,danFieldEntri (berupakotakkosongyangtidakberisiapaapa)

    6. MengenalPointerRecord

    Setiap tabelmemiliki sebuahpointerrecordsewaktu tabeldibuka.Fungsidaripointeriniyaitumenunjukrecordsekarang.Padalingkuppemrograman,pointerinimempunyaiperanan yang sangat penting.Beberapa perintahVisual FoxPro (misalnyaDISPLAY,jika lingkup ALL tidak diberikan) bekerja berdasarkan record yang sedang ditunjukolehpointerrecord.

    Perhatikan hasil perintah seperti BROWSE, setiap recordmempunyai nomor record.Nomor record ini dimulai dari 1. Nomoor inilah yang dipegang pada pointer record.Misalnya,jikapointerrecordberisi2,artinyarecord sekarangadalahrecordbernomor2.

    Perlu diketahui, pada saat suatu tabel dibuka, pointer record dengan sendirinyamenunjukkerecordbernomor1(jikatabelpalingtidakmempunyaisebuahrecord).

    7. Memperolehnomorrecordsekarang

    Untukmengetahui nomor record sekarang (atau dengan kata lainmelihat isi pointerrecord),bisadigunakanperintahRECNO().

    Perintahinidiketikanpadajendelacommanddandiakhiridenganenter.Misalnyabukadulu file table (USEMK.DBFdikutidenganENTER), laluketikperintah?RECNO()dikutidenganENTER.Perintahiniakan menampilkanposisirecordsekarang.

  • 106

    8. Memindahkanpointerrecord

    Pointerrecorddapatdiaturagarmenunjukkesuaturecordtertentudantentusajarecordtersebutakanmenjadirecordsekarang.PerintahyangdigunakandapatberupaGOatauGOTO.Keduaperintahinimempunyaimaknayangsama.

    BentukGOTOadalah:

    GOTO[RECORD]

    Kata RECORD yang ditulis dalam tanda [] bisa diberikan ataupun tidak, tanpamengubahmakna.Perludiketahui,jikakataRECORDdisertakan,tanda[]tidakperluditulis.

    9. Meletakankerecordpertamadanrecordterakhir

    Untukmenggerakanpointerkerecordpertama,bisadigunakanperintahGOTO1atauGOTOTOP.PerintahiniidentikdenganGO1atauGOTOP.

    Sedangkan untuk memindahkan pointer ke record terakhir, bisa digunakan perintahGOTOBOTTOMatauGOBOTTOM.

    10.Memindahkanposisirecordkerecordberikutnya

    Salah satu tindakan yang nantinya banyak dijumpai dalam pemrograman adalahmemindahkan pointer ke record berikutnya. Langkah ini dapat ditempuh denganmenggunakanperintahSKIP.Formatperintahiniadalah:

    SKIP[]

    Apabilajumlahrecordyangdilompatitidakdisertakan,pergeseranadalahsebesarsaturecord.JadiSKIPidentikdenganSKIP1.

  • 107

    11.Meletakanpointerrecordkerecordyangdicari

    Visual FoxPro jugamenyediakan perintah yang berguna untukmencari suatu recordtertentu. Misalnya, perintah untuk menempatkan pointer record yang bagian MataKuliahnyaberisiCOBOL.

    LOCATEFORNAMA_MK=COBOL

    Dalam hal ini LOCATE adalah perintah un tuk mencari suatu record dan FORNAMA_MK=COBOLadalahkriteriapencarian.

    Untuk mencari record berikutnya yang cocok, kita cukup memberikan perintahCONTINUE.ApabilahasildariperintahLOCATEatauCONTINUEberupa:

    EndofLocatescope.

    Halinimenandakanbahwatidakadalagidatayangcocok.

    Untuk mengtahui yang dicari dengan LOCATE ketemu atau tidak, kita bisamenggunakanfungsiFOUND().Fungsiinimemberikannilaibalikberupa:

    .T.jikadatayangdicariketemu .F.jika datayangdicaritidakketemu

    12. AwalFiledanAkhirFile

    Secaralogika,tabelyangberisisejumlahrecordakandiawalidenganrecordmayayangdisebutBOF(BeginingOfFileAwalFile) dandiakhiridenganrecordmayabernamaEOF(EndOfFile AkhirFile).

    BOF Record1 Record2 Record3 Record4 RecordN EOF

    F FRecordmayadiawaltabel

    Recordmayadiakhirtabel

  • 108

    13.MengenalPernyataanIF

    PernyataanIFmerupakanperintahyangseringkalidilibatkandalampenulisankode.IFmerupakanperintahyangbergunadalammengambilasuatukeputusan.Dalam bentuk pseudocode, barang kali kita akan melakukan suatu tindakan dengankriteriasebagaiberikut:

    Jikapointer tidakmenunjukkeawal file,pindahkanlahpointerrecordke recordsebelumnya.

    Pada contoh ini, tindakanmemindahkan pointer record ke record sebelumnya hanyadilakukanjikapointerrecordtidakberadapadaawalfile(BOF).

    Pseudokode di atas dapat dituangkan ke dalam pernyataan Visual FoxPro sebagaiberikut:

    IF.NOT.BOF()SKIP1

    ENDIF

    Pada pernyataan di atas, .NOT. merupakan salah satu operator logika pada VisualFoxPro. Operator .NOT. berarti tidak. Ekspresi .NOT. BOF() berarti jika BOF()tidakbernilai.T.ataudengankatalainjikapointerrecordtidaksedangmenunjukBOF(awalfile).

    Secaraumum,bentukpernyataanIFadalahsebagaiberikut:

    IF

    ENDIF

    Dalam hal ini, berupa ekspresi logika, yang bernilai .T. (benar) atau .F.(salah). Apabila bernilai .T., maka akandijalankan. Sebaiknya, jika bernilai .F., tidakakandijalankan.

    Selainbentukdiatas,jugaterdapatbentuksepertiberikut:

    IF

  • 109

    ELSE

    ENDIF

    Padabentukini, dijalankanjika bernilai.T. dijalankanjika bernilai.F.

    14.OperatorRelasidanOpertaorLogika

    Operatorrelasidanopertaorlogikamerupakankomponenpentingyangdipakaisebagaikondisi pada pernyataanpernyataan pengambilan keputusan (IF) dan pada beberapapernyataan yang lain. Operatoroperator ini, sebagaimanaoperator yang lain, berupasimbolataukatakunciyangmelaksanakansuatuoperasiterhadapdataatauekspresi.

    Ekspresiyangdilibatkanolehoperatoroperatorinidapatberupa:

    NamaField VariabelMemori Fungsi,ataupun Konstantan

    a. OperasiRelasi

    Operasirelasiadalahoperatoryangdigunakanuntukmembandingkanduabuahekspresibertipe data samadanmenghasilkannilai .T. (benar)atau .F. (salah).Tipe data yangdapatdikenakanpadaoperatorinimeliputi:

    Karakter Numerik Ekspresitanggal

    VisualFoxPromenyediakansejumlahoperatorrelasisepertipadatebel3.1.

  • 110

    Tabel3.1Operatorrelasi

    Operator Keterangan Lebihbesardari= Samadengan== Tepatsamadengan(bermanfaatuntukpembandinganstringkarakter)atau# Tidaksamadengan Lebihbesardariatausamadengan$ Pembandinganstring

    Beberapacontohungkapanyangmelibatkanoperatorrelasidapatdilihatpadatabel3.2.

    Tebl3.2.Contohpembandingandenganmemakaioperatorrelasi

    Ekspresi Hasil Keterangan

    A>B .F. MenuruttabelASCII,AterletaksebelumB,jadinilaiAlebihkecildaripadaBA1 .T. Nilai2memanglebihbesardaripada1Yogya=YOGYA .F. HurupkecilberbedadenganhurupkapitalABCD=ABC .T. JikaSETEXACTdalamkeadaanOFFABCD=ABC .F. JikaSETEXACTdalamkeadaanONABCD==ABC .F. Selalu menghasilkan .F., tidak tergantung pada

    keadaanSETEXACTAB$ABCD .T. StringABadapadaABCDBC$ABCD .T. StringBCadapadaABCDABCD$AB .F. StringABCDtidakadapadastringAB{21/12/2000} >{12/11/2000}

    .T. Tanggal 21 Desember 2000 memang lebihbelakangandaripada12Nopember2000

    b. OperatorLogika

    Operator logika digunakan untuk membandingkan dua buah ekspresi logika danmenghasilkan nilai .T. (benar) atau .F. (salah). Operator logika yang disediakan olehVisualFoxProdapatdilihatpadatabel3.3.

  • 111

    Tabel3.3.OperatorLogika

    Operator Keterangan Format

    .NOT. OperatorTidak

    .NOT.Hasil.T.jika bernilai.F.Hasil.F.jikabernilai.T.

    .AND. OperatorDan

    .AND. Hasil berupa .T. hanya jika kedua bernilai.T.

    .OR. OperatorAtau .OR.Hasilberupa.T.jikaada yang bernilai.T.

    15. FungsiIIF

    FungsibernamaIIF()jugadapatbertindaksepertiperintahIF.Formatfungsiiniadalah:

    IIF(,,)

    Fungsi IIF memberikan nilai jika bernilai .T., atau nilaijika bernilai.F.

    Sebagaicontoh:

    IFTotalPembelian>=100000Diskon=1/10*TotalPembelian

    ELSEDiskon=0

    ENDIF

    Dapatdisederhanakanmenjadi:

    Diskon=IIF(TotalPembelian>=100000,1/10*TotalPembelian,0)

    16. PernyataanDOCASE

    PernyataanDOCASEmerupakan alternatif dari IF.. ELSEIF. Format pernyataan iniadalah:

  • 112

    DOCASECASE

    CASE

    OTHERWISE

    ENDCASE

    Dimana: Bila bernilai .T.,maka saja yang akan

    dijalankan. Bilaibernilai .T.,maka sajayangakan

    dijalankan. hanyaakandijalankansekiranyatidakada

    yangbernilai.T. BagianOTHERWISEbisatidakdisertakan.Jikabagianinitidakdisertakan,dantak

    satupunyangbernilai.T.,makatakadapernyataanyangdieksekusi.

    17.MengenalKotakDialog

    Kotak dialog digunakan untuk memberitahukan sesuatu informasi kepada pemakai,misalnyauntukmenyampaikansuatupesankesalahan.Selainuntukkleperluansepertiini,kotakdialogjugabisadipakaiuntukmelakukansuatukonfirmasiterhadappemakaimisalnya pemakai perlu menjawab Yes atau No. Sebuah kotak dialog paling tidakmempunyaisebuahtomboltekan.

    a. KaidahMESSAGEBOX

    KaidahperintahMessageBoxadalahsebagaiberikut:

    MessageBox(,[,[]]

    Argumenkeduadanketigabisatidakdisertakan.

    Contoh:

    MessageBox("TerimaKasih",1+32, "Selesai")

  • 113

    Hasilnyaadalahsebagaiberikut(Gambar3.1)

    Gambar3.1KotakDialog

    Padacontohini,stringTerimaKasihmerupakanpesanyangditampilkanpadakotakdialog,stringkarakterSelesaisebagaijudulpadakotakdialog,dan1+32menyatakanjeniskotakdialog(termasukikonyangditampilkan).Dalamhaliniangka1menyatakan

    bahwakotakdialogmenampilkanduabuahtomboltekan,yaitutombol

    dantombol ,sedangkan32menyatakanjenisikonyangditampilkan

    b. NilaiuntukmenentukanJenisKotakDialog

    Nilai dasar yang digunakan untukmenentukan jenis kotak dialog ada enammacam,sebagaimanatercantumpadatabel3.4.

  • 114

    Tabel3.4.Nilaiyangmenentukantomboltekanyangditampilkanpadakotakdialog.

    TipeKotak Tomboltombolyangtersedia Bentuk

    0 OK

    1 OK,Cancel

    2 Abort,Retry,Ignore

    3 Yes,No,Cancel

    4 Yes,No

    5 Retry,Cancel

  • 115

    c. MESSAGEBOXTanpaArgumenKetiga

    Bila memanggil MessageBox tanpa menyertakan argumen ketiga, maka yangditampilkanadalahkotakdialogyanghanyaberisitomboltekanOK.Contohnya:

    MessageBox(Pesan,Judul)

    Akanmemberikanhasilsbb.(Gambar3.2)

    d. MESSAGEBOXTanpaArgumenKeduadanKetiga

    Apabila rgumentkeduadanketigaMessageBox tidakdisertakan, judulkotakdialogdiperlakukan seperti jika judul tidak diberikan. Berikut adalah hasil dari perintahMessageBox(Pesan)(lihatgambar3.3)

    e. MenentukanIkonpadaKotakDialog

    MessageBox telah menyediakan empat macam ikon yang bisa kita tampilkan padakotak dialog. Kita dapat menyertakan ikon dengan menambahkan nilainilai yangtercantumpadaTabel3.5.

    Tabel3.3.KotakDialogtanpaargumenkeduadanketiga

    Tabel3.2.KotakDialogtanpaargumenketiga

  • 116

    Tabel3.5.Nilaiuntukmenentukanikonkotakdialog

    NilaiIkon Gambar WarnaIkon

    16 Merah

    32 Hijau

    48 Kuning

    64 Biru

    f. MenentukanTombolDefault

    Bila kotak dialog terdiri lebih dari sebuah tomboltekan, maka tombol terkiri akandijadikansebagaidefault.Seandainyakitamenghendakilain(bukantombolterkiriyangdijadikan sebagai default), kita bisa menambahkan angkaangka berikut ke argumenketigapadaMessageBox.

    256untukmenjadikantombolkeduasebagaidefault 512untukmenjadikantombolpertamasebagaidefault

    Berikutadalahcontohhasildariperintah(lihatgambar3.4)

    MessageBox(Pesan,Judul,1+32+256)

    g. MendeteksiTombolyangdiklikolehPemakai

    Untuk mengetahui tombol pada kotak dialog yang ditekan oleh pemakai, nilaipengembalian dari MessageBox perlu diletakan ke variabel terlebih dahulu. Sebagaicontoh:

    Gbr3.4.KotakDialogdengantombolkeduasebagaidefault

  • 117

    Jawaban=MessageBox(Pesan,Judul,1+32+256)

    Setelah pemakai mengklik salah satu tombol, kode dari tombol bersangkutan akandiletakankevariabeljawaban.Selanjutnyakitatinggalmemeriksaisivariabeltersebut.

    Tabel3.6.mencantumkannilaiyangmewakilitombolyang dipiliholehpemakai.

    Tabel3.6.Kodetombolpadakotakdialog

    Nilai Tombolyangdipilih1 OK2 Cancel3 Abort4 Retry5 Ignore6 Yes7 No

    Untukmenyeleksi tombol yangdipilih,kitabisamenggunakanpernyataan IFataupunDOCASE.

    ContohdenganIF:

    Jawaban=MessageBox(Pesan,Judul,1+32+256)IFJawaban=1&&BerartitomboltombolOkyangdipilih

    *MemprosespesanELSE*Membatalkanperintah

    ENDIF

    h. Informasilebihdarisatubaris

    Untukmengatur informasiyangditampilkanpadakotakdialog yang terdiri lebihdarisatu baris. Caranya, kita perlu menyisipkan kode CHR(13) dan CHR(10). CHR(13)adalah kode carriage return dan CHR(10) adalah kode linefeed. Kedua kode tersebutsecaraberurutanbiasadipakaiuntukmembuatbarisbaru.

  • 118

    Amaticontohperintahberikut:

    MessageBox(Pesanbarispertama+CHR(13)+CHR(10)+Pesanbariskedua,Judul,1+32+256)

    Hasilnyasebagaiberikut(lihatgambar3.5)

    i. KelemahanMESSAGEBOX

    MessageBox tidak memungkinkan kita mengganti keterangan yang terdapat padatombolkotakdialog.Misalnya,kitatidakdapatmengubahkataYesmenjadiYa.

    18. MembuatIndeks

    Indeks pada tabel berguna untuk mempercepat pencarian suatu data. Kecepatanpencariandataberdasarkanindeksakanterasasekalijikajumlahdatasangatbanyak.

    Selainuntukkeperluanmencarisuatudata,indeksmembuatdapatdisajikansecaralogika(tidaksecarafisik),baiksecaraurutnaik(ascending,dariAkeZ)ataupunurutturun(descending,dariZkeA).

    Indeks bisa dibuat dengan menggunakan perintah MODY atau MODIFYSTRUCTUREpadajendelacommand.

    19. PernyataanSETORDER

    Apabila kita membuka suatu tabel, indeks tidak dengan sendirinya digunakan(walaupunindekssecaraotomatisikutdibuka)

    BentukpenulisanSETORDERadalahsbb.:SETORDERTOTAG

    Dalamhalini,adalahfieldyangdijadikansebagaiindeks.

    Gbr.3.5.KotakDialogdenganduabarispesan.

  • 119

    20. PencarianRecorddenganSEEK/FIND

    Pencarian suatu record tertentu dapat dilakukan dengan cepat seandainya file indeksdigunakan. Namun, tentu saja data untuk pencarian record harus sama dengan fieldkunci.BentukpencariandenganSEEKadalahsbb.:

    USEMK.DBFSETORDERTOTAGKODEMKSEEKMK102202?FOUND()

    ?FOUND() adalah perintah untuk mendeteksi/memeriksa apakah data yang dicariditemukanatautidak.Bilahasilnya.T.berartidataditemukan,sedangkanjikahasilnya.F.berartidatatersebuttidakditemukan.

    21. PencariansecaraEksak

    Bilakitabermaksudmencarisuatudatabertipekarakterpadafieldyangtelahdiindeks,kita perlumemperhatikan efek dari keadaan SET EXACT. Bila SET EXACT dalamkeadaanONberartimecaridatayangsamapersisdenganyangdituliskandalamSEEK,sedangkanbilaSETEXACTdalamkeadaanOFF,inibisaberartimencariyanghurupawalnyasepertiyangdituliskandalamSEEK.