MODUL MICROSOFT VISUAL FOXPRO 6.0
Oleh : Aslam Fatkhudin, S.Kom Memulai Program Microsoft Visual FoxPro 6.0:
Cara Pertama :
• Double klik shortcut MS Visual FoxPro 6.0 yang terdapat pada desktop. Cara Kedua :
• Klik tombol START All Program Microsoft Visual Studio 6.0 Microsoft Visual FoxPro 6.0.
Cara Ketiga :
• Double klik file MS Visual FoxPro yang telah dibuat yang disimpan pada media penyimpanan.
Maka akan tampil seperti gambar di bawah
Klik close this screen untuk menutup jendela welcome. Tampil Project Manager
Langkah pertama untuk membuat suatu program database adalah dengan membuat project. Caranya dengan :
1. Mengklik FileNew. 2. Tampil Kotak Dialog New.
3. Lalu pilih ProjectKlik New.
4. Beri nama Project tersebut sesuai dengan yang dikehendaki.
Selanjutnya buat database itu sendiri dimana di dalamnya terdapat tabel-tabel yang diperlukan untuk menyimpan data-data yang ada. Adapun caranya adalah :
1. Pada Project Manager seperti yang tampak pada gambar di atas kita buka menu Data dengan mengklik tanda + yang terdapat disamping Data, didalamnya terdapat sub menu Database.
2. Klik pada sub menu Database tersebut lalu klik New.
3. Tampil kotak dialog New Database yang terdapat dua pilihan, yaitu : Databse Wizard (membuat database secara otomatis) dan New Database (membuat database secara manual). Pada pembelajaran kali ini kita pilih New Database. Selesai kita membuat Database kita buat tabel.
Selesai membuat tabel kita buat Relationships
Langkah-langkah membuat Tabel :
1. Pada Project Manager pilih sub menu Data. 2. Klik FreeTables.
3. Klik New tampil Kotak Dialog New Table.
4. Klik New Table tanpil perintah untuk memberi nama tabel dan menyimpan. 5. Buat Field dan tipe data yang dibutuhkan.
6. Klik OK.
Langkah-langkah membuat Relationship/Queries :
1. Pada Project Manager Pilih sub menu Data2. Klik Quries
3. Klik New Tampil Kotak Dialog New Query
4. Klik New Query tampil Query Designer dan Add Table or View 5. Klik tabel yang dikehendaki lalu klik Add
6. Setelah selesai memasukkan semua tabel yang dikehendaki, tutup kotak dialog Add Table or View dengan mengklik close pada kotak dialog tersebut
7. Atur Posisi tabel yang ada di kotak dialog Query Designer dengan cara mengklik drag (klik tahan geser pada title tabel-nya).
8. Klik tahan Field yang sama untuk dipasangkan pada Tabel yang lain. 9. Simpan Queries tersebut
Selesai membuat Relationships kita buat form.
Langkah-langkah membuat form untuk menginputkan data :
1. Pastikan kita telah membuat tabel sebagai tempat untuk menampung data.
Misal : kita telah membuat tabel mahasiswa dengan nama tbMahasiswa.dbf dengan
2. Pastikan kita ingat field-field (name, type, width) yang ada pada tabel.
3. Buat Form yang isinya memuat object-object yang sesuai dengan field-field yang terdapat pada tabel.
Misal seperti yang tampak pada gambar di bawah ini.
4. Object-object yang kita tempatkan pada form di atas, untuk lebih mudah dalam mengingat maupun menelusuri apabila kita ingin mengedit, namanya diubah sesuai dengan objek untuk field pengisianya. Misal objek txtbox untuk field “nim” kita beri nama “txtNIM”.
5. Untuk mengganti text pada Option1/Option2 agar sesuai dengan yang kita inginkan, maka kita klik kanan lalu pilih edit, kemudian kita atur pada properti “Caption”.
6. Untuk mengisi text pada Combo Box, maka kita klik kanan lalu pilih Builder, tampil kotak dialog Combo Box Builder, pastikan pilihan pada “1. List Item”. Pada Fill the List with: pilih “Data Entered by hand”, lalu ketikkan pada Column1 pilihan-pilihan yang kita kehendaki. Klik OK.
7. Atur property Object Grid untuk Delete Mark menjadi False (agar tidak bisa dihapus melalui Object Grid), Read Only menjadi True (agar Object Grid hanya bisa dibaca) dan Record Mark menjadi False (agar tidak bisa ditandai melalui Object Grid).
8. Tulis rumus-rumusnya.
Object : Form1
Procedure : Activate
public pw as string {karena kita membuat memasukkan object Optiongroup, maka kita mendeklarasikan pilihannya tersebut dengan nama pw sebagai string}
pw = "wanita" {dimana apabila pilihan pw tersebut tidak kita klik, maka secara otomastis pilihan akan jatuh pada “wanita”}
thisform.txtNIM.setfocus {pada waktu form dijalankan, kursor aktif pada txtNIM}
Object : txtNIM
Procedure : Valid
local xNIM
xNIM = thisform.txtNIM.value set order to NIM
if len (alltrim(xNIM))>10 {jika pengisian NIM lbh 10 digit,
messagebox ("NIM tdk boleh dari 10 digit",0+16,"check") muncul kotak pesan}
return .f.
else {selain itu jika pengisian NIM krg
if len (alltrim(xNIM))<1 dari 1 maka,
messagebox ("NIM tdk boleh kosong",0+16,"check") {muncul kotak pesan}
return .f. endif
endif
seek xNIM {mencari NIM}
if found() {jika ditemukan maka,
messagebox ("NIM sudah ada",0+16,"Ganti NIM") {muncul kotak pesan}
set order to return .f. else set order to return .t. endif
Object : Option1
Procedure : click
Pw = “Pria” {jika Option1 yang terdapat pada Optiongroup kita click, maka akan terpilih “Pria”}
Object : Option2
Procedure : click
Pw = “Wanita” {jika Option1 yang terdapat pada Optiongroup kita click, maka akan terpilih “Wanita”}
Object : cmdAwal
Procedure : click
Go Top {menuju ke data awal pada Grid} Thisform.grdtbMahasiswa.setfocus
Object : cmdBerikutnya
Procedure : click
Skip {menuju ke data berikutnya dimana kursor aktif Thisform.grdtbMahasiswa.setfocus berada pada Grid}
Object : cmdSebelumnya
Procedure : click
Skip -1 {menuju ke data sebelumnya dimana kursor aktif Thisform.grdtbMahasiswa.setfocus berada pada Grid}
Object : cmdAkhir
Procedure : click
Go Bottom {menuju ke data terakhir pada Grid} Thisform.grdtbMahasiswa.setfocus
Object : cmdSimpan
Procedure : click
local xnim, xNAMA, xAlamat, xTelp, xHp, xJurusan
xNIM = thisform.txtNIM.value {bahwa txtNIM sebagai xNIM} xNAMA = thisform.txtNAMA.value {bahwa txtNAMA sebagai xNAMA} xJurusan = thisform.Combo1.value {bahwa Combo1 sebagai xJurusan} xAlamat = thisform.txtAlamat.value {bahwa txtAlamat sebagai xAlamat} xTelp = thisform.txtTelp.value {bahwa txtTelp sebagai xTelp} xHp = thisform.txtHp.value {bahwa txtHP sebagai xHp} append blank {menginputkan data}
replace tbMahasiswa -> nim with xNIM {memindah ke tbMahasiswa pada Field nim dengan data yang kita inputkan pada xNIM / txtNIM}
replace tbMahasiswa -> nama with xNAMA replace sex with pw
replace tbMahasiswa -> jurusan with xJurusan replace tbMahasiswa -> alamat with xAlamat replace tbMahasiswa -> telp with xTelp replace tbMahasiswa -> hp with xHp
thisform.grdtbMahasiswa.refresh {Grid grdtbMahasiswa refresh}
with thisform {mengosongkan semua field setelah kita .txtNIM.value="" mengklik tombol cmdSimpan}
.txtNama.value="" .txtAlamat.value="" .txtTelp.value="" .txtHp.value="" endwith
Object : cmdBatal
Procedure : click
with thisform {mengosongkan semua field setelah kita .txtNIM.value="" mengklik tombol cmdBatal}
.txtAlamat.value="" .txtTelp.value="" .txtHp.value="" endwith
Object : cmdKeluar
Procedure : click
Langkah-langkah membuat form untuk mengedit data :
1. Buat Form misal seperti yang tampak pada gambar di atas.
2. Object-object yang kita tempatkan pada form di atas, untuk lebih mudah dalam mengingat maupun menelusuri apabila kita ingin mengedit, namanya diubah sesuai dengan fungsinya. 3. untuk lebih mudah dan lebih cepat dalam membuat object-object label dan textbox inputan,
langkahnya dengan cara klik kanan pada area form yang kosong lalu pilih Data Environment.
Klik tahan pada Fields, tarik ke area form yang ingin ditempati, lalu lepaskan.
4. Tambahkan Optiongroup2 (Sex) dan Combo1 (Jurusan) lalu atur property Visible-nya menjadi False (agar tidak bisa terlihat pada waktu form dijalankan) serta tempatkan seperti format form di atas.
5. Edit Caption Optiongroup1 (Cari) dan Optiongroup2 (Sex) - Option1 dan Option2 - sesuai dengan format diatas / yang kita inginkan. (caranya seperti kita membuat pada Form Inputan di atas).
6. Atur juga Combo Boxnya (caranya seperti kita membuat pada Form Inputan di atas). 7. Atur pula property object Grid seperti pada form inputan.
8. Atur properti Visible untuk tombol Simpan dan Batal menjadi False. 9. Tulis rumus-rumusnya:
Object : Form1
Procedure : Activate
public pw as string {karena kita membuat memasukkan object Optiongroup, maka kita mendeklarasikan pilihannya tersebut dengan nama pw sebagai string}
pw = "wanita" {dimana apabila pilihan pw tersebut tidak kita klik, maka secara otomastis pilihan akan jatuh pada “wanita”}
thisform.txtNIM.setfocus {pada waktu form dijalankan, kursor aktif pada txtNIM}
Object : cmdCari
Procedure : click
if thisform.optiongroup1.value=1 then set order to nim
set exact on seek alltrim(thisform.txtCari.value) if found() then thisform.txtCari.value=nim endif thisform.refresh()
else thisform.optiongroup1.value=2 then set order to nama
set exact on seek alltrim(thisform.txtCari.value) if found() then thisform.txtCari.value=nama endif thisform.refresh() endif
Object : Grid1
Procedure : AfterRowColChange
LPARAMETERS nColIndex with thisform .txtNim.refresh .txtNama.refresh .txtSex.refresh .txtJurusan.refresh .txtAlamat.refresh .txtTelp.refresh .txtHp.refresh endwith
Object : txtNIM
Procedure : Valid
local xNIM
xNIM = thisform.txtNIM.value set order to NIM
if len (alltrim(xNIM))>10 {jika pengisian NIM lbh 10 digit,
messagebox ("NIM tdk boleh dari 10 digit",0+16,"check") muncul kotak pesan}
return .f.
else {selain itu jika pengisian NIM krg
if len (alltrim(xNIM))<1 dari 1 maka,
messagebox ("NIM tdk boleh kosong",0+16,"check") {muncul kotak pesan}
return .f. endif
endif
seek xNIM {mencari NIM}
messagebox ("NIM sudah ada",0+16,"Ganti NIM") {muncul kotak pesan} set order to return .f. else set order to return .t. endif
Object : Option1
(pada Optiongroup2/Sex)Procedure : click
Pw = “Pria” {jika Option1 yang terdapat pada Optiongroup kita click, maka akan terpilih “Pria”}
Object : Option2
(pada Optiongroup2/Sex)Procedure : click
Pw = “Wanita” {jika Option1 yang terdapat pada Optiongroup kita click, maka akan terpilih “Wanita”}
Object : cmdAwal
Procedure : click
Go Top {menuju ke data awal pada Grid} Thisform.grdtbMahasiswa.setfocus
Object : cmdBerikutnya
Procedure : click
Skip {menuju ke data berikutnya dimana kursor aktif Thisform.Grid1.setfocus berada pada Grid}
Object : cmdSebelumnya
Procedure : click
Skip -1 {menuju ke data sebelumnya dimana kursor aktif Thisform.Grid1.setfocus berada pada Grid}
Object : cmdAkhir
Procedure : click
Go Bottom {menuju ke data terakhir pada Grid} Thisform.Grid1.setfocus
Object : cmdEdit
Procedure : click
with thisform .cmdEdit.visible=.f. .cmdSimpan.visible=.t. .cmdBatal.visible=.t. .txtNim.enabled=.t. .txtNama.enabled=.t. .txtSex.visible=.f. .Optiongroup2.visible=.t. .txtJurusan.visible=.f. .combo1.visible=.t. .txtAlamat.enabled=.t. .txtTelp.enabled=.t. .txtHp.enabled=.t. endwith
Object : cmdSimpan
Procedure : click
local xnim, xNAMA, xAlamat, xTelp, xHp local xJurusan
xNIM = thisform.txtNIM.value xNAMA = thisform.txtNAMA.value
xJurusan = thisform.Combo1.value xAlamat = thisform.txtAlamat.value xTelp = thisform.txtTelp.value xHp = thisform.txtHp.value
{tidak ada append blank karena fungsi dari append blank untuk memasukan data baru} replace tbMahasiswa -> nim with xNIM
replace tbMahasiswa -> nama with xNAMA replace sex with pw
replace tbMahasiswa -> jurusan with xJurusan replace tbMahasiswa -> alamat with xAlamat replace tbMahasiswa -> telp with xTelp replace tbMahasiswa -> hp with xHp thisform.Grid1.refresh with thisform .cmdEdit.visible=.t. .cmdSimpan.visible=.f. .cmdBatal.visible=.f. .txtNim.enabled=.f. .txtNama.enabled=.f. .txtSex.visible=.t. .optiongroup2.visible=.f. .txtJurusan.visible=.t. .combo1.visible=.f. .txtAlamat.enabled=.f. .txtTelp.enabled=.f. .txtHp.enabled=.f. endwith
Object : cmdBatal
Procedure : click
with thisform .cmdEdit.visible=.t. .cmdSimpan.visible=.f. .cmdBatal.visible=.f. .txtNim.enabled=.f. .txtNama.enabled=.f. .txtSex.visible=.t. .optiongroup2.visible=.f. .txtJurusan.visible=.t. .combo1.visible=.f. .txtAlamat.enabled=.f. .txtTelp.enabled=.f. .txtHp.enabled=.f. endwith
Object : cmdHapus
Procedure : click
set delete on dele
skip
thisform.grid1.refresh thisform.grid1.setfocus
Object : cmdKeluar
Procedure : click
Langkah-langkah membuat form untuk menginputkan data sewa (RELASI):
1. Pastikan kita telah membuat tabel sebagai tempat untuk menampung data.
Misal : kita telah membuat tabel mahasiswa dengan nama tbSewa.dbf dengan field-field seperti tampak pada gambar di bawah.
2. Pastikan kita ingat field-field (name, type, width) yang ada pada tabel.
3. Buat Form yang isinya memuat object-object yang sesuai dengan field-field yang terdapat pada tabel.
4. Object-object yang kita tempatkan pada form di atas, untuk lebih mudah dalam mengingat maupun menelusuri apabila kita ingin mengedit, namanya diubah sesuai dengan objek untuk field pengisianya. Misal objek txtbox untuk field “Kd_Sewa” kita beri nama “txtKdSewa”. 5. Untuk mengatur pada Combo Box NIM dan Kode Buku, maka kita klik kanan lalu pilih
Builder, tampil kotak dialog Combo Box Builder, pastikan pilihan pada “1. List Item”. Pada Fill the List with: pilih “Fields from a table or view”, lalu pilih table yang kita kehendaki pada “Database and Tables”, secara otomatis menampilkan field-field-nya pada “Available fields”. Pilih field yang kita kehendaki. Klik OK.
6. Label-label yang terdapat di bawah Data Peminjam dan Data Buku akan tampil secara otomatis jika kita memilih NIM atau Kode Buku pada Combo Box-nya.
7. Text Box untuk “Tanggal Kembali (txtTglKembali)” pilihan Enabled pada propertiesnya di
False.
8. Atur property Object Grid untuk Delete Mark menjadi False (agar tidak bisa dihapus melalui Object Grid), Read Only menjadi True (agar Object Grid hanya bisa dibaca) dan Record Mark menjadi False (agar tidak bisa ditandai melalui Object Grid).
9. Tulis rumus-rumusnya.
Object : Form1
Procedure : Activate
thisform.txtKdSewa.setfocus thisform.txtTglPinjam.value=date() thisform.txtTglKembali.value=date()
Object : txtKdSewa
Procedure : Valid
sele tbSewa local xKdSewa
xKdSewa = thisform.txtKdSewa.value set order to Kd_sewa
if len (alltrim(xKdSewa))>10
messagebox ("Kode Sewa tdk boleh dari 10 digit",0+16,"check") return .f.
else
if len (alltrim(xKdSewa))<1
messagebox ("Kode Sewa tdk boleh kosong",0+16,"check") return .f.
endif endif
seek xKdSewa if found()
messagebox ("Kode Sewa sudah ada",0+16,"Ganti") set order to return .f. else set order to return .t. endif
Object : cmbNIM
Procedure : InteractiveChange
sele tbmahasiswa with thisform .lblNama.caption=nama .lblSex.caption=sex .lblJurusan.caption=jurusan .lblAlamat.caption=alamat .lblTelp.caption=telp .lblHp.caption=hp endwith
Object : cmbBuku
Procedure : InteractiveChange
sele tbBuku with thisform .lblJudul.caption=judul .lblPengarang.caption=pengarang .lblPenerbit.caption=penerbit endwith
Object : txtTglPinjam
Procedure : InteractiveChange
thisform.txtTglKembali.value=thisform.txtTglPinjam.value+3
Object : cmdSimpan
Procedure : click
sele tbSewa
local xkdSewa, xNIM, xBuku, xTglPinjam, xTglKembali xkdSewa = thisform.txtKdSewa.value xNIM = thisform.cmbNIM.value xBuku = thisform.cmbBuku.value xTglPinjam = thisform.txttglPinjam.value xTglKembali = thisform.txtTglKembali.value append blank
replace tbSewa -> kd_Sewa with xKdSewa replace tbSewa -> NIM with xNIM
replace tbSewa -> Kode with xBuku
replace tbSewa -> Tgl_Pinjam with xTglPinjam replace tbSewa -> Tgl_Kembali1 with xTglKembali
thisform.Grid1.refresh with thisform .txtKdSewa.value="" .cmbNIM.value="" .cmbBuku.value="" .txttglPinjam.value=date() .txtTglKembali.value=date() endwith
Object : cmdBatal
Procedure : click
with thisform .txtKdSewa.value="" .cmbNIM.value="" .cmbBuku.value="" .txttglPinjam.value=date() .txtTglKembali.value=date() endwith
Object : cmdKeluar
Procedure : click
Thisform.release
Object : cmdAwal
Procedure : click
go top
thisform.grid1.refresh thisform.grid1.setfocus
Object : cmdSebelumnya
Procedure : click
skip -1
thisform.grid1.refresh thisform.grid1.setfocus
Object : cmdSesudah
Procedure : click
skip
thisform.grid1.refresh thisform.grid1.setfocus
Object : cmdAkhir
Procedure : click
go bottom
thisform.grid1.refresh thisform.grid1.setfocus