Praktek Pembuatan Form di Visual FoxPro
Praktek Pembuatan Form di Visual FoxPro
Materi:
1. Tahapan 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
2
Gambar 1.1.2. Kotak dialog penyimpanan file Project
Gambar 1.1.3. Kotak dialog penyimpanan file Project
3
1.2 Membuat File Form
Kasus 1.2:
Buatkan form untuk mengetahui hasil seleksi penerimaan calon pegawai, dengan
ketentuan sebagai berikut :
Jika nilai akhir minimal 70, maka diterima;
Tapi jika sebaliknya, maka ditolak/gagal.
1. Membuat Form Kosong
a. Klik page Documents pada Project Manager
b. Pilih dan Klik object Form
c. Klik tombol New
d. Pilih dan klik tombol New Form pada kotak dialog New Form (gb. 1.2.1)
Gambar 1.2.1 Kotak Dialog New Form
e. Setelah itu dilayar akan tampil Form kosong seperti pada gambar 1.2.2.
Gambar 1.2.2 Form Kosong
4 117
21. Pencarian secara Eksak
Bila kita bermaksud mencari suatu data bertipe karakter pada field yang telah diindeks,
kita perlu memperhatikan efek dari keadaan SET EXACT. Bila SET EXACT dalam
keadaan ON berarti mecari data yang sama persis dengan yang dituliskan dalam SEEK,
sedangkan bila SET EXACT dalam keadaan OFF, ini bisa berarti mencari yang hurup
awalnya seperti yang dituliskan dalam SEEK.
Gambar 1.2.3 Form Perhitungan Hasil Seleksi I
4. Mengisi Entry Field dengan Formula
a. Double klik Control Text2
b. Cari dan pilih Procedure InteractiveChange
c. Ketik Procedure berikut :
if [Link]>=60
[Link]="Lulus"
else
[Link]="Gagal"
endif
return
116 5
Amati contoh perintah berikut : 5. Simpan Form dengan nama file HasilSeleksi1 (sebaiknya nama file tidak pakai
sepasi)
MessageBox(“Pesan baris pertama”+CHR(13)+CHR(10)+”Pesan baris kedua”, ;
“Judul”, 1+32+256) 6. Uji Form dengan mengklik icon Run pada toolbar Standard
Hasilnya sebagai berikut (lihat gambar 3.5)
1.3 Latihan Membuat Form
Gbr. 3.5. Kotak Dialog dengan
dua baris pesan.
Kasus 1.3.
Buatkan form untuk mencari nilai akhir, angka mutu dan hurup mutu dengan
ketentuan sbb.:
NA = (UTS + UAS * 2 + TGS)/4
NA AM HM
i. Kelemahan MESSAGEBOX 86 100 4 A
71 85 3 B
MessageBox tidak memungkinkan kita mengganti keterangan yang terdapat pada 56 70 2 C
tombol kotak dialog. Misalnya, kita tidak dapat mengubah kata Yes menjadi Ya. 41 55 1 D
0 40 0 E
18. Membuat Indeks 1. Buatkan Form seperti pada gambar 1.3.1.
Indeks pada tabel berguna untuk mempercepat pencarian suatu data. Kecepatan
pencarian data berdasarkan indeks akan terasa sekali jika jumlah data sangat banyak.
Selain untuk keperluan mencari suatu data, indeks membuat dapat disajikan secara
logika (tidak secara fisik), baik secara urut naik (ascending, dari A ke Z) ataupun urut
turun (descending, dari Z ke A).
Indeks bisa dibuat dengan menggunakan perintah MODY atau MODIFY
STRUCTURE pada jendela command.
19. Pernyataan SET ORDER
Apabila kita membuka suatu tabel, indeks tidak dengan sendirinya digunakan
(walaupun indeks secara otomatis ikut dibuka)
Bentuk penulisan SET ORDER adalah sbb.:
SET ORDER TO TAG<nama_indeks>
Dalam hal ini, <nama_indeks> adalah field yang dijadikan sebagai indeks. Gambar 1.3.1 Form Perhitungan Hasil Seleksi II
6 115
f. Menentukan Tombol Default
Bila kotak dialog terdiri lebih dari sebuah tomboltekan, maka tombol terkiri akan
dijadikan sebagai default. Seandainya kita menghendaki lain (bukan tombol terkiri yang
dijadikan sebagai default), kita bisa menambahkan angkaangka berikut ke argumen
ketiga pada MessageBox.
· 256 untuk menjadikan tombol kedua sebagai default
· 512 untuk menjadikan tombol pertama sebagai default
Berikut adalah contoh hasil dari perintah (lihat gambar 3.4)
MessageBox(“Pesan”, ”Judul”, 1+32+256)
Gbr [Link] Dialog dengan
tombol kedua sebagai
default Gambar 1.4.1 Form Perhitungan Upah Harian
g. Mendeteksi Tombol yang diklik oleh Pemakai
Untuk mengetahui tombol pada kotak dialog yang ditekan oleh pemakai, nilai
pengembalian dari MessageBox perlu diletakan ke variabel terlebih dahulu. Sebagai
contoh :
8 113
Tabel 3.2. Kotak Dialog tanpa argumen
2.1 Membuka File Project ketiga
Untuk membuka File Project PRAKVFP yang sudah dibuat pada praktek
sebelumnya, maka lakukan langkah sbb. :
1. Klik menu File
2. Klik Open
3. Cari Folder nama masingmasing di drive O:\AFOX
4.. Pilih dan Double Klik file project PRAKVFP, seperti pada gambar 2.1.1 d. MESSAGEBOX Tanpa Argumen Kedua dan Ketiga
Apabila rgument kedua dan ketiga MessageBox tidak disertakan, judul kotak dialog
diperlakukan seperti jika judul tidak diberikan. Berikut adalah hasil dari perintah
MessageBox(“Pesan”) (lihat gambar 3.3)
Tabel 3.3. Kotak Dialog tanpa argumen
kedua dan ketiga
e. Menentukan Ikon pada Kotak Dialog
MessageBox telah menyediakan empat macam ikon yang bisa kita tampilkan pada
kotak dialog. Kita dapat menyertakan ikon dengan menambahkan nilainilai yang
tercantum pada Tabel 3.5.
Gambar 2.1.1 Kotak Dialog Open File
112 9
1 OK, Cancel
2 Abort, Retry, Ignore Gambar 2.2.1 Kotak Dialog New Form
2. Memberikan Judul Form dan Gambar Latar Form
a. Munculkan Jendela Properties dengan mengklik kanan pada form kosong
b. Pilih dan klik Properties
3 Yes, No, Cancel c. Pilih object Form pada jendela properties
d. Pada baris caption, ketik ENTRY GAJI KARYAWAN
e. Pada baris Picture, pilih gambar latar yang dikehendaki.
3. Membuat Control Question dan Field Entry
a. Munculkan toolbar Form Controler Toolbar dari menu View
4 Yes, No b. Buatkan Question Nama Karyawan, Golongan, Status, Jumlah Anak, Gaji
Pokok, Tunjangan Istri, Tunjangan Anak dan Gaji Total dengan
menggunakan Label dari Form Controler Toolbar
c. Buatkan Field Entry untuk menginput Nama Karyawan, Golongan, Jumlah
Anak, Gaji Pokok, Tunjangan Istri, Tunjangan Anak dan Gaji Total dengan
menggunakan Text Box.
5 Retry, Cancel
4. Membuat Option Group
a. Cari dan Klik control Option Group pada Form Control Toolbar
b. Klik pada form sebelah kanan Status, kemudian berinama ST pada properties.
10 111
c. Ganti Option1 dengan Kawin, dengan cara klik kanan option group kemudian
pilih edit. Hasilnya adalah sebagai berikut (Gambar 3.1)
d. Klik Option1, kemudian pada baris Caption di jendela properties ketik Kawin.
e. Klik Option2, kemudian ganti dengan Belum Kawin
f. Hasilnya lihat gambar 2.2.2.
Gambar 3.1 Kotak Dialog
Pada contoh ini, string “Terima Kasih” merupakan pesan yang ditampilkan pada kotak
dialog, string karakter “Selesai” sebagai judul pada kotak dialog, dan 1+32 menyatakan
jenis kotak dialog (termasuk ikon yang ditampilkan). Dalam hal ini angka 1 menyatakan
bahwa kotak dialog menampilkan dua buah tombol tekan, yaitu tombol
dan tombol , sedangkan 32 menyatakan jenis ikon yang ditampilkan
b. Nilai untuk menentukan Jenis Kotak Dialog
Nilai dasar yang digunakan untuk menentukan jenis kotak dialog ada enam macam,
sebagaimana tercantum pada tabel 3.4.
Gambar 2.2.2 Form Entry Gaji Karyawan
5. Mengisi Control Spinner Gol dengan Formula
a. Double klik Control Gol
b. Cari dan pilih Procedure InteractiveChange
c. Ketik Procedure berikut :
gol=[Link]
do case
case gol=1
gapok=200000
case gol=2
gapok=400000
case gol=3
110 11
gapok=600000
DO CASE case gol=4
CASE <kondisi_1> gapok=800000
<pernyataan_pernyataan_1> otherwise
CASE <kondisi_2> gapok=0
<pernyataan_pernyataan_2> endcase
OTHERWISE st=[Link]
<pernyataan_pernyataan_n> if st=1
ENDCASE [Link]=.t.
[Link]=.t.
Dimana : [Link]=.t.
· Bila <kondisi_1> bernilai .T., maka <pernyataan_pernyataan_1> saja yang akan ti=0.5*gapok
dijalankan. else
· Bilai <kondisi_2> bernilai .T., maka <pernyataan_pernyataan_2> saja yang akan [Link]=.f.
dijalankan. [Link]=.f.
· <pernyataan_pernyataan_n> hanya akan dijalankan sekiranya tidak ada <kondisi> [Link]=.f.
yang bernilai .T. ti=0
· Bagian OTHERWISE bisa tidak disertakan. Jika bagian ini tidak disertakan, dan tak [Link]=0
satupun <kondisi> yang bernilai .T., maka tak ada pernyataan yang dieksekusi. endif
ja=[Link]
if ja>3
17. Mengenal Kotak Dialog ta=0.2*gapok*3
else
Kotak dialog digunakan untuk memberitahukan sesuatu informasi kepada pemakai, ta=0.2*gapok*ja
misalnya untuk menyampaikan suatu pesan kesalahan. Selain untuk kleperluan seperti endif
ini, kotak dialog juga bisa dipakai untuk melakukan suatu konfirmasi terhadap pemakai; gatot=gapok+ti+ta
misalnya pemakai perlu menjawab Yes atau No. Sebuah kotak dialog paling tidak [Link]=gapok
mempunyai sebuah tombol tekan. [Link]=ti
[Link]=ta
a. Kaidah MESSAGEBOX [Link]=gatot
retu
Kaidah perintah MessageBox adalah sebagai berikut :
6. Mengisi Control Option Group StatusK dengan Formula
MessageBox(<pesan>, [<tipekotakdialog>,[<judul>]] a. Double klik Control StatusK
b. Cari dan pilih Procedure InteractiveChange
Argumen kedua dan ketiga bisa tidak disertakan. c. Isi Procedure InteractiveChange object ST dicopy dari Procedure
Interactivechange object Gol
Contoh :
7. Mengisi Control Field Entry Text2 dengan Formula
MessageBox("Terima Kasih",1+32, "Selesai") a. Double klik Control Text2
12 109
15. Fungsi IIF
Fungsi bernama IIF() juga dapat bertindak seperti perintah IF. Format fungsi ini adalah :
IIF(<kondisi>,<ekspresi_1>,<ekspresi_2>)
Fungsi IIF memberikan nilai <ekspresi_1> jika <kondisi> bernilai .T., atau nilai
<ekspresi_2> jika <kondisi> bernilai .F.
Sebagai contoh :
IF TotalPembelian >= 100000
Diskon = 1/10 * TotalPembelian
ELSE
Diskon = 0
ENDIF
Gambar 2.3.1 Form PilihGambar Dapat disederhanakan menjadi :
2. Buatkan Option Group, kemudian berinama PIL. Button Countnya ganti 6
3. Ganti Option1 s/d Option6 dengan Gambar1 s/d Gambar6 Diskon = IIF(TotalPembelian >= 100000, 1/10 * TotalPembelian, 0)
4. Buatkan Image untuk menampilkan gambar, sebanya 4 buah, yang diletakan
disebelah kanan, kanan atas, atas dan kiri atas option group (seperti pada gambar
2.3.1) 16. Pernyataan DO CASE
5. Buatkan CheckBox Kiri Atas kemudian berinama kiri, CheckBox Tengah Atas
kemudian berinama tengah, dan CheckBox Kanan Atas kemudian berinama kanan) Pernyataan DO CASE merupakan alternatif dari IF.. ELSEIF. Format pernyataan ini
adalah :
108 13
Selain bentuk di atas, juga terdapat bentuk seperti berikut :
if [Link]=1
[Link]=[Link] IF <kondisi>
else <pernyataanpernyataan_1>
[Link]="" ELSE
endif <pernyataanpernyataan_2>
ENDIF
10. Simpan Form dengan nama File PilihGB
11. Uji Form. Pada bentuk ini,
· <pernyataanpernyataan_1> dijalankan jika <kondisi> bernilai .T.
· <pernyataanpernyataan_2> dijalankan jika <kondisi> bernilai .F.
2.4 Tugas 2
1. Buatkan Form seperti pada gambar 2.4.1 14. Operator Relasi dan Opertaor Logika
Operator relasi dan opertaor logika merupakan komponen penting yang dipakai sebagai
kondisi pada pernyataanpernyataan pengambilan keputusan (IF) dan pada beberapa
pernyataan yang lain. Operatoroperator ini, sebagaimana operator yang lain, berupa
simbol atau kata kunci yang melaksanakan suatu operasi terhadap data atau ekspresi.
Ekspresi yang dilibatkan oleh operatoroperator ini dapat berupa:
· Nama Field
· Variabel Memori
· Fungsi, ataupun
· Konstantan
a. Operasi Relasi
Operasi relasi adalah operator yang digunakan untuk membandingkan dua buah ekspresi
bertipe data sama dan menghasilkan nilai .T. (benar) atau .F. (salah). Tipe data yang
dapat dikenakan pada operator ini meliputi :
Gambar 2.4.1. Form Menghitung Angka · Karakter
· Numerik
2. Formula / ketentuan perhitungan adalah sbb. :
a=0 · Ekspresi tanggal
b=0
Visual FoxPro menyediakan sejumlah operator relasi seperti pada tebel 3.1.
c=0
106 15
“ Jika pointer tidak menunjuk ke awal file, pindahkanlah pointer record ke record Jika option tambah dipilih, maka formulanya :
sebelumnya. “ Hasil = a + b + c
Jika option Kurang dipilih, maka formulanya :
Pada contoh ini, tindakan memindahkan pointer record ke record sebelumnya hanya Hasil = a b c
dilakukan jika pointer record tidak berada pada awal file (BOF). Jika option Kali dipilih, maka :
Jika yang check box hanya 100 dan 10, maka formulanya
Pseudokode di atas dapat dituangkan ke dalam pernyataan Visual FoxPro sebagai Hasil = a * b
berikut : Jika yang check box hanya 10 dan 2, maka formulanya
Hasil = b * c
IF .NOT. BOF() Jika yang check box hanya 100 dan 2, maka formulanya
SKIP –1 Hasil = a * c
ENDIF Jika yang check box 100, 10 dan 2, maka formulanya
Hasil = a * b * c
Pada pernyataan di atas, .NOT. merupakan salah satu operator logika pada Visual
FoxPro. Operator .NOT. berarti “tidak”. Ekspresi .NOT. BOF() berarti “jika BOF() 3. Selamat mencoba !
tidak bernilai .T. atau dengan kata lain “jika pointer record tidak sedang menunjuk BOF
(awal file).
Secara umum, bentuk pernyataan IF adalah sebagai berikut :
IF <kondisi>
<pernyataanpernyataan>
ENDIF
Dalam hal ini, <kondisi> berupa ekspresi logika, yang bernilai .T. (benar) atau .F.
(salah). Apabila <kondisi> bernilai .T., maka <pernyataanpernyataan> akan
dijalankan. Sebaiknya, jika <kondisi> bernilai .F., <pernyataanpernyataan> tidak
akan dijalankan.
16 105
Visual FoxPro juga menyediakan perintah yang berguna untuk mencari suatu record
Materi : tertentu. Misalnya, perintah untuk menempatkan pointer record yang bagian Mata
1. Tahap pembuatan form Kuliahnya berisi COBOL .
2. Penggunaan fasilitas Olecontrol
3. Penggunaan Perintah DO WHILE LOCATE FOR NAMA_MK=”COBOL”
4. Penggunaan Perintah FOR NEXT
5. Menyimpan, Menguji dan Menutup form Dalam hal ini LOCATE adalah perintah un tuk mencari suatu record dan FOR
NAMA_MK=”COBOL” adalah kriteria pencarian.
3.1 Membuka File Project
Untuk membuka File Project PRAKVFP yang sudah dibuat pada praktek Untuk mencari record berikutnya yang cocok, kita cukup memberikan perintah
sebelumnya, maka lakukan langkah sbb. : CONTINUE. Apabila hasil dari perintah LOCATE atau CONTINUE berupa :
1. Klik menu File
2. Klik Open End of Locate scope.
3. Cari Folder nama masingmasing do drive O:\
4.. Pilih dan Double Klik file project PRAKVFP, seperti pada gambar 3.1.1 Hal ini menandakan bahwa tidak ada lagi data yang cocok.
Untuk mengtahui yang dicari dengan LOCATE ketemu atau tidak, kita bisa
menggunakan fungsi FOUND(). Fungsi ini memberikan nilai balik berupa :
· .T. jika data yang dicari ketemu
· .F. jika data yang dicari tidak ketemu
12. Awal File dan Akhir File
Secara logika, tabel yang berisi sejumlah record akan diawali dengan record maya yang
disebut BOF (Begining Of File – Awal File) dan diakhiri dengan record maya bernama
EOF (End Of File – Akhir File).
Gambar 3.1.1 Kotak Dialog Open File
F F
Record maya Record maya
di awal tabel di akhir tabel
3.2 Aplikasi DO WHILE
1. Membuat Form Kosong
a. Klik page Documents pada Project Manager
104 17
Bentuk GOTO adalah :
GOTO [RECORD] <nomor record>
Kata RECORD yang ditulis dalam tanda [] bisa diberikan ataupun tidak, tanpa
mengubah makna. Perlu diketahui, jika kata RECORD disertakan, tanda [] tidak perlu
ditulis.
5. Membuat OleControl
a. Klik Menu Tools
18 103
Pada Modul praktek ke II kita sudah mempelajari membuat kontrol teks, yang b
ertuliskan Kode Mata Kuliah, Nama Mata Kuliah dan Kredit, dan Field Entri (berupa
kotak kosong yang tidak berisi apaapa)
6. Mengenal Pointer Record
Perhatikan hasil perintah seperti BROWSE, setiap record mempunyai nomor record.
Nomor record ini dimulai dari 1. Nomoor inilah yang dipegang pada pointer record.
Misalnya, jika pointer record berisi 2, artinya record sekarang adalah record bernomor2.
Perlu diketahui, pada saat suatu tabel dibuka, pointer record dengan sendirinya
menunjuk ke record bernomor 1 (jika tabel paling tidak mempunyai sebuah record).
7. Memperoleh nomor record sekarang
Untuk mengetahui nomor record sekarang (atau dengan kata lain melihat isi pointer
Gambar 3.2.2 Kotak dialog option record), bisa digunakan perintah RECNO().
Pada saat perancangan, form tampak tersusun atas sejumlah titik. Hal ini bermanfaat
sebagai patokan dalam mengatur tata letak kontrol (misalnya tombol tekan atau bahkan
teks). Sudah tentu, pada saat aplikasi dijalankan, titiktitik tersebut tidak kelihatan.
Dengan kata lain, tanda titiktitik hanya muncul saat perancangan.
Jendela Form Control (lihat gambar 1a) merupakan jendela yang membuat berbagai
kontrol yang tersedia pada Visual FoxPro. Kita perlu memilih kontrol yang terdapat
pada jendela ini sebelum menempatkannya pada form.
Gambar 1a. Form Control
Jendela Properties merupakan tempat untuk mengatur halhal yang berkaitan dengan
suatu kontrol yang terdapat pada form. Jendela ini mengandung lima buah tab, yaitu :
a. All
b. Data
c. Methods
d. LayOut Gambar 3.2.3 Form Membuat Angka Berurut
e. Other
k. Ganti namenya dengan Ctrl
Kelima tab ini terlihat pada bagian atas jendela properties.
Tab properties berisi properti dari kontrol, misalnya ukuran font, jenis font, nama 6. Mengisi Control Tombol Proses dengan Formula
kontrol, dan sebagainya. Seperti pada gambar 2a a. Double klik Control Tombol Proses
b. Cari dan pilih Procedure Clic pada object Proses
c. Ketik Procedure berikut :
local a, b, c
if [Link]>0 .or. [Link]>0 .or. ;
[Link]>0
[Link]=.f.
a=[Link]
b=[Link]
c=[Link]
do while a<=c
[Link]=a
a=a+b
n=(100/c)*a
Gambar 2a. Jendela Properties if a<=c
20 101
Pada tahap penulisan kode, dituliskan kodekode yang dilekatkan pada kontrolkontrol
yang dipakai. Sebagai gambaran, Jika operator menekan suatu tombol yang kita
3.3 Aplikasi FOR NEXT buatkan, maka kode yang kita buatkan harus menampilkan suatu tindakan. Penulisan
kode ini dilakukan dengan menggunakan editor teks yang tersedia pada paket visual
1. Buka File Form URUTANGKA1 FoxPro.
2. Simpan dengan perintah Save As dan berinama URUTANGKA2
3. Double Click tombol Proses, kemudian prosedurnya edit menjadi sbb. :
4. Perangkat untuk Pembuatan Program
local a, b, c, n, i
if [Link]>0 .or. [Link]>0 .or. ; Bila bermaksud membuat suatu program dengan Visual FoxPro, akan selalu melibatkan
[Link]>0 tiga jendela berikut :
[Link]=.f. a. Jendela Form
a=[Link] b. Jendela Form Control
b=[Link] c. Jendela Properties
c=[Link]
for i=a to c step b Form merupakan jendela yang akan muncul sebagai latar belakang dari tampilan suatu
[Link]=a aplikasi. Sebuah aplikasi dapat memiliki banyak form, namun paling tidak melibatkan
a=a+b sebuah form. Itulah sebabnya, tidak berlebihan jika form dianggap sebagai tulang
n=(100/c)*a punggung aplikasi Visual FoxPro. Formlah yang menjadi antarmuka dengan pemakai
if a<=c aplikasi.
[Link]=n
100 21
endif
e. Date for x=1 to 10000000 step 1
Menyatakan tanggal. Panjangnya selalu 8 karakter. Format tanggal dapat diatur next
sesuai dengan format di Indonesia (tanggalbulantahun) melalui SET DATE. next
Bentuk tanggal yang bisa di set, diantaranya : else
American Format : mm/dd/yy messagebox("Start, Step dan Stop harus diisi..!",0,"Perhatian ..!")
British/French Format : dd/mm/yy [Link]()
Italian Format : ddmmyy retu
German Format : [Link] endif
Ansi Format : yymmdd [Link]=.t.
retu
f. DateTime
Menyatakan tanggal dan waktu. Panjangnya selalu 8 karakter. Type DateTime 4. Simpan Form dengan nama File URUTANGKA2
memakai format HHMMSS untuk menyimpan data jam. Jangkauan tanggal 5. Uji Form dengan mengklik icon Run / !.
01/01/100 sampai 31/12/9999 dan jangkauan jam adalah 12:00:00 AM sampai
11:59:59 PM.
3.4 Tugas 3
g. Double
Type ini menyimpan data numeric 18 digit dalam format yang telah di kompres dan 1. Klik page Code pada project manager
memerlukan 8 byte. Type ini mempunyai kelebihan dalam hal banyaknya angka 2. Pilih dan klik option Program, kemudian klik tombol New
desimal yang ditangani dengan range –4.94065648541247E324 sampai 3. Ketik program berikut :
1.79769313486232E. function terbilang
parameter numerik
h. Intiger private hasil,ulang,uang,kesatu,kedua,ketiga,cangka
Untuk menyatakan bilangan (yang nantinya dapat diproses untuk perhitungan). Type private cangka0,cangka1,cangka2,cangka3,cangka4,cangka5
ini tida mengandung pecahan. Panjang maksimal 4. private cangka6,cangka7,cangka8,cangka9
private satu,dua,tiga,gabung,sen1,sen2
i. Logical
Menyatakan logika benar atau salah. Isinya Y jika benar (True) atau N jika salah hasil=""
(False). Misalnya dapat dipakai untuk menyatakan jenis kelamin (Y = pria, N = uang=str(numerik,15,2)
wanita). Pasa saat memasukan data hurufhuruf berikut (kecil ataupun kapital) bisa kesatu=1
digunakan Y,T,F atau N. T dianggap Y dan F dianggap N. kedua=2
ketiga=3
j. Memo cangka0=" "
Berguna untuk menyatakan suatu keterangan yang panjangnya lebih dari 254 cangka1="Satu "
character. Misalnya, isi surat. Ukuran memo dapat bervariasi, disesuaikan dengan cangka2="Dua "
ukuran sebuah blok. Defaulnya setiap blok foxpro berukuran 64 byte. Misalnya cangka3="Tiga "
untuk menampung data 72 byte diperlukan 2 blok. cangka4="Empat "
cangka5="Lima "
cangka6="Enam "
22 99
cangka7="Tujuh "
cangka8="Delapan " LANDASAN TEORI
cangka9="Sembilan "
gabung=" " 1. Pengertian Database
for ulang=1 to 4 Database adalah suatu pengorganisasian data dengan tujuan agar data dapat diakses
satu=substr(uang,kesatu,1) dengan mudah. Sebagai contoh, database dapat diterapkan untuk mengelola
dua=substr(uang,kedua,1) kepegawaian atau akunting. Pada kenyataannya, umumnya sebuah database terdiri atas
tiga=substr(uang,ketiga,1) sejumlah tabel.
gabung=satu+dua+tiga
if val(satu)=1 Sebagai gambaran, database tentang penggajian bisa mengandung tabel karyawan, tabel
hasil=hasil+"Seratus " golongan, tabel absensi, tabel jabatan dan tabel transasksi penggajian. Tabel karyawan
else dapat dilukiskan sebagai kumpulan kartu, dengan masingmasing kartu mewakili data
if val(satu)>1 seorang karyawan.
hasil=hasil+cangka&satu+"Ratus "
endif
endif 2. Type Data Visual FoxPro
DO CASE
CASE VAL(DUA) = 1 Dalam Visual FoxPro 6.0 ini terdapat tiga belas jenis data, diantaranya:
DO CASE
CASE VAL(TIGA)=0 a. Character
HASIL=HASIL + "Sepuluh " Type ini merupakan type bawaan. Digunakan untuk menyatakan informasi yang
CASE VAL(TIGA)=1 tidak untuk dihitung dan juga bukan berupa tanggal. Misalnya untuk nama pegawai
HASIL=HASIL + "Sebelas " atau nama barang. Bisa mengandung simbol * atau +. Type ini dapat menampung 1
OTHER sampai 254 character.
HASIL=HASIL + ALLTRIM(CANGKA&TIGA)+;
"Belas " b. Curency
ENDCASE Untuk menyatakan karakterkarakter yang dipakai untuk symbol mata uang. Angka
CASE VAL(DUA) > 1 yang dapat ditangani data ini adalah $922 triliun. Defaultnya mempunyai 4 tempat
HASIL=HASIL + CANGKA&DUA + "Puluh "+; desimal dan memerlukan tempat sebesar 8 byte di dalam table.
CANGKA&TIGA
CASE VAL(DUA)=0 .AND. VAL(TIGA) > 0 c. Numeric
IF (ulang=3 .AND. GABUNG="001") .OR. ; Untuk menyatakan bilangan (yang nantinya dapat diproses untuk perhitungan). Type
(ulang=3 .AND. GABUNG=" 1") ini bisa mengandung bagian pecahan. Panjang maksimal 20 digit dengan maksimum
HASIL=HASIL+"Seribu " 19 tempat desimal, termasuk tanda plus atau minus dan juga tempat untuk bagian
ELSE pecahan.
HASIL=HASIL+CANGKA&TIGA
ENDIF d. Float
ENDCASE Merupakan type untuk data yang dinyatakan dengan notasi ilmiah (misalnya
1.6E+02). Sifatsifat yang lain sama dengan type Numerik.
98 23
DO CASE
CASE ulang=1 .AND. VAL(GABUNG)>0
HASIL=HASIL+"Milyar "
CASE ulang=2 .AND. VAL(GABUNG)>0
HASIL=HASIL+"Juta "
CASE ulang=3 .AND. VAL(GABUNG)>0
IF GABUNG="001" .OR. GABUNG=" 1"
HASIL=HASIL+" "
ELSE
HASIL=HASIL+"Ribu "
ENDIF
ENDCASE
kesatu=kesatu+3
kedua=kedua+3
ketiga=ketiga+3
next ulang
sen1=substr(uang,14,1)
Gambar 13.4.1 Build Option sen2=substr(uang,15,1)
if len(hasil)>1
hasil=hasil+"Rupiah "
endif
DO CASE
CASE VAL(SEN1)=0 .AND. VAL(SEN2)>0
HASIL=HASIL+CANGKA&SEN2+"Sen"
CASE VAL(SEN1) = 1
DO CASE
CASE VAL(SEN2)=0
HASIL=HASIL+"Sepuluh Sen"
CASE VAL(SEN2)=1
HASIL=HASIL+"Sebelas Sen"
CASE VAL(SEN2)>1
HASIL=HASIL+ALLTRIM(CANGKA&SEN2)+;
"Belas Sen "
ENDCASE
CASE VAL(SEN1) > 1
HASIL = HASIL + CANGKA&SEN1 + "Puluh " + ;
CANGKA&SEN2 + "Sen"
ENDCASE
RETURN HASIL
24 97
13.3 Membuat File Program
4. Uji Program di atas dengan form berikut :
1. Klik page Code
2. Pilih dan klik option Program, kemudian klik tombol New
3. Ketikan program berikut :
CLOSE DATABASE all
CLEAR ALL
CLOSE ALL
SET TALK OFF
SET STAT OFF
SET AUTOSAVE ON
SET CENTURY ON
SET DATE BRITISH
5. Procedure InteractiveChange pada Object Text1, adalah sbb.: SET DEFA TO D:\SIPB\DATA
PUSH MENU _MSYSMENU
set defa to o:\AFOX\susi MODI WINDOWS SCREEN TITLE 'DUTA FAMILIY MOTOR'
set procedure to terbilang WITH _SCREEN
a=terbilang([Link]) .VISIBLE=.T.
[Link]=a .WINDOWSTATE=2
retu .picture='D:\SIPB\Gb\[Link]'
ENDWITH
RELEASE ALL
DO d:\pembukuan\prg\[Link]
READ EVENTS
QUIT
4. Simpan program dengan nama SIPB
5. Jalankan program dengan mengklik tombol Run
13.4 Compiler File
1. Klik kanan pada File Program SIPB, kemudian pilih Set Mine
2. Klik tombol Build
3. Klik Build Action : Win32 executable / CIM server (exe), seperti pada gambar
13.4.1.
96 25
5.. Buatkan Form dengan nama DAFTAR, desain form dapat dilihat pada gambar 4.1.1.
b. Klik Table PSWD, kemudian klik tombol Browse yang terletak sebelah
kanannya.
c. Setelah kebuka, klik menu Table, kemudian pilih dan klik Append New Record
(Ctrl + Y)
d. Isi nmid dengan nama depan anda
e. Isi Pswd dengan kode sandi anda
2. Membuat Form untuk Login
1. Buatkan Form seperti pada gambar 4.4.1
Gambar 4.1.1 Form Kelola Pendaftaran Siswa
6. Listing Program :
a. Pbject FORM1 Procedure LOAD Gambar 4.4.1 Form Entry Login dan Password
SET DEFAULT TO d:\psb\data
SET DATE BRITISH 2. Object Form1 Procedure ACTIVATE
SET CENTURY ON set exact on
CLOSE DATABASES set defa to D:\SIPB\DATA
CLOSE INDEXES if used('pswd')
IF USED("NODAF") use in pswd
USE IN NODAF endif
ENDIF use pswd
IF USED("Sekolah") set order to tag nmid
USE IN Sekolah set order to tag pswd
ENDIF [Link]=""
IF USED("CaSis") [Link]=""
USE IN CaSis RETURN
ENDIF
94 27
Gambar 13.2.1 Struktur Table PSWD
28 93
h. Object TAMBAH Procedure CLICK
PUBLIC N
SELECT NODAF
GO bottom
IF EOF()
APPEND BLANK
n=1 9. Buatkan Sub Menu Laporan sbb. :
ELSE
n=[Link]+1
ENDIF
th1=[Link]
th2=[Link]+1
ta=RIGHT(STR(th1,4),2)+RIGHT(STR(th2,4),2)
IF n<10
vno=ta+"00"+LTRIM(STR(n,3))
ELSE
92 29
i. Object SIMPAN Procedure CLICK
IF EMPTY([Link]) .or. ;
EMPTY([Link]) .or. ;
EMPTY([Link])
MESSAGEBOX("Isi data dengan lengkap !",0,"Perhatian...")
Gambar 13.1.1 Kotak dialog project manager [Link]
RETURN
4. Ketik menu berikut : ENDIF
SELECT CaSis
LOCATE FOR Nama=TRIM([Link]) .and. ;
AsalSek=TRIM([Link])
IF FOUND()
MESSAGEBOX("Maaf transaksi tidak dapat diproses !"+CHR(13)+;
"Data tersebut sudah tercatat...",0,"Perhatian...")
[Link]
RETURN
Gambar 13.1.2 Menu Utama ENDIF
LOCATE FOR NoDaf=SPACE(7)
5. Klik File pada baris pertama IF ! FOUND()
6. Klik tombol create, kemudian buatkan sub menu berikut : APPEND BLANK
ENDIF
30 91
tgl=[Link] SELECT LAPJUAL
bln=[Link] APPEND FROM lapjual1 FOR LEFT(kodebrg,1)='B'
thn=[Link] SELECT pelanggan
vtgl=LTRIM(STR(tgl,2))+"/"+LTRIM(STR(bln,2))+"/"+STR(thn,4) SET ORDER TO TAG NOPEL
REPLACE tgldaf WITH CTOD(vtgl) SELECT LAPJUAL
REPLACE NoDaf WITH [Link] SET RELATION TO NOPEL INTO PELANGGAN
REPLACE Nama WITH [Link] *repo form d:\SIPB\prg\lapharianBB preview
REPLACE asalsek WITH [Link] ELSE
REPLACE nilai WITH [Link] SELECT LAPJUAL
APPEND FROM lapjual1 FOR LEFT(kodebrg,1)='S'
SELECT NODAF SELECT pelanggan
GO bottom SET ORDER TO TAG NOPEL
REPLACE no WITH N SELECT LAPJUAL
[Link] SET RELATION TO NOPEL INTO PELANGGAN
MESSAGEBOX("Penyimpanan sudah dilakukan...",0,"Perhatian...") repo form d:\SIPB\prg\laphariansp preview
[Link](.f.) ENDIF
[Link](.t.) return
[Link]=.f.
[Link]=.t.
[Link]=.f. 3. Simpan Form dengan nama File LAPHARIANSP, kemudian jalankan form.
[Link]=.t.
[Link]=.f.
[Link]=.t. 12.3 Tugas 12
[Link]=.t.
RETURN
Buatkan Report Laporan Harian pembelian (disain report mirip dengan Report Laporan
Harian Penjualan)
j. Object BATAL Procedure CLICK
[Link]
[Link](.f.)
[Link](.t.)
[Link]=.f.
[Link]=.t.
[Link]=.f.
[Link]=.f.
[Link]=.f.
[Link]=.f.
[Link]=.t.
[Link]=DAY(DATE())
[Link]=month(DATE())
[Link]=year(DATE())
RETURN
90 31
2. Buatkan Form dengan nama TU, dengan disain sbb :
2. Listing Program :
a. Object Form1 Procedure ACTIVATE
close data
close index
set date british
set cent on
if used("barang")
use in barang
endif
if used("faktur")
use in faktur
endif
86 35
Baris SubGrup NoFak :
Jumlah Penjualan : [Link]
Format : Format Expression : 999,999,999
Aligment : Right
Calculate : Calculation Type : SUM
Reset Based On : Group:[Link]
Diskon : [Link] 2. Buatkan Report dengan nama DAFCASIS, sbb :
Format : Format Expression : 99,999,999
Aligment : Right
Calculate : Calculation Type : SUM
Reset Based On : Group:[Link]
Penjualan Bersih :
Format : Format Expression : 999,999,999
Aligment : Right
Calculate : Calculation Type : SUM
Reset Based On : Group:[Link]
Baris Summery atau SubGroup TglTran :
Jumlah Penjualan : [Link]
Format : Format Expression : 999,999,999
Aligment : Right
Calculate : Calculation Type : SUM
Reset Based On : Group:[Link]
36 85
Materi :
Membuat Laporan Harian Penjualan
12.1 Disain Laporan Harian
1. Copykan File Free Table TMPJUAL ke LAPJUAL dan LAPJUAL1
2. Perbaiki idexnya, samakan dengan file TMPJUAL
3. Buatkan Report Laporan Harian dengan disain sbb:
4. Listing Program :
a. Object FORM1 Procedure ACTIVATE
SET DEFAULT TO d:\psb\data
IF USED("CaSis")
USE IN CASIS
ENDIF
IF USED("TmpCaSis")
USE IN TMPCASIS
ENDIF
SELECT A
USE casis
SET ORDER TO TAG NILAI
SELECT B
USE tmpcasis
SET ORDER TO TAG NILAI
RETURN
84 37
Materi :
1. Membuat Databse
2. Membuat Table
3. Membuat Form Transaksi Sederhana
6.1 Bahan Praktek 6
1. Buatkan Project File dengan nama RENANG
2. Buatkan Database dengan nama DATARENANG
3. Buatkan Table dengan nama RENANG, struktur table sbb :
4.. Buatkan Form dengan nama RENANG, desain form dapat dilihat pada gambar
6.1.1:
5. Desain Formula :
a. Ketentuan Tarip Renang :
Hari Kerja (Senin s/d Jumat) sebesar Rp. 10.000,
Pada hari Week End (Sabtu dan Minggu) sebesar Rp. 15.000,
b. Ketentuan Diskon :
Untuk rombongan minimal 10 orang mendapat diskon sebesar 10 % dari total
transaksi.
Untuk rombongan di bawah 10 orang atau peroangan tidak mendapatkan
diskon.
c. Jumlah Pembayaran = Jumlah Transaksi – Diskon
40 81
3. Buatkan Tabel PEMBELIAN pada Database SIPB dengan struktur file sbb:
4. Buatkan Tabel NoFakBeli pada Free Table dengan struktur file sbb:
Gambar 6.1.1 Form Kelola Biaya Renang
5. Buatkan Tabel TMPBELI pada Free Table dengan struktur file sbb:
6. Listing Program :
a. Object Form1 Procedure LOAD
SET Date BRITISH
SET DEFAULT TO d:\foxpro\nama
CLOSE DATABASES
IF USED("renang")
USE IN renang
ENDIF
USE renang
RETURN
b. Object Form1 Procedure UNLOAD
CLOSE DATABASES
RETURN
c. Object Form1 Procedure AKTIFKAN
PARAMETERS X
[Link]=x
[Link]=x
[Link]=x
[Link]=x
return
80 41
[Link]()
[Link]() d. Object Form1 Procedure KOSONGKAN
RETURN [Link]=CTOD(" / / ")
[Link]=""
aa. Object TIMER1 Procedure TIMER [Link]=""
[Link]=TIME() [Link]=0
[Link]=RGB(RAND()*255,RAND()*255,; [Link]=0
RAND()*255) return
a=[Link]
[Link]=right(a,LEN(a)1)+left(a,1) e. Object Form1 Procedure TAMPILKAN
[Link]=[Link]
[Link]=[Link]
10.4 Tugas 10 [Link]=[Link]
[Link]=[Link]
1. Buatkan Tabel PEMASOK pada Database SIPB dengan struktur file sbb: [Link]=[Link]
return
f. Object Form1 Procedure KENDALI
PARAMETERS Y
[Link]=Y
[Link]=Y
RETURN
g. Object Form1 Procedure ACTIVATE
[Link]
[Link](.f.)
[Link](.t.)
[Link]=.t.
[Link]=.f.
[Link]=.t.
2. Buatkan Tabel FAKTURB pada Database SIPB dengan struktur file sbb: [Link]=.t.
[Link]=.t.
return
q. Object KEMBALIAN Procedure CLICK
do form d:\SIPB\prg\[Link]
[Link]=.f.
[Link]=.f.
[Link]=.f.
[Link]=.f.
[Link]=.t.
[Link]=.f.
[Link]=.f.
[Link]=.t.
[Link]=.f.
[Link]=.f.
[Link](.t.)
[Link](.f.)
thisform.aktif1(.f.)
46 75
if [Link]>0
Gambar 8.1.1 Tabel Barang select faktur
locate for nofak=trim([Link])
4. Buatkan Tabel Pelanggan pada Database SIPB dengan Struktur File sbb : if ! found()
append blank
endif
repl nofak with [Link]
repl totjualsp with [Link]
repl tgltran with [Link]
repl nopel with [Link]
repl diskon with [Link]
repl bayar with [Link]
repl piutang with [Link]
select tmpjual
go bottom
repl nofak with [Link]
repl totjualsp with [Link]
Gambar 8.1.2 Tabel Pelanggan repl tgltran with [Link]
74 47
sele penjualan
loca for [Link]=TRIM([Link]);
.and. nofak=TRIM([Link])
IF FOUND()
ljml=[Link]*[Link]
dele FOR [Link]=TRIM([Link]);
.and. nofak=TRIM([Link])
ELSE Gambar 8.1.3 Tabel Faktur
ljml=0
ENDIF 6. Buatkan Tabel Penjualan pada Database SIPB dengan Struktur File sbb :
[Link]=[Link]ljml
[Link]=[Link]
sele tmpjual
SET DELETED ON
DELETE
[Link] Gambar 8.1.4 Tabel Penjualan
[Link]=0
ENDIF 7. Buatkan Tabel TMPBRG pada FREE TABLE dengan Struktur File sbb :
IF [Link]=0
[Link](.f.)
thisform.aktif2(.f.)
thisform.aktif3(.f.)
[Link]=.f.
[Link]=.f.
[Link]=.f.
[Link]=.t.
[Link]=.f.
[Link]=.t.
[Link]=.f.
[Link](.t.)
[Link]
else
[Link](.f.)
thisform.aktif2(.t.)
thisform.aktif3(.t.)
[Link]=.f. Gambar 8.1.5 Tabel TMPBRG
48 73
RETURN ENDIF
ENDIF if USED("TMPBRG")
sele barang USE IN TMPBRG
locate for namabrg=TRIM([Link]) ENDIF
if [Link]<[Link] * Membuka Tabel
messagebox("Stock Barang Kurang",0+64,"Periksa Stock Barang") SELECT A
[Link]=[Link] USE TMPBRG
[Link]() SELECT B
return USE PENJUALAN
endif SELECT C
jml=[Link]*[Link] use barang
[Link]=[Link]+jml set order to tag kodebrg
RETURN
select tmpjual
if [Link]>0 .and. [Link]>0 b. Object Form1 Procedure UNLOAD
append blank close data
REPLACE nofak with [Link] close index
REPLACE tgltran with [Link] return
REPLACE nopel with [Link]
REPLACE kodebrg with [Link] c. Object Form1 Procedure Kendali
REPLACE namabrg with [Link] parameter x
REPLACE qty with [Link] [Link]=x
REPLACE hrgjual with [Link] [Link]=x
REPLACE jumlah with [Link]=x
[Link]*[Link] [Link]=x
SET DELETED on RETURN
endif
[Link]() d. Object Form1 Procedure Kosongkan
sele penjualan [Link]=""
if [Link]>0 .and. [Link]>0 [Link]=0
appe blank [Link]=0
REPLACE Nofak with [Link] [Link]=0
REPLACE kodebrg with [Link] [Link]=0
REPLACE qty with [Link] RETURN
REPLACE jumlah with
[Link]*[Link] e. Object Form1 Procedure NonText1
ENDIF PARAMETERS keadaan
[Link]=keadaan
sele barang [Link]=keadaan
locate for namabrg=TRIM([Link]) [Link]=keadaan
if [Link]>0 .and. [Link]>0
50 71
[Link]=keadaan [Link]
[Link]=keadaan [Link]=date()
RETURN [Link]=.f.
[Link]=.f.
f. Object Form1 Procedure Tampilkan [Link]=.t.
[Link]=[Link] [Link]=.f.
[Link]=[Link] [Link]=.f.
[Link]=[Link] [Link]=.f.
[Link]=[Link] [Link]=.f.
[Link]=[Link] [Link]=.f.
[Link]=[Link] [Link](.F.)
RETURN [Link](.t.)
thisform.aktif1(.t.)
g. Object Form1 Procedure ACTIVATE thisform.aktif2(.f.)
[Link]=.f. thisform.aktif3(.f.)
thisform.nontext1(.f.) [Link]=.t.
[Link](.t.) [Link]
[Link]=.t. RETURN
[Link]=.t.
[Link]=.f. l. Object CARI Procedure CLICK
[Link]=.f. SELECT pelanggan
[Link]=.f. LOCATE FOR nopol=RTRIM([Link])
[Link]=.f. IF ! FOUND()
[Link]=.f. MESSAGEBOX("Data tidak ditemukan !",0,"Perhatian...")
[Link]() [Link]
[Link]() RETURN
[Link]=.t. endif
RETURN [Link]=[Link]
[Link]=[Link]
g. Object TAMBAH Procedure CLICK thisform.aktif2(.t.)
[Link]=.t. return
thisform.nontext1(.f.)
[Link](.f.) m. Object HITUNG Procedure CLICK
[Link]=.f. if EMPTY([Link])
[Link]=.f. messagebox("Anda Harus klik dulu tombol tambah [+],;
[Link]=.f. sebelum memulai transaksi!",0,"Perhatian...")
[Link]=.t. [Link]=.f.
[Link]=.f. [Link]=.t.
[Link]=.t. [Link]=.t.
[Link]=.f. [Link]
70 51
[Link]() vhargadsr=0
[Link]() endif
[Link]=.f. select tmpjual
[Link]=.t. REPLACE namabrg with vnamabrg
[Link]=.t. REPLACE hargadsr with vhargadsr
[Link]=.f. REPLACE hrgjual WITH jumlah/qty
[Link]=.f. skip
[Link]=.f. enddo
[Link]=.f. REPLACE ALL NoFak WITH [Link]
[Link]=.f. REPLACE ALL tgltran WITH [Link]
[Link]=.f. REPLACE ALL Nopel WITH [Link]
thisform.nontext1(.t.) GO BOTTOM
[Link](.f.) REPLACE totjualsp with [Link]
[Link]=.t. REPLACE diskon with [Link]
[Link]() REPLACE bayar with [Link]
return REPLACE Piutang with [Link]
else [Link]=[Link]
[Link]=.f. [Link]=[Link]
[Link]=.f. [Link]=[Link]
[Link]=.t. [Link]=[Link]
[Link]=.f. [Link]=[Link]
[Link]=.f. GO TOP
[Link]=.t. [Link]()
[Link]=.f. [Link]=.t.
[Link]=.f. [Link]=.f.
[Link]=.t. [Link]=.f.
thisform.nontext1(.f.) [Link]=.f.
[Link](.t.) [Link]=.t.
[Link]() [Link]=.f.
[Link]() [Link]=.t.
[Link]=.f. [Link]=.t.
return [Link](.t.)
endif [Link](.f.)
else thisform.aktif1(.f.)
[Link]=.f. thisform.aktif2(.f.)
[Link]=.f. thisform.aktif3(.f.)
[Link]=.t. [Link]=.f.
[Link]=.f. RETURN
[Link]=.t.
[Link]=.f.
[Link]=.f.
68 53
use in pelanggan [Link]=.t.
endif [Link]()
if used("faktur") [Link]()
use in faktur RETURN
endif
if used("penjualan") k. Object HAPUS Procedure CLICK
use in penjualan SELECT PENJUALAN
endif LOCATE FOR KODEBRG=TRIM([Link])
if used("nofakjual") IF FOUND()
use in nofakjual messagebox("Sorry Record ini tidak bisa dihapus ?";
ENDIF ,0,"Barang tsb sudah digunakan dalam transaksi... ")
if used("tmpbrg") RETURN
use in tmpbrg ENDIF
ENDIF SELECT barang
if used("tmpjual") LOCATE FOR KODEBRG=TRIM([Link])
use in tmpjual ln=RECNO()
ENDIF ljawab=messagebox("Anda Yakin ?",4+32+512,;
select 1 "Record ini mau dihapus !")
use barang if ljawab=6
set order to tag kodebrg DELETE FOR KODEBRG=TRIM([Link])
set order to tag namabrg set dele on
select 2 ENDIF
use pelanggan goto ln
set order to tag nopel [Link]()
set order to tag namapel [Link]()
select 3 RETURN
use faktur
set order to tag nofak l. Object KELUAR Procedure CLICK
select 4 jawab=messagebox("Anda Yakin ?",4+32,;
use penjualan "Mau Keluar dari Entry Data...")
set order to tag nofak if jawab=6
select 5 SELECT BARANG
use nofakjual set dele off
select 6 PACK
USE tmpbrg [Link]()
SELECT 7 endif
USE tmpjual RETURN
RETURN
m. Object LIHAT Procedure CLICK
DO FORM d:\SIPB\Prg\[Link]
RETURN
56 65
8.3 Tugas 8
1. Buatkan Form Untuk Mengelola Data Pelanggan dengan disain seperti pada Gambar
8.3.1.
Gambar 9.2.1 Form LIHATBRG
b. Object KELUAR Procedure CLICK
[Link]
c. Object CETAK Procedure CLICK
SELECT tmpbrg
DELETE ALL
PACK
IF [Link]=1
APPEND FROM d:\SIPB\data\[Link] for LEFT(kodebrg,1)="B"
SET ORDER TO TAG NAMABRG
GO TOP
n=1
DO WHILE ! EOF()
REPLACE NO WITH n
Gambar 8.3.1 Disain Form Kelola Data Pelanggan
n=n+1
SKIP
ENDDO
REPORT FORM d:\SIPB\Prg\LAPBUBUT Preview
ELSE
IF [Link]=2
APPEND from d:\SIPB\data\[Link] for LEFT(kodebrg,1)="S"
SET ORDER TO TAG NAMABRG
GO TOP
n=1
DO WHILE ! EOF()
REPLACE NO WITH n
n=n+1
SKIP
60 61