PEMROGRAMAN FOXPRO 2.
6
1. Pengenalan
Database...............................................................................................................
1.1 membuat dan modifikasi
table......................................................................................
1.2 mengisi dan menampilkan
data.....................................................................................
1.3 navigasi data dan
pencarian..........................................................................................
1.4 merubah dan menghapus
data......................................................................................
2. Pengenalan Foxpro
Programming.............................................................................................
2.1
variable....................................................................................................................
...
2.2 basic input
output.........................................................................................................
3. Control Flow en
Looping.........................................................................................................
3.1 ifelse
endif............................................................................................................
3.2do case
endcase.....................................................................................................
3.3 for
endfor...............................................................................................................
3.4 do while
enddo.......................................................................................................
4. Manipulasi
Database................................................................................................................
4.1
tampil......................................................................................................................
....
4.2
tambah....................................................................................................................
....
4.3
cari...........................................................................................................................
...
4.4
edit..........................................................................................................................
....
4.5
hapus.......................................................................................................................
...
5. Menu dan
Report.....................................................................................................................
5.1 menu
wizard................................................................................................................
5.2 report en
pencetakan...................................................................................................
1. PENGENALAN DATABASE
Sebelum memulai belajar bahasa pemrograman Foxpro 2.6, terlebih dahulu
kita kenali environment dari FoxPro 2.6 itu sendiri. Berikut adalah tampilah awal
program FoxPro 2.6 :
Gambar 1. Tampilan Awal FoxPro 2.6
Pertama kali masuk program FoxPro 2.6 anda akan di hadapkan pada
tampilan dengan menu dan Command Window. Anda bisa mengetikkan
perintah2 foxpro di dalam command window secara interaktif. Mulai dari
mengeset variabel2 system hingga perintah2 yang ada dalam FoxPro.
Nah pertama2 sebelum memulai bekerja dengan FoxPro 2.6 yang perlu
anda lakukan adalah mengeset direktori kerja anda dengan perintah berikut
dalam Command window :
SET DEFAULT TO <DIR>
Contoh :
Misal Direktori kerja anda di C:\FoxProg (karena foxpro 2.6 masih bekerja di dos
yang tidak mengenal penamaan file atau directory yang melebihi 8 karakter,
maka sebaiknya anda membuat nama direktori tidak lebih dari 8 karakter dan
usahakan jangan ada spasi) maka perintah untuk men set default direktorinya
adalah sebagai berikut.
SET DEFAULT TO C:\FoxProg
Perintah dalam FoxPro 2.6 tidak Case Sensitive sehingga perintah yang anda
ketikkan menggunakan huruf kapital maupun bukan akan dianggap
sama. Ada beberapa perintah untuk mengeset variable environment yang lain
yang sering digunakan yaitu :
Command
Keterangan
SET DATE [TO] AMERICAN Menset input dan output tanggal
| ITALIAN | BRITISH |DMY dengan pilihan :
| MDY | YMD
AMERICAN
= mm/dd/yy
ITALIAN
BRITISH
= dd-mm-yy
= dd/mm/yy
Atau
langsung
menggunakan
format DMY or MDY or YMD dengan
D=Day; M=Month en Y=Year
SET CENTURY ON | OFF
Untuk mengeset input dan output
tahun
dengan
ON
berarti
menggunakan 4 digit sedangkan
OFF berarti 2 digit.
Secara
default
nilainya
OFF
sehingga kalau menginputkan nilai
09 maka akan dianggap 1909
bukan 2009. Dengan demikan
alangkah baiknya jika di ON.
SET STATUS ON | OFF
Memunculkan
dan
menyembunyikan baris status
Untuk mengetahui perintah2 yang lainnya anda bisa melihat di HELP
dengan cara menekan tombol <F1> atau mengetikkan perintah HELP di
Command Window.
Gambar 2. Jendela HELP
1.1 MEMBUAT DAN MODIFIKASI TABLE
Membuat Tabel
FoxPro 2.6 adalah bahasa pembrograman yang dikhususkan untuk
mengolah data, jadi sebelum masuk ke bahasa pemrograman itu sendiri terlebih
dahulu kita akan belajar membuat table. Perintah untuk menciptakan sebuah
table baru di FoxPro 2.6 adalah :
CREATE nama_tabel.dbf
Dimana nama_tabel.dbf adalah nama table yang akan dibuat. Seperti directori
untuk nama tabel ini juga gunakan tidak lebih dari 8 karakter tanpa spasi, jika
ekstensi tidak di tuliskan maka secara default foxpro akan memberikan ekstensi
dbf. Sebenarnya anda bisa menentukan sendiri ekstensi yang anda gunakan,
namun disarankan untuk tetap menggunakan extensi defaultnya FoxPro 2.6 yaitu
dbf.
Misal untuk membuat tabel dengan nama t_buku.dbf Anda bisa mengetikkan
perintah :
CREATE t_buku
Dan berikutnya akan dihadapkan dengan jendela struktur seperti berikut :
Gambar 1.1 Struktur Tabel
Keterangan :
-
Field Name : Nama Field (kolom dalam sebuah data)
Type : Type Field
o Character : Menyimpan data Karakter mulai A-Z 0-9 beserta simbol
dengan Width 1 - 254 Karakter.
o Numeric :Menyimpan data Numeric dengan lebar 1 20 termasuk
tanda
+
/
beserta
Desimal.
o Date : Menyimpan data Tanggal
o Logical
: Menyimpan data Boolean (True/False)
o Memo : Sama dengan type Character namun dapat memuat data
yang lebih besar.
o Float : Sama dengan Numeric biasanya bilangan pecahan. Dengan
lebar 1 20 termasuk tanda +/- beserta decimal place.
Index Tag : Untuk menentukan index / pengurutan.
Isikan Field2 dari tabel yang akan dibuat jika sudah selesai pilih <OK> atau
Tekan <CTRL+W>untuk menyimpan.
See Also :
MODIFY STRUCTURE
Untuk merubah atau menambah
struktur tabel.
DISPLAY STRUCTURE
Menampilkan
kedalam layar
USE nama_tabel.dbf
Mengaktifkan tabel, jika tidak
disebutkan nama tabelnya maka
struktur
tabel
di anggap me non aktifkan tabel.
CLOSE DATABASE ALL
Menutup
terbuka.
semua
tabel
yang
1.2 mengisi dan menampilkan data
Mengisi Data
Untuk mengisi data kedalam tabel ada berbagai macam cara, bisa secara
manual mengisi satu persatu, atau berdasarkan kalkulasi dan atau bisa juga dari
tabel lain. Untuk mengisi data secara manual diinputkan satu persatu perintah
yang
biasa
digunakan
adalah
APPEND\INSERT
Gambar 1.2 Window Append\Insert
Isikan datanya dan tekan <CTRL + W> untuk menyimpan datanya.
See Also :
APPEND FROM nama_tabel Mengkopi dari tabel
[WHERE
[nama_tabel] ke dalam tabel
kondisi1,kondisi2]
yang aktif dengan syarat nama
dan tipe datanya sama, jika
syarat [WHERE] tidak diisi maka
semua data di [nama_tabel]
akan dikopi.
INSERT INTO nama_tabel Mengkopi
ke
[nama_tabel]
[nama_field1, nama_field2)] dengan field1, fields2 dst (jika
VALUES (nilai1, nilai2)
tidak disebutkan maka dianggap
semua fields) dengan values
(nilai1, nilai2)
Menampilkan Data
Seperti menambah data, menampilkan data juga ada berbagai macam
cara. Seperti berikut :
LIST [field1,field2] [FOR
kondisi1,kondisi2]
Menampilkan isi tabel kedalam
layar,
dengan
parameter
field1,field2 untuk menentukan
nama field apa saja yang di
tampilkan
dan
untuk
menampilkan data tertentu anda
bisa menambahak parameter
FOR kondisi1,kondisi2 jika
tidak
disebutkan
berarti
menampilkan semuanya.
DISPLAY [ALL]
DISPLAY
digunakan
untuk
menampilkan data pada record
yang aktif saja sedangkan untuk
menampilkan semua data anda
bisa menambahkan paramater
ALL
BROWSE [FIELDS
field1,field2] [FOR
kondisi1,kondisi2]
[NOAPPEND] [NOEDIT]
[FREEZE fieldtofreeze]
[PARTITION nwidth]
Perintah BROWSE inilah yang
paling sering digunakan untuk
menampilkan data. Adabanyak
fitur yang ditawarkan oleh
perintah Browse ini. Paramater
FIELDS
field1,field2..
untuk
menentukan hanya field1 dan
field2 saja yang ditampilkan, jika
data yang ditampilkan ingin di
filter anda bisa menambahkan
paramater
FOR
kondisi..
NOAPPEND untuk menghindari
penambahan
data
(secara
default anda bisa menambah
data melalui jendela browse ini
dengan
menekan
tombol
<CTRL+N>)
NOEDIT
untuk
mencegah
pengeditan
data,
FREEZE untuk memberi efek
terkunci selain field yang di
sebutkan, dan PARTITION untuk
membagi menjadi 2 bagian
dengan nwidth adalah lebar
bagian
yang
kiri.
Seperti
biasanya
jika
tidak
diberi
paramater
maka
akan
ditampilkan semua data.
Gambar 1.2.1 Tampilan Data Menggunakan LIST Atau DISPLAY ALL
Gambar 1.2.2 Tampilan Data Menggunakan Perintah BROWSE
1.3 navigasi data dan pencarian
Navigasi Data
Navigasi data di dalam FoxPro 2.6 anda bisa menggunakan perintah :
GO no_rekord
Dimana no_rekord adalah nomor rekord atau baris data yang ingin di tunju. Misal
datanya sebanyak 4 (posisi rekord aktif dan banyaknya record bisa anda temui di
status bar (aktifkan status melalui perintah SET STATUS ON)) anda bisa
berpindah2 record ke record 1 sampai 4 dan perhatikan record
Selain Perintah GO no_record anda juga bisa menggunakan perintah berikut
untuk navigasi data:
SKIP
&& pindah ke 1 record berikutnya
SKIP 1
&& pindah ke 1 record sebelumnya
SKIP 3
&& pindah ke 3 record setelahnya
GO TOP
&& pindah ke record paling awal
GO BOTTOM
&& pindah ke record terakhir
Selain perintah di atas tadi ada satu lagi perintah yang cukup bermanfaat untuk
navigasi yaitu perintah LOCATE yang gunanya untuk berpindah ke record
dengan syarat tertentu (biasa digunakan untuk pencarian). Sintak nya adalah :
LOCATE FOR kondisi
Jika record ditemukan maka akan menampilkan pesan nomer recordnya, utuk
melanjutkan pencarian lagi dengan syarat yang sama bisa dilakukan dengan
perintah :
CONTINUE
Jika ditemukan lagi maka akan menampilkan norecordnya, begitu seterusnya
sampai di record terakhir dan menampilkan pesan End of Locate Scope.
1.4 merubah dan menghapus data
Edit Dan Delete Data
Diatas sudah dijelaskan bagaimana menambah, menampilkan dan
navigasi data dalam sebah tabel. Berikutnya adalah cara untuk merubah isi/baris
data. Untuk merubah baris data juga ada berbagai cara, ada yang secara manual
memakai metode BROWSE kemudian dirubah data dan disimpan dengan
menekan tombol <CTRL+W> atau menggunakan kalkulasi/rumus REPLACE.
Sintak Replace secara umum seperti ini :
REPLACE [ALL] nm_field WITH nilai [FOR kondisi]
Yang artinya Mengganti field [nm_field] dengan [nilai] dapat juga di tambahkan
paramater [FOR kondisi] sehingga [nm_field] akan diganti jika memenuhi kondisi
yang disyaratkan. Jika paramater ALL ditambahkan maka seluruh baris /isi data
yang memenuhi kondisi akan diganti namun jika tidak, hanya baris di record aktif
saja yang diganti.
Misal
LIST
GO 3
REPLACE JUDUL WITH EXPORT-IMPORT 1
LIST
REPLACE
ALL
PENERBIT
PENERBIT=SARANA ILMU
LIST
WITH
SARANA
ILMU
KITA
FOR
Berikutnya adalah Perintah untuk menghapus baris data, perintahnya sebagai
berikut :
DELETE [ALL] [FOR kondisi]
Perintah Delete saja akan menghapus data pada record aktif, sedangkan
menambahkan paramater ALL akan menghapus semua baris data yang ada, dan
jika inging menghapus record yang memiliki kondisi tertentu anda bisa
menambahkan FOR kondisi.
Contoh:
LIST
GO 3
DELETE
LIST
Perhatikan data yang di hapus sebenarnya tidak benar2 terhapus, waktu kita
menjalankan perintah delete maka record yang terhapus akan ditandai * di
sebelah kirinya. Nah agar record yang terhapus disembunyikan terlebih dahulu
anda bisa menjalankan peritah :
SET DELETE ON
LIST
DELETE ON FOR STOK=5
LIST
Karena sebenarnya data yang terhapus tidak benar2 terhapus jadi kita bisa
mengembalikan data yang terhapus tadi menggunakan perintah
RECALL [ALL] [FOR kondisi]
Contoh:
RECALL ALL
LIST
Sedangkan untuk bener2 menghapus data yang di delete tadi kita bisa
menggunakan perintah
PACK
Tapi ingat setelah di pack data akan benar2 terhapus dan tidak bisa
dikembalikan lagi dengan perintah RECALL.
2.1 variable
Pengenalan Variabel
Di dalam FoxPro 2.6 kita mengenal berbagai macam variabel, di sini kita
akan belajar bagaimana menggunakan variabel Char, Numeric, Date dan Logical.
Secara gampang cara membuat variabel adalah :
NmVar = nilai
Misal :
NAMA = EKO PURNOMO
UMUR = 23
TGL_LHR = {23/03/86}
MARRIED = .F.
Untuk penamaan sebuah variabel aturannya sbb :
- Menggunakan Huruf A-Z dan _ (underscore)
- Diawalai Oleh huruf, bukan angka
- Tidak boleh ada spasi dan simbol
- Penggunakan Huruf Kapital dan bukan tidak dibedakan (case unsensitive)
Char
Variabel char atau biasa di sebut string menyimpan data berupa huruf A
Z dan angka 0 9 beserta simbol. Variabel char biasanya digunakan untuk
menyimpan data yang tidak untuk kalkulasi atau perhitungan aritmatika seperti
penambahan, pengurangan dll. Untuh mencoba memahami tipe variabel ini coba
program dengan nama [Link]
set talk of
clear
MakananPokok = "Nasi"
NamaDepan = 'Eko'
NamaBelakang = [Purnomo]
Alamat = "Jl. Al'Maidah - Madiun"
Hoby = 'Makan "Sate Ayam" pake Telor'
? MakananPokok
? NamaDepan + NamaBelakang
? "Alamat Saya " + Alamat
? Hoby
Numeric
Tipe data ini digunakan untuk menyimpan data numeric baik itu bilangan
bulat maupun bilangan decimal/pecahan. Untuk mencoba memahami tipe data
ini coba buat program [Link] yang tadi anda buat dengan perintah
MODIFY COMMAND [Link]
Mausukkan code berikut ini:
set talk of
clear
umur = 23
tinggi = 170.5
store 1 to istri,anak
? umur
? tinggi
? istri
? anak
? umur / 2
? tinggi+5
? istri+anak
? "Jumlah Istri " + str(istri)
Catatan :
Store <nilai> to NmVar1,NmVar2
Berarti mengisi var1,2 dst dengan nilai <nilai>. Sedangkan pada baris terakhir
ada fungsi str(var) gunanya untuk merubah tipe numeric ke char karena char +
numeric akan mengakibatkan error.
See Also:
Function
Desc
STR(nVar)
Merubah / Mengconvert tipe
data numeric menjadi char
VAL(cVar)
Merubah
tipe
menjadi numeric
ROUND(nVar,nDec)
Pembulatan bilangan <nVar>
sejumlah nDec
data
char
Misal :
Nilai = 12345.6789
? round(Nilai,2)
? round(Nilai,0)
? round(Nilai,-2)
Output
12345.68
12346
12300
INT(nVar)
Mengambil
Bilangan
dari <nVar>
bulat
Misal:
Nilai = 123.45
? int(Nilai)
? int(5/2)
Output:
123
2
Date
Tipe ini berguna utuk menyimpan tipe tanggal, secara default penulisan
nilai untuk variabel tipe ini di apit tanda { }.
Tgllahir = {23/03/1986}
Urutan pengisian tanggal dulu baru bulan dan tahun tergantung dari set
date, secara default urutan inputnya adalah mm/dd/yy (bulan,tanggal,tahun).
Namun anda bisa menggantinya dengan set date to dmy untuk mendapatkan
urutan dd/mm/yy.
Untuk mencoba lebih mengenal tipe variabel ini coba buat program baru dengan
nama [Link] kemudian isikan code berikut :
set talk of
clear
set date to dmy
set century on
tglLahir = {23/3/1986}
tglSekarang = date()
? tglLahir
? tglSekarang
? tglSekarang - tglLahir
? tglSekarang + 5
Untuk mendapatkan tanggal sekarang anda bisa memakai fungsi date().
Dalam tipe ini juga mengenal operasi penambahan dan pengurangan hari.
Sedang untuk mendapatkan selisih hari dari dua tanggal, anda bisa langsung
mengurangkan tanggal akhir dengan tanggal awal.
See also:
Function
Desc
DTOC(dateVar)
Merubah / Mengkonversi tipe
data tanggal menjadi karakter
CTOD(textVar)
Merubah / Mengkonversi tipe
data text menjadi tanggal
DATE()