PANDUAN PENGEMBANG GASY Software
DISUSUN OLEH: GEDE JULIARSA, SE.MSi 1
1 Pendahuluan Pokok Bahasan: Pemrograman Dalam Microcomputer Konsep Pemrograman Berorientasi Object Elemen-Elemen Program Mengenal Visual FoxPro
Pemrograman Dalam Microcomputer Microcomputer adalah suatu alat canggih yang mempunyai kemampuan dalam berbagai hal misalnya pengolahan kata, pengembangan analisis keuangan suatu proyek, menyajikan grafik terhadap suatu laporan, membuat skedul pekerjaan dan monitoring perkembangan pekerjaan, transmisi laporan secara elektronik antar kantor, design teknik permesinan, diagnosis medis dan integrasi data antar komputer melalui jaringan internet. Microcomputer (sering disebut personal computer atau desktop computer) adalah suatu komputer kecil berisi sejumlah komponen yang dapat bekerja bersama sebagai system microcomputer. Komponen microcomputer system terdiri dari: keyboard, mouse, monitor, system unit, data storage device, printer dan controller device. Komponen fisik dalam system microcomputer disebut perangkat keras (hardware), sebaliknya sebagai perantara perangkat keras disebut perangkat lunak (software) yang berisi kumpulan instruksi yang dapat dimengerti oleh hardware. Kumpulan instruksi-instruksi yang terstruktur disebut dengan program. Proses membaca instruksi dalam suatu program oleh perangkat keras disebut menjalankan program (running the program). Tahapan instruksi berjalan melibatkan berbagai fungsi, prosedur, metod, dan object. Goldstein (1987), menyebutkan bahwa tahapan pemrograman yaitu menampilkan data di layar; menerima data dari user melalui keyboard atau device input lainnya; merespon data yang diterima dari user, benar atau salah; proses menggambarkan data dalam bentuk graphics di layar; mencetak data ke printer; menyimpan data untuk kemudian bisa diambil atau dibuka kembali. Proses memberikan instruksi kepada komputer sesuai langkah-langkah program pada setiap tujuan disebut dengan pemrograman. Program ditulis dengan menggunakan bahasa pemrograman yang telah diubah kedalam bahasa Inggris. Instruksi-instruksi yang ada dalam bahasa pemrograman kemudian di terjemahkan kedalam bahasa mesin sehingga dapat dijalankan secara langsung oleh komputer. Banyak sekali bahasa pemrograman yang tersedia untuk microcomputer, diantara bahasa Basic, IBM Advance Basic, Microsoft Quick
2
Basic, Turbo Basic, dBase, FoxBase, FoxPro, Visual FoxPro, Delphi, Oracle, Clipper, Visual Basic, Microsoft Access, dan masih banyak lagi.
Konsep Pemrograman Berorientasi Object Ide dasar pada bahasa berorientasi obyek (PBO) adalah mengkombinasikan data dan fungsifungsi untuk mengakses data menjadi sebuah kesatuan unit. Unit ini dikenal dengan nama obyek (object). Jika anda membuat suatu program, menyimpan dan mengelola data dalam program adalah dengan suatu rangkaian instruksi. Data dan tempat penyimpanan data adalah bahan baku pemrograman. Alat-alat (tools) yang digunakan untuk mengelola bahan baku ini adalah command, function dan operators.
Penyimpanan Data Jenis data sangat menentukan bagaimana data tersebut disimpan dan bagaimana data dapat digunakan. Anda dapat mengalikan dua angka secara bersama, tetapi anda tidak dapat mengalikan karakter. Anda dapat mencetak karakter dalam huruf besar, tetapi anda tidak dapat mencetak angka dalam huruf besar. Beberapa jenis data primer dalam Visual FoxPro dijelaskan dalam tabel berikut ini: Jenis Data Jenis
Contoh
Numeric
123 3.1415 –7
Character
"Test String" "123" "01/01/98"
Logical
.T. .F.
Date
{^1998-01-01}
DateTime
{^1998-01-01 12:30:00 p}
Data Containers Data containers menyediakan fasilitas bentuk operasi sama dalam suatu kelompok data secara multiple. Jika anda menyimpan informasi dalam container, dan mengembangkan operatoroperator dalam container, anda dapat mengganti data lama dengan data baru dan menjalankan program yang sama. Tabel berikut menjelaskan beberapa container utama untuk data dalam Visual FoxPro:
3
Jenis
Keterangan
Variables
Element tunggal data yang disimpan dalam RAM (Random Access Memory) komputer
Table Records
Kumpulan baris dengan field yang telah ditentukan, dan disimpan dalam disk.
Arrays
Elemen kelompok dari data yang disimpan dalam RAM
Kontainer dan jenis data merupakan satu bangunan saling terkait dalam mengelola data, dengan menggunakan operator, function, dan command.
Menggunakan Operator Operasi logika yang digunakan dalam Visual FoxPro adalah sebagai berikut: Operator
Jenis Data
Contoh
Hasil
=
Semua Jenis Data
? n = 7
.T. jika nilai variabel n = 7, sebaliknya .F.
+
Numeric, Character, Date, DateTime
? "Fox" + "Pro"
"FoxPro"
! atau NOT
Logical
? !.T.
.F.
*, /
Numeric
? 5 * 5 ? 25 / 5
25 5
Perlu diingat bahwa anda harus menggunakan jenis data yang sama dalam satu operator. Perhatikan contoh berikut ini: nFirst = 123 nSecond = 45 cFirst = "123" cSecond = "45"
Dua operasi berikut akan memberikan hasil berbeda, karena jenis data dalam variabel tersebut berbeda. ? nFirst + nSecond ? cFirst + cSecond
Hasilnya adalah 168 Hasilnya adalah 12345
Operator pertama mengerjakan jenis variabel numerik, sedangkan operator yang kedua jenis variabel karakter. Akan terjadi kesalahan (mismatch error) apabila anda mencoba membuat operator seperti berikut ini: ? cFirst + nSecond
4
Visual FoxPro menyediakan fasilitas untuk menangani perbedaan jenis data, yaitu dengan menggunakan fungsi-fungsi konversi. Misalnya STR(), VAL(), LTRIM(). Dengan fungsi tersebut, maka kesalahan dapat diperbaiki dengan menulis operator sebagai berikut: ? cFirst + LTRIM(STR(nSecond)) ? VAL(cFirst) + nSecond
Hasilnya: 12345 Hasilnya: 168
Menggunakan Function Functions (Fungsi) menghasilkan nilai spesifik sesuai jenis data. Misalnya, fungsi STR() menghasilkan nilai Character, sedangkan VAL() menghasilkan nilai Numerik. Begitu juga halnya dengan fungsi-fungsi lainnya. Ada lima cara atau teknik pemanggilan fungsi dalam Visual FoxPro, yaitu: Menentukan variabel untuk merekam nilai yang dihasilkan dari fungsi. Misalnya variabel dHariIni digunakan untuk merekam tanggal hari ini, maka penulisan code programnya adalah: dHariIni = DATE( )
Digabungkan dalam perintah Visual FoxPro yang lain. Misalnya membuat perintah untuk mengubah default direktory. CD GETDIR( )
Menampilkan nilai kedalam screen / Window. Contoh penulisan code program untuk menampilkan waktu. ? TIME( )
Memanggil fungsi tanpa menyimpan nilai dari hasil yang dikembalikan oleh fungsi. Misalnya, fungsi untuk membuat cursor dalam kondisi off, adalah: SYS(2002)
Menggabungkan beberapa fungsi dalam satu baris perintah. Misalnya mengubah nilai variabel tanggal menjadi karakter hari, yaitu: ? DOW(DATE( ))
Menggunakan Command Sebuah perintah mengakibatkan aksi yang ditunjukkan. Setiap command mempunyai syntax khusus, yang mengindikasikan bahwa apa yang harus dimasukkan atau diikutkan sehingga suatu perintah dapat bekerja. Ada clausul optional dikaitkan dengan commands dari cakupan clausul yang lebih detil dalam sebuah commands. Sebagai contoh adalah command USE memberikan instruksi untuk membuka atau menutup sebuah tabel. Syntax: USE USE
Penjelasan Menutup file tabel dalam area kerja aktif 5
USE customer
Membuka file tabel CUSTOMER pada area kerja aktif, dan sekaligus menutup file tabel yang sedang dibuka pada area aktif tersebut
USE customer IN 0
Membuka file tabel CUSTOMER pada area berikutnya yang tersedia dan belum digunakan
USE customer IN 0 ; ALIAS mycust
Membuka file tabel CUSTOMER pada area berikutnya yang tersedia dan belum digunakan dengan nama alias/samaran MYCUST.
Pengendalian Alur Program Visual FoxPro mempunyai commands dan functions yang bersifat “Wrap Around” artinya adalah diantara command dan fungsi dapat saling terkait dan digunakan bersama dalam satu baris perintah, sehingga perlu ditentukan kapan dan bagaimana comands dan fungsi dijalankan. Comands tersebut membolehkan adanya branching dan looping kondisional, yaitu dua alat pemrograman yang sangat bermanfaat. Sebagai illustrasi, misalnya sebuah perusahaan mempekerjakan 10.000 karyawan dan setiap karyawan diberikan tambahan Rp.30.000 setiap peningkatan volume penjualan 3%, dan tambahan Rp.10.000 apabila peningkatan penjualan mencapai 6%. Asumsi bahwa nama field untuk menampung jumlah tambahan adalah Insentif, dan kenaikan penjualan adalah GrowSales. Contoh program untuk menyimpan nilai insentif: Code SCAN
Keterangan SCAN dan ENDSCAN adalah mengeksekusi setiap rekord yang ada dalam tabel, dan kemudian memindahkan pointer ke rekord berikutnya
IF growsales = 0.03 Setiap rekord, jika kenaikan penjualan = 3%, maka REPLACE ; Insentif WITH 30000 nilai 30000 akan direkam dalam field insentif
Tanda semicolon (;) setelah REPLACE berarti bahwa command dilanjutkan pada beris berikutnya. ENDIF IF growsales = 0.06 REPLACE Insentif ; WITH 40000 ENDIF
Akhir dari kondisional pernyataan IF Setiap rekord, jika kenaikan penjualan = 6%, maka nilai 30000+10000 akan direkam dalam field insentif Akhir dari kondisional pernyataan IF
ENDSCAN
Contoh tersebut menggunakan dua pencabangan dan pengulangan kondisional untuk mengontrol alur program. 6
Pencabangan Kondisional (Conditional Branching) Pencabangan kondisional menunjukkan suatu pengujian kondisi dan kemudian tergantung dari hasil pengujian tersebut akan mengakibatkan operasi berbeda. Ada dua perintah dalam Visual FoxPro yang menunjukkan pencabangan kondisional, yaitu: •
IF ... ELSE ... ENDIF
•
DO CASE ... ENDCASE
Contoh: ** Menyimpan variabel lDapatInsentif = .T. jika pertumbuhan = 3% IF nGrow=.03 lDapatInsentif = .T. ENDIF
Catatan: Asterisk (*) pada awal baris menunjukkan komentar. Komentar ini membantu programmer mengingat setiap segment code yang dirancang.
Pengulangan (Looping) Pengulangan menunjukkan bahwa proses eksekusi satu atau lebih baris perintah dalam lingkup waktu yang sama. Ada tiga perintah pengulangan dalam Visual FoxPro, yaitu: DO WHILE ... ENDDO FOR ... ENDFOR SCAN ... ENDSCAN
Contoh: FOR nCnt = 1 TO FCOUNT( ) ? FIELD(nCnt) ENDFOR
** Penggunaan Do While … Enddo Select Employee GO TOP DO WHILE NOT EOF()
&& Lakukan pengulangan jika belum && sampai akhir file (eof = end of file ) IF GROWSALES=.03 REPLACE ; INSENTIF ; WITH 30000 ENDIF SKIP && memindahkan pointer rekord berikutnya
ENDDO
Pemrograman Dalam Visual FoxPro Menentukan/menetapkan Masalah Operasionalkan masalah kedalam elemen-elemen dengan ciri-ciri khusus Kembangkan setiap bagian elemen Pengujian setiap elemen
7
Mengumpulkan elemen-elemen yang sejenis Pengujian program keseluruhan
Pemrograman artinya adalah menyuruh mesin untuk melakukan apa yang kita inginkan. Pada awalnya, program dibuat dengan cara yang sederhana. Seorang pemrogram harus menuliskan program satu per satu dan memeriksa kesalahan sendiri. Hal ini memerlukan waktu yang lama. Perangkat lunak telah berkembang sehingga sekarang anda dapat membuat dan memeriksa program dengan mudah karena sudah disediakan fasilitas-fasilitas yang mudah dan menarik. Walaupun Visual FoxPro masih mendukung pemrograman prosedural, pengembangan-pengembangan bahasa memberikan kemampuan dan fleksibelitas dalam pemrograman berorientasi object. Pengembangan berorientasi object dan pemrograman berorientasi object menunjukkan suatu perubahan fokus dari standar pemrograman prosedural. Pemrograman prosedural adalah proses alur program dari baris pertama sampai pada akhir baris, sedangkan pada pemrograman berorientasi object, pola berfikir dalam pengembangan suatu program adalah bagaimana membuat object-object yang merupakan komponen aplikasi. Pemrograman berorientasi object saat ini dikembangkan karena 1). aplikasi yang dibutuhkan semakin kompleks, perilaku user terhadap perkembangan Microsoft Windows yang mana pemakai komputer tidak lagi memerlukan aplikasi yang mengontrol pemakai tetapi pemakai ingin mengontrol jalannya program, 2) proses pengembangan relatif cepat/hemat waktu, 3) tampilan visual, 4) kebutuhan untuk mengakses data dari berbagai format, 5) pengembangan database client/server. Pemrograman berorientasi object adalah perluasan dari pemrograman prosedural yang mengutamakan pemakaian ulang program melalui pengembangan class library. Class Library adalah kumpulan object yang dapat digunakan pada setiap aplikasi yang dikembangkan, misalnya perintah-perintah untuk memindahkan pointer rekord dalam tabel, perintah help, dan perintah-perintah berulang yang selalu digunakan dalam aplikasi atau setiap object.
Elemen-Elemen Program Dalam sebuah aplikasi program berisi kumpulan kata-kata yang merupakan bahasa pemrograman yang disediakan, dan kumpulan bahasa interface lainnya yang digabungkan membentuk suatu bahasa sehingga dapat dijalankan oleh mesin komputer. Pada umumnya susunan elemen-elemen dalam aplikasi program berisi: Perintah dasar dan function yang sudah ada, untuk melaksanakan aksi tertentu. Literal dan konstanta yang bernama, yang dipakai dalam operasi. Data yang permanen yang disimpan dalam tabel.
8
Operator aritmatik yang dipakai pada bilangan, operator string untuk memanipulasi data karakter Evaluator logic untuk proses perbandingan. Pengulangan. Komentar.
Mengenal Visual FoxPro Perkembangan Fox Software bermula dari FoxBase pada tahun 1984, dan kemudian berkembang menjadi FoxPro pada tahun 1989 dengan memperkenalkan Graphical Unit Interface. Kemudian pada tahun 1995 diperkenalkan Visual FoxPro. Hingga kini, Visual FoxPro sudah disempurnakan lagi pada release 7.0 dan 8.0. Kemampuan pemrograman prosedural tetap dipertahankan dan dilengkapi dengan pemrograman berorientasi objek. Visual FoxPro 6.0 dilengkapi dengan kemampuan untuk berinteraksi dengan produk desktop dan client/server lain dan juga dapat membangun aplikasi yang berbasis Web. Dengan adanya Visual Studio, FoxPro menjadi anggotanya. Sasaran utama Visual Studio adalah menyediakan alat bantu pemrograman dan database untuk mengembangkan perangkat lunak yang memenuhi tuntutan zaman.
Menjalankan Program Visual FoxPro Jika telah dilakukan installasi program Visual FoxPro, maka pada layar monitor atau desktop dapat dibuat shortcut menu untuk memmpercepat memanggil program Visual FoxPro 6.0. Kemudian Double-Click Icon/Shortcut Microsoft Visual FoxPro 6.0 untuk memanggil program, atau dapat juga dipanggil melalui menu Start, atau dengan menggunakan fasilitas Windows Explorer
Gambar 1.1: Flash Screen
Tampilan pada gambar 1.1 akan nampak dalam beberapa detik dan selanjutnya akan ditampilkan screen Visual FoxPro 6.0 seperti pada gambar 1.2.
9
Gambar 1.2. Screen Visual FoxPro 6.0
Bagian-bagian yang ada pada Screen Visual FoxPro 6.0 dapat diuraikan sebagai berikut: Caption bagian kiri atas tampilan utama. memberi instruksi:
Bagian yang terletak di Caption dapat diubah dengan
_Screen.Caption=”D3 Akuntansi Fe Unud”
Bagian yang terletak di bagian kanan atas tampilan utama, berisi control Minimize,
Control Box Restore dan Close
Main Menu Bar
Bagian yang terletak di baris menu, berfungsi untuk memandu pemakai dalam menggunakan program.
10
ToolBar
Bagian yang berfungsi untuk mempercepat pemanggilan instruksi. Berisi Toolbar standar yaitu New, Open, Save, Print, Explorer, Cut, Copy, Paste, Undo, Redo, Run.
Jendela Perintah
Bagian yang berfungsi untuk menulis instruksi
Bagian yang terletak dibagian bawah
Status Bar tampilan utama.
Mengakhiri Program Visual FoxPro Untuk mengakhiri program Visual FoxPro, Ada beberapa cara yang dapat dilakukan, yaitu: 1. Pada menu File, Klik sub-menu Exit 2. Melalui jendela perintah, ketik instruksi QUIT 3. Dari tampilan utama, perhatikan Control Box, lalu Klik Icon Close
11
2 Persiapan Pemrograman Pokok Bahasan: Membuat Folder Aplikasi Mengubah Direktory Default Membuat File Project Membuat File Program/Aplikasi
Membuat Folder Aplikasi Sebelum mengembangkan suatu aplikasi program, maka langkah awal yang diperhatikan adalah menyediakan tempat atau lokasi penyimpanan setiap jenis file yang menjadi bagian dari program. Tahapan ini merupakan implementasi dari proses pengelolaan file, oleh karena itu tahapan akan menjadi penting dan bermanfaat. Sebagai contoh susunan folder nampak seperti gambar 2.1. Folder aplikasi dibuat dalam kelompok ProD3. Didalam folder ProD3 berisi sub-folder yang digunakan untuk menyimpan setiap jenis file yaitu file Data, Forms, Reports, Library, Programs, Include, Help, Graphics dan Menu.
Gambar 2.1 Susunan Folder
Untuk membuat folder, dapat digunakan fasilitas Windows Explorer.
Mengubah Default Direktory Setelah folder dibuat, lalu tentukan bahwa tempat penyimpanan data dapat dibaca pada folder yang telah dibuat. Langkah-langkah untuk mengubah default directory adalah sebagai berikut: 1. Pada menu Tools, Klik Options. Setelah perintah ini dilakukan maka akan muncul tampilan seperti gambar 2.2
12
Gambar 2.2. Options File Locations 2. Pilih jenis file Default Directory, lalu Klik Modify
Gambar 2.3 Change File Location 3. Dari gambar 2.3, kemudian ubah lokasi direktory dengan nama folder yang telah dibuat. Selanjutkan pilih perintah Ok. Jika langkah ini benar dilakukan maka tampilan akan kembali seperti gambar 2.2, lalu pilih perintah Set As Default, dan perintah Ok.
Membuat File Project Untuk membuat suatu file project, Visual FoxPro menyediakan fasilitas yang dapat digunakan yaitu dengan project manager. Langkah-langkah yang dilakukan adalah: 1. Dari menu File, pilih New. Selanjutnya muncul seperti gambar 2.3.
13
Gambar 2.3 Kotak Dialog New
2. Dari kotak dialog New ( seperti Gambar 2.3) tentukan jenis file Project dan pilih New File. Kemudian muncul tampilan kotak dialog Create seperti gambar 2.4.
Gambar 2.4 Kotak Dialog Create
3. Dari gambar 2.4 tentukan nama project, misalnya Proj1. Kemudian pilih command Save. Bila langkah 1, 2, dan 3 telah dilakukan dengan benar maka selanjutnya akan ditampilkan project manajer seperti pada gambar 2.5. Dari gambar 2.5, kemudian dibangun aplikasi program sesuai dengan rancangan sistem yang dikembangkan.
14
Gambar 2.5 Kotak Dialog Project Manager
a. Membuat Main Program Main Program adalah prosedur yang diletakkan pada top program atau program yang mengawali dan mengendalikan semua prosedur yang dikembangkan. Main Program berisi instruksi-instruksi yang menangani konfigurasi lingkungan kerja aplikasi Visual FoxPro yang dikembangkan. Untuk membuat main program, caranya adalah: a. Dari project manager, Pilih Code, kemudian Klik New. Setelah proses ini akan muncul kotak editor seperti gambar 2.5.
Gambar 2.5 Kotak Editor Code
b. Dari tampilan kotak Editor Code, ketiklah instruksi berikut ini: *-- Prosedur Program Utama DO Progs\Prg2 READ Events CLEAR ALL CLEAR EVENTS c. Setelah menulis instruksi, simpan instruksi tersebut pada folder Progs dengan nama file Prg1. Tekan Tombol [Ctrl-W] untuk menyimpan instruksi. Jika benar dilakukan 15
maka muncul kotak dialog seperti gambar 2.6. Selanjutnya isi nama file program dan pilih command Save.
Gambar 2.6 Kotak Dialog Save As
d. Membuat sub-program menu. Caranya adalah dari project manajer Code, Pilih New sehingga muncul kotak dialog Code Editor, lalu ketik instruksi berikut ini dan simpan dengan nama Prg2 pada folder Progs. ** Nama File: Progs\Prg2.Prg DEFINE PAD Menu1 OF _Msysmenu PROMPT "\<Menu" DEFINE PAD Menu2 OF _Msysmenu PROMPT "E\<XIT" ON PAD MENU1 OF _Msysmenu ACTIVATE POPUP Menu1 ON SELECTION PAD MENU2 OF _Msysmenu pQuit() DEFINE POPUP MENU1 MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE DEFINE DEFINE DEFINE
BAR BAR BAR BAR
1 2 3 4
OF OF OF OF
MENU1 MENU1 MENU1 MENU1
PROMPT PROMPT PROMPT PROMPT
"\<1. Data Mahasiswa" "\<2. Laporan" "\-" "\<3. Backup Data"
ON SELECTION BAR 1 OF MENU1 Do Form Forms\Form1 ON SELECTION BAR 2 OF MENU1 Do Form Forms\Form2 ON SELECTION BAR 4 OF MENU1 Do Form Forms\Form3 ACTIVATE MENU _Msysmenu NOWAIT e. Membuat sub-program untuk menutup aplikasi dengan instruksi berikut ini, dan simpan dengan nama file pQuit pada folder Progs. ** Nama File: Progs\pQuit.Prg CLEAR ALL CLEAR EVENTS b. Membuat Form Membuat Form1. Perhatikan project manajer, lalu pilih Documents. Kemudian pilih command New, dan New Form 16
Gambar 2.7 Project Manajer Documents dan Kotak Dialog New Form
Selanjutnya muncul form designer seperti gambar 2.8
Gambar 2.8 Form Designer
Dari form designer ini (seperti gambar 2.8), simpanlah form tersebut pada folder Forms dengan nama Form1. Caranya adalah dari menu File, pilih Save-As, dan perhatikan kotak dialog save-as, lalu beri nama form. Ulangi langkah membuat form untuk mendesign form2 dan form3.
Membuat File Program Setelah tahapan-tahapan pemrograman dilalui, maka selanjutnya adalah melakukan proses penerjemahan dari bahasa pemrograman kedalam bahasa mesin yang dapat dimengerti oleh komputer. Proses ini disebut Building Program. Caranya adalah sebagai berikut:
17
1. Dari project manajer, pilih Build. Setelah proses ini muncul seperti gambar 2.9.
Gambar 2.9 Kotak Dialog Building Program
2. Lalu pilih Ok. Setelah proses selesai, dan tidak ada kesalahan penulisan instruksi maka aplikasi sudah siap dijalankan.
18
3 Mengenal Class dan Object Pokok Bahasan: Class dan Object Visual FoxPro Form Property, Event dan Method ToolBar Form Control Merancang Form
Class dan Object Visual FoxPro Kelas (Class) dan obyek (object ) dalam terminologi pemrograman berorientasi obyek sebenarnya adalah saling terkait, tetapi tidak sama. Suatu kelas berisi informasi mengenai bagaimana obyek akan melihat dan menunjukkan reaksi atau berjalan. Suatu kelas adalah skema dari suatu obyek. Sebagai contoh misalnya, skema dan jaringan elektronik dari sebuah telpon adalah mendekati suatu kelas,. sedangkan yang menjadi obyek adalah telpon itu sendiri. Benda atau sesuatu yang nampak disekeliling kita adalah object. Obyek mempunyai sifat-sifat, perilaku dan interaksi antar obyek. Misalnya, mobil adalah benda yang mempunyai sifat-sifat seperti bentuk, warna, ukuran dan berat. Mobil dapat digunakan karena adanya mesin yang terpasang, dan setiap komponen yang dimiliki saling berhubungan sehingga terjadi gerak. Dalam kontek pemrograman Visual FoxPro, dan kalau disimak dari contoh obyek mobil maka sifat-sifat mobil tersebut disebut dengan property, jaringan mesin-mesin disebut method dan interaksi jaringan mesin yang mengakibatkan gerak disebut event. Object utama dalam Visual FoxPro adalah Form. Form
Mobil
Property: Property: Tinggi,Lebar, Judul
Nama, Tinggi, Berat
Gambar 3.1: Object dan Property Object
19
Obyek: Property, Event dan Method Sebuah obyek mempunyai berbagai property atau attribut. Sebuah telpon misalnya, adalah mempunyai warna dan ukuran. Jika telpon digunakan di kantor, maka tentu ditempatkan pada suatu lokasi misalnya diatas meja kerja, sehingga akan memudahkan untuk digunakan baik menerima maupun mengirim pesan. Obyek yang dibuat dalam Visual FoxPro juga mempunyai berbagai property yang ditentukan oleh kelas didasarkan pada obyek tersebut. Property tersebut dapat di tentukan pada saat merancang atau pada waktu dijalankan. Sebagai contoh misalnya, beberapa property dari “Check Box” adalah sebagai berikut: Property
Keterangan
Caption
Teks disebelah check box
Enabled
Menentukan apakah user dapat memilih atau mengubah nilai.
ForeColor
Warna teks caption
Left
Posisi kiri dari check box
Top
Posisi atas dari check box
Visible
Menentukan apakah check box nampak (visible) atau tidak
Setiap obyek yang dibuat dan dapat merespon aktivitas dengan benar disebut events. Event adalah suatu yang spesifik dan akan timbul karena aktivitas, dapat diprakarsai oleh user yang lain atau karen sistem. Events, dalam kontek ini adalah disebabkan oleh interaksi user. Misalnya, pada contoh pesawat telpon, event dipicu ketika user menggunakan telpon, atau ketika user menekam tombol-tombol untuk memanggil. Perilaku pemakai termasuk dalam pemicu event adalah klik dan memindahkan mouse dan menekan tombol keyboard. Metode-metode (Methods) adalah prosedur-prosedur yang berhubungan dengan suatu obyek. Event dapat memiliki method yang sesuai. Events dari check box: Event
Keterangan
Click
User meng-Klik check box.
GotFocus
User memilih check box dengan meng-Klik atau menekan tombol Tab
LostFocus
User memilih kontrol lain, meninggalkan check-box
Methods dari check box: Method
Keterangan
Refresh
Mengupdate nilai dari check box yang memperlihatkan adanya perubahan data
SetFocus
Fokus ada pada check box karena menekan tombol TAB
20
Karakteristik Class Class mempunyai karakteristik – karakteristik yang membuatnya sangat berguna untuk menciptakan software yang reusable (mempunyai banyak fungsi), dan mudah dipelihara dan dikembangkan, yaitu: Encapsulation, Subclasses, Inheritance Encapsulation meliputi proses penggabungan method dan property secara bersama-sama kedalam suatu obyek sehingga dapat memberikan manfaat abstraksi yang dapat dilihat apabila ada interaksi penggunaan. Misalnya, property yang menentukan item-item dalam suatu list box dan code yang berjalan ketika item-item dalam daftar dipilih dapat dienkapsulasi menjadi satu kontrol tunggal dalam suatu form. Subclass dapat memberikan fungsi setiap class yang dibuat dan berbagai penambahan kontrol yang diinginkan. Fleksibelitas ini merupakan feature yang diberikan class. Proses pembuatan subclass adalah satu langkah pemrograman utuk mengurangi jumlah code yang harus ditulis. Class dapat digunakan pada setiap kontrol, sifat ini disebut inheritance. Kemampuan ini sangat bermanfaat dalam pemrograman karena apabila ada perubahan dalam suatu class, maka perubahan tersebut dapat berlaku untuk semua kontrol yang ada.
Jenis Class Ada dua jenis class dan merupakan perluasan dari obyek Visual FoxPro yaitu container class dan control class. Container Class Containers dapat berisi obyek-obyek lain dan dapat diakses oleh obyek-obyek yang ada dalam container. Misalnya, jika anda membuat suatu container class yang berisi dua list-box dan dua command button dan kemudian menambahkan pada obyek form, maka setiap obyek dapat dimanipulasi, dan dapat ditambahkan obyek lain. Berikut ini adalah daftar kontrol yang terdapat dalam setiap container class yaitu: Container Control Command button groups Command buttons Container Any controls Control Any controls Custom Any controls, page frame, container, custom Form sets Forms, toolbars Forms Page frames, any controls, containers, custom Grid columns Headers and any objects except form sets, forms, toolbars, timers, and other columns Grids Grid columns Option button groups Option buttons Page frames Pages Pages Any controls, containers, custom Project Files, servers Toolbars Any controls, page frame, container
21
Hirarki Class Hirarki class dan container adalah dua entitas terpisah. Visual FoxPro melihat code events melalui hirarki class, sedangkan obyek-obyek melihat referensi hirarki container. Sebagai contoh dalam memanipulasi suatu form dalam form set, diperlukan referensi form set, form dan control.
Penggunaan Pengenal/Referensi Visual FoxPro menggunakan kata kunci Parent, THIS, THISFORM dan THISFORMSET untuk penulisan dalam method dan event. Contoh instruksi yang terkait dengan kata kunci tersebut adalah: THISFORMSET.frm1.cmd1.Caption = "OK" THISFORM.cmd1.Caption = "OK" THIS.Caption = "OK" THIS.Parent.BackColor = RGB(192,0,0)
Menentukan Properties 1. Menggunakan sintaks tunggal : Container.Object.Property = Value Contoh: frmPhoneLog.txtDate.Value = DATE( ) frmPhoneLog.txtDate.Enabled = .T. frmPhoneLog.txtDate.ForeColor = RGB(0,0,0) frmPhoneLog.txtDate.BackColor = RGB(192,192,192) 2. Menggunakan WITH …. ENDWITH WITH THISFORMSET.frmForm1.grdGrid1.grcColumn1 .Width = 5 .Resizable = .F. .ForeColor = RGB(0,0,0) .BackColor = RGB(255,255,255) .SelectOnEntry = .T. ENDWITH
Memanggil Methods Menggunakan syntax : Parent.Object.Method
Contoh: frsFormSet.frmForm1.Show frsFormSet.frmForm1.txtGetText1.SetFocus
Methods mengembalikan nilai dan digunakan sebagai ekspresi, misalnya: Form1.Caption = Form1.GetNewCaption( )
Prosedur dan UDF (User Defined Function) Prosedur dan fungsi adalah sebagai tempat pendefinisian dan penulisan code (bahasa program). Code yang ditulis kemudian dapat dijalankan untuk menangani berbagai jenis data 22
dan obyek yang ada dalam aplikasi. Pendefinisian prosedur dan fungsi dalam Visual FoxPro dapat dijelaskan sebagai berikut: PROCEDURE myproc **instruksi-instruksi ENDPROC
Dalam pemrograman tradisional, prosedur berisi code yang ditulis untuk suatu proses tertentu, tanpa mengembalikan suatu nilai, sedangkan fungsi berisi code untuk melakukan suatu operasi dan mengembalikan suatu nilai. Dalam Visual FoxPro, fungsi merupakan penyederhanaan dari prosedur. Penulisannya sebagai berikut: FUNCTION myfunc **instruksi-instruksi ENDFUNC
Prosedur dan fungsi dapat dibuat pada suatu file program secara terpisah, dan untuk menggunakan setiap prosedur dan fungsi digunakan perintah SET PROCEDURE TO. Misalnya file prosedur diberikan nama FUNPROC.PRG, maka instruksi untuk mengaktifkan adalah: SET PROCEDURE TO funproc.prg SET PROCEDURE TO funproc.prg
Memanggil Procedure atau Function Ada dua cara untuk memanggil procedure atau function dalam program: •
Menggunakan perintah DO DO myproc
•
Menambahkan tanda kurung (parentheses) setelah nama fungsi myfunc( )
Setiap method dalam class dapat dikembangkan melalui pengiriman dan penerimaan nilai dari procedure atau function •
Mengirim Nilai ke Procedure atau Function
Untuk dapat mengirim nilai ke dalam procedure atau function, maka perlu menambahkan parameters. Misalnya: PROCEDURE myproc( cString ) * The following line displays a message MESSAGEBOX ("myproc" + cString) ENDPROC
Penulisan seperti pada contoh (PROCEDURE myproc(cString)) berarti bahwa lingkup parameter tersebut adalah lokal. Untuk memanggil prosedur tersebut dapat digunakan teknik dibawah ini: DO myproc WITH cTestString DO myproc WITH "test string" Atau Myfunc(cTestString) Myfunc("test string")
23
Pengiriman nilai dapat pula lebih dari satu, untuk membedakan setiap parameter diisi tanda comma. Contoh: PROCEDURE myproc( dDate, cString, nTimesToPrint ) FOR nCnt = 1 to nTimesToPrint ? DTOC(dDate) + " " + cString + " " + STR(nCnt) ENDFOR ENDPROC
Instruksi berikut adalah untuk memanggil prosedur, yaitu: DO myproc WITH DATE(), "Hello World", 10
•
Menerima Nilai dari Function
Kondisi default nilai yang dikembalikan adalah true (.T.), namun dapat digunakan perintah RETURN untuk mengembalikan suatu nilai. Contoh berikut adalah suatu fungsi tanggal untuk mengetahui tanggal dua minggu lagi, yaitu: FUNCTION plus2weeks PARAMETERS dDate RETURN dDate + 14 ENDFUNC
Instruksi untuk memanggil dan mengambil nilai yang dikembalikan disimpan dengan variabel dDeadLine, adalah sebagai berikut: dDeadLine = plus2weeks(DATE())
Mengelola Return Value Nilai yang dikembalikan (return value) kemudian dapat disimpan kedalam suatu variabel, ditampilkan langsung ke layar/window atau dicetak langsung ke printer atau disimpan dalam suatu field file tabel. Dalam proses pemrograman berorientasi obyek, karakteristik inheritance adalah merupakan implikasi dari pengelolaan return value. Hal ini akan terlihat pada pengembangan suatu prosedur yang mempunyai hasil yang berbeda-beda hanya dengan mengubah isian atau parameter yang diisinya/dikirimkan. Contoh penulisan code dalam mengelola return value CVar1 = myfunc ( ) ? myfunc( ) This.Value=myfunc () @ 2,10 SAY myfunc( )
Verifikasi Parameter Untuk mengenai jenis nilai yang dikirim atau yang dikembalikan oleh suatu prosedur atau fungsi, apakah sesuai dengan kriteria yang ditentukan dalam penulisan parameter maka dapat digunakan fungsi TYPE() dan PARAMETERS()
24
Fungsi berikut adalah penggunaan fungsi TYPE() untuk mendeteksi apakah variabel jenis tanggal benar dikirimkan. FUNCTION plus2weeks( dDate ) IF TYPE("dDate") = "D" RETURN dDate + 14 ELSE MESSAGEBOX( "Isilah dengan data jenis tanggal”) RETURN { - - } ENDIF ENDFUNC
Penggunaan fungsi PARAMETERS() adalah untuk mengetahui jumlah nilai parameter yang dikirimkan. Prosedur berikut adalah suatu contoh nilai parameter yang harus dikirimkan adalah 3, dan jika kurang akan menghasilkan nilai .F.. PROCEDURE SaveValue( cStoreTo, cNewVal, lIsInTable ) IF PARAMETERS( ) < 3 MESSAGEBOX( "Kekurangan nilai parameter”) RETURN .F. ENDIF IF lIsInTable REPLACE (cStoreTo) WITH (cNewVal) ELSE &cStoreTo = cNewVal ENDIF RETURN .T. ENDPROC
Object Form Form memiliki property yang menentukan bentuk form seperti posisi, ukuran dan warna dan aspek perilaku form seperti apakah dapat diubah ukurannya atau tidak. Untuk memberikan pemahaman mengenai object form, cobalah tuliskan perintah berikut dari jendela perintah.
Gambar 3.2 Membuat Object Form
25
CREATE FORM adalah suatu bahasa perintah untuk membuat form. Syntax selengkapnya adalah: CREATE FORM [FormName | ?] [AS cClassName FROM cClassLibraryName | ?] [NOWAIT] [SAVE] [DEFAULT] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]]
Form yang telah dibuat adalah sebuah object yang mempunyai property, event dan method. Berikut ini disebutkan property, event dan method yang ada pada sebuah object form.
Form Property, Method dan Events Property:
ActiveControl, ActiveForm, AlwaysOnBottom, AlwaysOnTop, Application, AutoCenter, BackColor, BaseClass, BorderStyle, BufferMode, Caption, Class, ClassLibrary, ClipControls, Closable, ColorSource, Comment, ContnousScroll Property, ControlBox, ControlCount, Controls, CurrentX, CurrentY, DataEnvironment, DataSession, DataSessionID, DefOLELCID Property, Desktop, DrawMode, DrawStyle, DrawWidth, Enabled, FillColor, FillStyle, FontBold, FontCondense, FontExtend, FontItalic, FontName, FontOutline, FontShadow, FontSize, FontStrikeThru, FontUnderline, ForeColor, HalfHeightCaption, Height, HelpContextID, HScrollSmallChange Property, Icon, KeyPreview, Left, LockScreen, MacDesktop, MaxButton, MaxHeight, MaxLeft, MaxTop, MaxWidth, MDIForm, MinButton, MinHeight, MinWidth, MouseIcon, MousePointer, Movable, Name, Objects, OLEDragMode, OLEDragPicture, OLEDropEffects, OLEDropHasData, OLEDropMode, Parent, ParentClass, Picture, ReleaseType, RightToLeft, ScaleMode, ScrollBars, ShowInTaskbar, ShowTips, ShowWindow, SizeBox, TabIndex, TabStop, Tag, TitleBar Property, Top, ViewPortHeight, ViewPortLeft, ViewPortTop, ViewPortWidth, Visible, VscrollSmallChange, WhatsThisButton, WhatsThisHelpID, Width, WindowType, WindowState, ZoomBox.
Events: Activate, Click, DblClick, Deactivate, Destroy, DragDrop, DragOver, Error, GotFocus, Init, KeyPress, Load, LostFocus, MiddleClickEvent, MouseDown, MouseMove, MouseUp, MouseWheel, Moved, OLECompleteDrag, OLEDragDrop, OLEDragOver, OLEGiveFeedBack, OLESetData, OLEStartDrag, Paint, QueryUnload, Resize, RightClick, Scrolled, Unload
Methods: AddObject, AddProperty, Box, Circle, Cls, Draw, Hide, Line, Move, NewObject, OLEDrag, Point, Print, Pset, ReadExpression, ReadMethod, Refresh, Release, RemoveObject, ResetToDefault, SaveAs, SaveAsClass, SetAll, SetViewPort, Show, ShowWhatsThis, TextHeight, TextWidth, WhatThisMode, WriteExpression, WriteMethod, Zorder. Didalam form designer, property, event dan method tersebut ditampilkan dalam sebuah jendela properties. Gambar 3.3 Menunjukkan Properties FormDoc1. 26
Gambar 3.3 Jendela Properties Form
ToolBar Form Control Untuk mengisi layout form dengan bentuk input yang akan dibuat, tersedia dalam form control yang berisi label, textbox, line, perintah, check kontrol, gambar, container, grid, combo box, listbox, timer dan hyperlink. Apabila form designer aktif maka form kontrol dapat diaktifkan sehingga dengan mudah melakukan modifikasi form.
Gambar 3.4 Form Controls
Kontrol untuk mengembalikan object pada kondisi netral. Select Object Kontrol untuk menampilkan pilihan Class New Classes String yang ditampilkan pada form. Label dipakai untuk judul dan keterangan dari object-object lain. Label
Text Box
Edit Box
Berisi variabel yang bertipe string (karakter), tanggal, numerik, dan logika. TextBox dapat berisi data dari tabel atau mewakili sebuah variabel memori . Dengan TextBox, Anda dapat mengubah data. Berisi variabel yang bertipe memo, atau untuk isian karakter yang panjang.
27
Command Button
Command Group
Object perintah untuk melakukan proses atau perintah-perintah tertentu.
Object perintah berkelompok.
Sekelompok alternatif pilihan. Option Group
Check Box
Combo Box
Untuk menyatakan keadaan biner. Misalnya benar atau salah, ya atau tidak. Kombinasi dari sebuah daftar dan textbox. Anda dapat memilih data dari dafar atau mengisikan data yang tidak ada dalam daftar.
Untuk menampilkan daftar pilihan. List Box
Spinner
Untuk mimilih nilai numerik. Object ini dilengkapi dengan anak panah atas untuk menambah nilai dan anak panah bawah untuk mengurangi nilai Object untuk menampilkan variabel baik array ataupun dari sebuah tabel.
Grid
Image
Object untuk menampilkan gambar dalam sebuah file .BMP, JPG, dan jenis file gambar lainnya.
Object untuk mengatur waktu suatu event Timmer Adalah form yang dapat dibagi-bagi menjadi beberapa halaman. Page Frame
ActiveX Control
Object untuk menciptakan link ke aplikasi lain yang mendukung OLE dan ActiveX.
(Ole Control )
ActiveX Bound Ole Bound Control, adalah sebuah link ke aplikasi lain yang Control biasanya berupa file vcx. ( Ole Bound Control )
28
Line, adalah object garis Line
Shape
Shape control adalah kontrol grafis untuk menampilkan suatu kota, lingkaran atau ellip.
Container
Object Container dapat berisi object lain dan biasanya dibuat untuk suatu even yang berhubungan dengan container itu sendiri.
Separator
Kontrol dalam suatu toolbar biasanya ditempatkan berdekatan diantaranya, object ini merupakan pemisah diantara object-object yang ada dalam toolbar. Atau dalam suatu kelompok kontrol.
HyperLink
Builder Lock
Suatu object HyperLink merupakan kemampuan navigasi Aplikasi Visual FoxPro dan Active Documents dalam suatu kontainer seperti Microsoft Internet Explorer. Dengan fasilitas object ini, sebuah aplikasi dapat dihubungkan atau berpindal ke URL (Uniform Resource Locator) Kontrol ini berfungsi untuk menampilkan builder wizard secara langsung ketika suatu object diletakkan pada sebuah form. Kontrol ini berfungsi untuk mengunci kontrol yang digunakan.
Button Lock
Merancang Form Untuk memberikan pemahaman mengenai object form, dan attribut object yang dimiliki yaitu property, method dan event akan dijelaskan dalam illustrasi contoh – contoh berikut ini. Contoh 1. Membuat Form Pendataan Mahasiswa
Gambar 3.5: Contoh Form Pendataan Mahasiswa
29
Urutan Penyelesaian: 1. Membuka form designer Melalui jendela command, ketik CREATE FORM 2. Mengubah nama form (Caption), dengan nama Pendataan Mahasiswa
Perhatikan properties window, pilih Caption, kemudian ganti nama form1 dengan Pendataan Mahasiswa. 3. Mengisi object form dengan string dibawah ini melalui control form dengan object Labels. String yang dibuat yaitu NIM, Nama, Tgl.Pendaftaran, Umur, Hobby dan Pekerjaan Orang Tua. a. Melalui form control, Klik Button Lock b. Klik Labels, kemudian klik area form pada posisi yang sesuai dengan lay out sehingga muncul Label1, ulangi mengklik sebanyak 6x sehingga muncul Label1, Label2, Label3, Label4, Label5 dan Label6. Kembalikan kondisi form control ke Select Object. c. Ubah property Caption label1 dengan NIM, label2 dengan Nama Mahasiswa, label3 dengan Tgl.Pendaftaran, label4 dengan Umur, label5 dengan Hobby, label6 dengan Pekerjaan Orang Tua 4. Membuat isian setiap variabel. a. Klik TextBox, dan letakkan disebelah kanan NIM, Nama Mahasiswa, Tgl.Pendaftaran dan Umur b. Klik Option Group, dan letakkan disebelah kanan hobby. c. Klik ComboBox, dan letakkan disebelah kanan Pekerjaan Orang Tua. 5. Membuat Garis, Klik Line dan letakkan pada bagian bawah pekerjaan orang tua 6. Membuat perintah (Rekam), (Bersihkan Isian/Ulangi) dan (Kembali). Klik Command Button dan letakkan dibawah garis. Ubah property caption command1 dengan Rekam. Ulangi langkah ini untuk membuat perintah yang lainnya. 7. Menyimpan Form. Melalui menu File, Klik Save As, kemudian dari kotak dialog Save As beri nama form dengan FormMhs. 8. Menjalankan Form. Klik Kanan pada area form, kemudian pilih Run Form. Atau tekan Tombol Ctrl+E. 9. Modifikasi Form. Melalui jendela perintah, ketik: MODIFY FORM 10. 10. Menutup Form. Klik Control Box - Close Latihan 1: Merancang Berbagai Form Isian Buatlah form untuk pendataan karyawan, barang dagangan/Inventory, Daerah/Segmen Pemasaran, Daftar Wajib Pajak Di Bali, Aktiva tetap, Daftar rekening akuntansi, nasabah tabungan BPD Bali, debitur BPD Bali, Pelanggan Tiara Dewata, dan Supplier Tiara Dewata, Pelanggan Telkomsel (Kartu Hallo).
30
4 Mengenal Data Pokok Bahasan: Database dan Tabel Teknik Merancang Struktur Tabel Membuat, Membuka dan Menutup Tabel Melalui File Program
Database dan Tabel Database dan Tabel adalah dua istilah yang berbeda. Kedua istilah tersebut pernah dipakai untuk mengacu sebuah tabel, tetapi cara tersebut salah. Tabel menyatakan sebuah file (DBF) yang berisi data. Sedangkan Database berisi kumpulan tabel. Pada tahun 1995, FoxPro memperkenalkan database container yang berisi kumpulan tabel. Database container juga menyediakan fasilitas tambahan yaitu: Mengizinkan nama panjang untuk field dan table Klausa validasi record dan validasi field Nilai devault Caption yang telah disimpan
Database container (DBC) adalah fasilitas aplikasi yang memungkinkan untuk mendefinisikan atau menulis kode/program sebagai methods, function, atau procedure. Berbagai kode program dapat ditulis seperti membuka database, membuka tabel, mencetak isi tabel dan perintah-perintah lainnya. Tabel adalah file yang berisi kumpulan informasi yang disimpan dalam field/kolom tertentu sesuai dengan jenis field. Jenis field dalam program Visual FoxPro dibedakan kedalam karakter ( C ), tanggal (D), tanggal dan waktu (T), numeric (N), numeric (F), Integer (I), Double (B), Currency (Y), Logical (L), Memo (M) dan General (G). Tabel 4.1 menunjukkan jenis field yang digunakan dalam aplikasi Visual FoxPro. Tabel 4.1: Jenis Field Jenis Field
Lebar Width
Decimal
(FieldType)
(nField Width)
(nPrecision)
C
N
-
Character
D
-
-
Date/Tanggal
T
-
-
DateTime
31
Keterangan
N
N
d
Numeric
F
N
d
Floating Numeric
I
-
-
Integer
B
-
d
Double
Y
-
-
Currency
L
-
-
Logical
M
-
-
Memo
G
-
-
General
Teknik Merancang Struktur Tabel Bila aplikasi spreadsheet seperti Microsoft Excel, Lotus, dan sejenisnya dapat dipahami dengan baik maka tidaklah asing dalam mempelajari struktur tabel. Mengapa demikian, karena spreadsheet adalah ibunya database/tabel. Walaupun demikian tidaklah cukup bila wawasan mengenai perilaku data tidak diketahui. Kumpulan kertas-kertas yang berisi teks sebagai hasil proses pekerjaan bagian administrasi, akuntansi, atau tugas-tugas kantor yang selalu bergelut dengan kertas dan ballpoint adalah sumber informasi yang dapat dipahami dan tentu selanjutnya adalah mengkaji lebih lanjut mengenai sifat informasi yang diperoleh. Dalam bahasan ini, penulis ingin memberikan bayangan bahwa bagaimana tahapan untuk merancang struktur tabel. Walaupun dalam topik ini tidak mengharuskan mahasiswa untuk mampu menganalisa dan menyusun rancangan struktur tabel. Sebagai contoh sederhana, cobalah bayangkan daftar absensi yang saudara tanda tangani setiap mengikuti kuliah. Anggaplah daftar absensi seperti tabel 3.1. Berdasarkan daftar absensi tersebut, dapat disusun rancangan struktur tabel sesuai dengan sifatnya. Tabel 4.2: Daftar Absensi No. Urut
NIM
TANDA TANGAN
NAMA 1
2
3
4
5
6
7
8
9
10
11
12
13
14
Berdasarkan tabel 4.2, maka dapat disusun struktur tabel dalam program Visual FoxPro sebagai berikut: Field 1 2 3 4 5 6 7
Fieldname Nim Nama Paraf01 Paraf02 Paraf03 Paraf04 Paraf05
Type Character Character Character Character Character Character Character 32
Width 12 40 1 1 1 1 1
8 9 10 11 12 13 14 15 16
Paraf06 Paraf07 Paraf08 Paraf09 Paraf10 Paraf11 Paraf12 Paraf13 Paraf14
Character Character Character Character Character Character Character Character Character
1 1 1 1 1 1 1 1 1
Membuat, Membuka dan Menutup Tabel Melalui File Program Dalam membuat, membuka dan menutup sebuah tabel atau file tabel maka perlu diketahui bahasa yang terkait. Bahasa pemrograman yang terkait adalah: MODIFY COMMAND, yaitu perintah untuk membuat file program DO, yaitu perintah untuk menjalankan file program IF…ENDIF, yaitu perintah kondisional yang didasarkan pada nilai expresi logika FILE(), yaitu perintah yang menghasilkan nilai .T. (True/Benar) bila sebuah file terdapat dalam sebuah disk. CREATE TABLE, yaitu perintah untuk membuat tabel. USE, yaitu perintah untuk membuka atau menutup sebuah file tabel USED, yaitu perintah untuk mengetahui bahwa suatu tabel aktif atau tidak aktif ALIAS(), yaitu perintah untuk mengenai nama samaran dari suatu tabel aktif BROWSE, yaitu perintah untuk menampilkan isi tabel EDIT, yaitu perintah untuk menampilkan isi tabel dalam bentuk form entry CLOSE TABLE [ALL], yaitu perintah untuk menutup tabel aktif
Membuat File Tabel 1. Melalui jendela perintah, ketik instruksi: MODIFY COMMAND pCreaTbl Jika perintah benar ditulis maka muncul kotak Text Editor, seperti gambar 4.1.
Gambar 4.1 Kotak Text Editor
2. Melalui kotak Text Editor, ketik perintah sebagai berikut:
33
NB 1
Elemen Program IF !FILE('TBLMHS.DBF')
2
CREATE TABLE TBLMHS ( NIM C(12), NAMA C(40), ;
3
PARAF01 C(1), PARAF02 C(1),PARAF03 C(1),;
4
PARAF04 C(1),PARAF05 C(1),PARAF06 C(1),;
5
PARAF07 C(1),PARAF08 C(1),PARAF09 C(1),;
6
PARAF10 C(1),PARAF11 C(1),PARAF12 C(1),;
7
PARAF13 C(1),PARAF14 C(1) )
8
ENDIF
3. Simpan file program dengan menekan Tombol Ctrl+W 4. Jalankan program pCreaTbl dengan mengetik perintah DO pCreaTbl Maka file tabel yang diberi nama TBLMHS akan dibuat.
Membuka, Menampilkan dan Menutup File Tabel 1. Melalui jendela perintah, ketik instruksi: MODIFY COMMAND pBukaTbl 2. Melalui kotak Text Editor, ketik perintah sebagai berikut: NB
Elemen Program
1
CLOSE TABLE ALL
2
IF FILE('TBLMHS.DBF')
3
USE TBLMHS
4
ENDIF
5
BROWSE
6
CLOSE TABLE ALL
3. Simpan file program dengan menekan Tombol Ctrl+W 4. Jalankan program pBukaTbl dengan mengetik perintah DO pBukaTbl
34
5 Mengenal Function dan Command Pokok Bahasan: Function dalam Visual FoxPro Command dalam Visual FoxPro
Function dalam Visual FoxPro ABS( ) Mengembalikan nilai absolut dari ekspresi numeric ABS(nExpression)
Contoh: ? ABS(-45) ? ABS(10-30) ? ABS(30-10) STORE 40 TO gnNumber1 STORE 2 TO gnNumber2 ? ABS(gnNumber2-gnNumber1)
&& Displays 45 && Displays 20 && Displays 20
&& Displays 38
ACLASS( ) Membuat array class dari object, dan mengembalikan nilai numeric ACLASS(ArrayName, oExpression)
Contoh: CLEAR frmMyForm = CREATEOBJECT("FormGrandChild") FOR nCount = 1 TO ACLASS(gaNewarray, frmMyForm) && Creates an array ? gaNewarray(nCount) && Displays the names of the classes ENDFOR RELEASE frmMyForm DEFINE CLASS FormChild AS FORM ENDDEFINE DEFINE CLASS FormGrandChild AS FormChild ENDDEFINE
35
ACOPY( ) Menyalin element dari satu array ke array lain ACOPY(SourceArrayName, DestinationArrayName [, nFirstSourceElement [, nNumberElements [, nFirstDestElement ]]])
Contoh: CLOSE DATABASES OPEN DATABASE (‘D:\prod3\data\testdata’) USE mhsd3 SELECT nama FROM mhsd3 ORDER BY jurusan ; WHERE nilai>=70 INTO ARRAY gaJurusan = ACOPY(gaJurusan, gaJurusanTemp) CLEAR DISPLAY MEMORY LIKE gaJurusanTemp
ADATABASES( ) Membuat array dari semua database terbuka termasuk lokasi tempat penyimpanan ADATABASES(ArrayName)
Contoh: SET PATH TO (‘d:\prod3\data\') && Sets path to database OPEN DATABASE testdata && Buka database CLEAR ? ADATABASES(gaDatabase) && Creates an array of open databases DISPLAY MEMORY LIKE gadatabase && Displays the contents of the array CLOSE DATABASES
ADBOBJECTS( ) Membuat variabel array dari database yang aktif ADBOBJECTS(ArrayName, cSetting)
cSetting
Nama
CONNECTION
Nama Connection
RELATION
Relasi Table
TABLE
Nama Table
VIEW
Nama View
Contoh: OPEN DATABASE (‘d:\prod3\Data\testdata') * Function call with cSetting for table names =ADBOBJECTS(gaTables, "TABLE") * Displays array gaTables created by ADBOBJECTS( ) function DISPLAY MEMORY LIKE gaTables
36
ADDBS( ) Menambah backslash ( \ ) jika diperlukan pada ekspresi path ADDBS(cPath)
Contoh: CLEAR ? ADDBS(‘D:\PROD3’) && Display ? ADDBS(‘D:\PROD3\’) && Display
D:\PROD3\ D:\PROD3\
ADEL( ) Menghapus suatu elemen array dari satu array dimensional, atau suatu baris atau kolom dari dua array dimensional. Jika proses menghapus berhasil maka fungsi ini mengembalikan nilai 1, sebaliknya 0. ADEL(ArrayName, nElementNumber [, 2])
Contoh: CLOSE DATABASES OPEN DATABASE ('d:\prod3\Data\testdata') USE mhsd3 && buka tabel nilai mahasiswa SELECT JURUSAN FROM mhsd3 ; WHERE nilai>=70 ; INTO ARRAY gaJurusan gnCount = _TALLY gcJurusan= 'Akuntansi' CLEAR DISPLAY MEMORY LIKE gaNilai* gnPos = ASCAN(gaJurusan, gcJurusan) && Mencari Jurusan Akuntansi IF gnPos != 0 *** Jurusan ditemukan, hapus dari array = ADEL(gaJurusan, gnPos) gnCount = gnCount - 1 ENDIF DISPLAY MEMORY LIKE gaJurusan NOCONSOLE
ADIR( ) Membuat informasi mengenai file kedalam suatu array dan kemudian mengembalikan daftar file ADIR(ArrayName [, cFileSkeleton [, cAttribute [, nFlag]]])
Contoh: SET DEFAULT TO ‘d:\prod3\data’ gnDbcnumber = ADIR(gaDatabase, '*.DBC') && Create array CLEAR FOR nCount = 1 TO gnDbcnumber && Loop for number of databases ? gaDatabase(nCount,1) && Display database names ENDFOR SET PATH TO HOME( ) && Set path to Visual FoxPro directory
37
AFIELDS( ) Menyajikan informasi mengenai struktur tabel kedalam array dan mengembalikan jumlah field dalam tabel tersebut. AFIELDS(ArrayName [, nWorkArea | cTableAlias])
Contoh: CLOSE DATABASES OPEN DATABASE ‘d:\prod3\data\testdata’ USE mhsd3 gnFieldcount = AFIELDS(gaMyArray) && Create array CLEAR FOR nCount = 1 TO gnFieldcount ? gaMyArray(nCount,1) && Display field names ENDFOR
AFONT( ) Memberikan informasi mengenai huruf yang ada kedalam sebuah array AFONT(ArrayName [, cFontName [, nFontSize]])
Contoh: CLEAR =AFONT(gaFontArray) && Array containing font names gnNumFonts = ALEN(gaFontArray) && Number of fonts IF gnNumFonts > 10 gnNumFonts = 10 && Display first 10 fonts ENDIF FOR nCount = 1 TO gnNumFonts ? ALLTRIM(gaFontArray(nCount)) && Display font name ?? ' This is an example of ' ; + ALLTRIM(gaFontArray(nCount)) FONT gaFontArray(nCount), 8 ENDFOR
AINS( ) Insert suatu elemen kedalam array satu dimensi atau kedalam baris atau kolom kedalam array dua dimensi. Fungsi ini mengembalikan nilai numerik 1 jika elemen berhasil disisipkan. AINS(ArrayName, nElementNumber [, 2])
Contoh: CLOSE DATABASES OPEN DATABASE (‘d:\prod3\data\testdata’) USE mhsd3 SELECT Jurusan FROM mhsd3 ; WHERE nilai>=70 ; INTO ARRAY gaJurusan gnCount = _TALLY gcName = 'Pemasaran’ CLEAR DISPLAY MEMORY LIKE gaJurusan IF ASCAN(gaJurusan, gcName) = 0 && Mencari jurusan pemasaran *** Company not found-add it *** DIMENSION gaJurusan[gnCount+1,1]
38
= AINS(gaJurusan, gnCount-1) gaJurusan[gnCount-1] = gcName ENDIF DISPLAY MEMORY LIKE gaJurusan
ALEN( ) Mengembalikan jumlah dari elemen, baris dan kolom dalam suatu array. ALEN(ArrayName [, nArrayAttribute])
Nilai nArrayAttribute, menentukan apakah fungsi ini mengembalikan jumlah elemen, baris atau kolom, nilai 0 = jumlah elemen, 1 = baris dan 2= kolom Contoh: CLEAR =AFONT(gaFontArray) && Array containing font names gnNumFonts= ALEN(gaFontArray) && Number of fonts IF gnNumFonts > 10 gnNumFonts = 10 && Display first 10 fonts ENDIF FOR nCount = 1 TO gnNumFonts ? ALLTRIM(gaFontArray(nCount)) && Display font name ?? ' This is an example of ' ; + ALLTRIM(gaFontArray(nCount)) FONT gaFontArray(nCount), 8 ENDFOR
ALIAS( ) Mengembalikan nama alias tabel dari area kerja yang ditentukan atau yang sedang aktif. ALIAS([nWorkArea | cTableAlias])
Contoh: CLOSE DATABASES OPEN DATABASE (‘d:\prod3\data\testdata’) USE mhsd3 CLEAR ? ALIAS( ) && Display the alias SELECT 0 USE mhsd3 AGAIN ALIAS MhsD3Fe ? ALIAS( ) && Display the alias
ALINES( ) Mengcopy setiap baris dalam ekspresi character atau field memo kedalam suatu baris karakter menjadi array. ALINES(ArrayName, cExpression [, lTrim] [cParseChar, ,… ,cParseChar])
Parameters ArrayName, Nama array yang akan dibuat CExpression, Ekspresi karakter atau field memo. LTrim, Jika diisi .t. maka spasi kosong dihapus, sebaliknya .f. CParseChar, Menentukan karakter linefeed CHR(10), carried return CHR(13) pada setiap ekspresi karakter.
39
Contoh: CLOSE DATABASES CLEAR SET TALK OFF OPEN DATABASE (‘d:\prod3\data\testdata') USE mhsd3 ? ALINES(aMyarray,mhsd3.catatan,CHR(13)) && Displays 1 ? ALINES(aMyarray,mhsd3.catatan,".") && Displays 7 ? ALINES(aMyarray,mhsd3.catatan,",") && Displays 4 ? ALINES(aMyarray,mhsd3.catatan," ") && Displays 75 ? ALINES(aMyarray,mhsd3.catatan,".", ",") && Displays 10 ? ALINES(aMyArray,mhsd3.catatan) && Displays 1 ? aMyArray(1)
ALLTRIM( ) Menghapus spasis kosong pada ekpresi karakter. ALLTRIM(cExpression)
Contoh: CLEAR =AFONT(gaFontArray) && Array containing font names gnNumFonts= ALEN(gaFontArray) && Number of fonts IF gnNumFonts > 10 gnNumFonts = 10 && Display first 10 fonts ENDIF FOR nCount = 1 TO gnNumFonts ? ALLTRIM(gaFontArray(nCount)) && Display font name ?? ' This is an example of ' ; + ALLTRIM(gaFontArray(nCount)) FONT gaFontArray(nCount), 8 ENDFOR
APRINTERS( ) Menyajikan informasi nama printer yang disetup/diinstal dalam Windows Print Manager kedalam suatu variabel memory APRINTERS(ArrayName)
Contoh: IF APRINTERS(gaPrinters) > 0 CLEAR DISPLAY MEMORY LIKE gaPrinters ELSE WAIT WINDOW 'No printers installed.' ENDIF
ASC( ) Mengembalikan nilai ANSI dalam suatu ekspresi karakter ASC(cExpression)
Contoh: STORE 'ABCDEFGHIJ' TO gcANSI
&& 10 characters
40
CLEAR FOR nCOUNT = 1 TO 10 ? SUBSTR(gcANSI, nCount,1) && Display a character ?? ASC(SUBSTR(gcANSI, nCount)) && Display ANSI value ENDFOR
ASCAN( ) Mencari suatu array untuk setiap elemen yang berisi data sama dan jenis data yang diekspresikan ASCAN(ArrayName, eExpression [, nStartElement [, nElementsSearched [, nSearchColumn [, nFlags ]]]])
Keterangan Parameters ArrayName, Nama array yang ditentukan EExpression, Ekspresi yang dibuat NStartElemen, Awal elemen nElementsSearched, Jumlah elemen yang dicari nSearchColumn, Kolom array yang dicari. Gunakan 0 atau negatif untuk mencari seluruh array. NFlags, Tambahan kriteria pencarian. Contoh: CLOSE DATABASES OPEN DATABASE ('d:\prod3\Data\testdata') USE mhsd3 && buka tabel nilai mahasiswa SELECT JURUSAN FROM mhsd3 ; WHERE nilai>=70 ; INTO ARRAY gaJurusan gnCount = _TALLY gcJurusan= 'Akuntansi' CLEAR DISPLAY MEMORY LIKE gaNilai* gnPos = ASCAN(gaJurusan, gcJurusan) && Mencari Jurusan Akuntansi IF gnPos != 0 *** Jurusan ditemukan, hapus dari array = ADEL(gaJurusan, gnPos) gnCount = gnCount - 1 ENDIF DISPLAY MEMORY LIKE gaJurusan NOCONSOLE
ASORT( ) MenSort elemen-elemen dalam sebuah array dalam urutan ascending atau descending order. Jika berhasil menghasilkan angka 1, sebaliknya –1. ASORT(ArrayName [, nStartElement [, nNumberSorted [, nSortOrder [, nFlags]]])
41
Instruksi berikut adalah membuat array yang diberi nama gaArray: DIMENSION gaArray(3,2) gaArray(1) = 'G' gaArray(2) = 'A' gaArray(3) = 'C' gaArray(4) = 'Z' gaArray(5) = 'B' gaArray(6) = 'N' =ASORT(gaArray,1)
Contoh: CLOSE DATABASES OPEN DATABASE ('d:\prod3\Data\testdata') USE mhsd3 && buka tabel nilai mahasiswa COUNT TO gnCount && Jumlah Mahasiswa DIMENSION gaNama(gnCount,1) && Membuat Array Jurusan COPY TO ARRAY gaNama FIELD Nama && Fill the array CLEAR ? 'Nama Mahasiswa:' ? FOR nCount = 1 TO 20 ? gaNama(nCount) && Menampilkan 20 Mahasiswa ENDFOR = ASORT(gaNama) && Sort the array ? ? 'Nama Mahasiswa Telah Disortir:' ? FOR nCount = 1 TO 20 ? gaNama(nCount) && Menampilkan 20 mahasiswa setelah disortir ENDFOR
AT( ) Mengembalikan posisi awal berupa nilai numeric pada ekspresi karakter atau fiel memo dengan ekspresi karakter atau field memo yang lain. AT(cSearchExpression, cExpressionSearched [, nOccurrence])
Contoh: STORE 'Now is the time for all good men' TO gcString STORE 'is the' TO gcFindString CLEAR ? AT(gcFindString,gcString) && Displays 5 STORE 'IS' TO gcFindString ? AT(gcFindString,gcString) && Displays 0, case-sensitive
BAR( ) Mengembalikan angka apabila item dari menu yang dibuat dengan fungsi DEFINE POPUP BAR( )
Contoh: *** Nama Program: BAR_EXAM.PRG *** CLEAR
42
SET SYSMENU SAVE SET SYSMENU TO DEFINE PAD padConv OF _MSYSMENU ; PROMPT '\
POPUP popConv; IN bar_exam WITH BAR( ), POPUP( ) popCard MARGIN RELATIVE COLOR SCHEME 4 OF popCard PROMPT '\
ON SELECTION POPUP popCard; DO choice IN bar_exam WITH BAR( ), POPUP( ) PROCEDURE choice PARAMETERS gnBar, gcPopup WAIT WINDOW 'Anda memilih bar #' + LTRIM(STR(gnBar)) + ; ' dari popup ' + gcPopup NOWAIT SET SYSMENU TO DEFAULT
BETWEEN( ) Menentukan nilai logika atau null, apakah suatu nilai dalam ekspresi berada diantara nilai yang ditentukan. BETWEEN(eTestValue, eLowValue, eHighValue)
Contoh: CLOSE DATABASES OPEN DATABASE (‘d:\prod3\data\testdata') USE mhsd3 CLEAR SCAN FOR BETWEEN(nilai,65,75) ? nim, nama ENDSCAN
BOF( ) Menentukan apakah pointer rekord ada pada poisi awal 43
BOF([nWorkArea | cTableAlias])
Contoh: CLOSE DATABASES CLEAR OPEN DATABASE (‘d:\prod3\data\testdata’) USE mhsd3 GO BOTTOM local recCtr, btnValue recCtr = 0 btnValue = 1 DO WHILE btnValue = 1 AND NOT BOF() ? "Nama Mahasiswa : " + nama recCtr = recCtr + 1 if (recCtr % 20) = 0 then btnValue =MESSAGEBOX ("Klik OK untuk melanjutkan, ; Cancel untuk kembali.",33) clear endif Skip -1 && Move up one record ENDDO =MESSAGEBOX("Proses selesai",48)
CAPSLOCK( ) Mengembalikan mode tombol CAPS LOCK atau menset menjadi On atau Off CAPSLOCK([lExpression])
Contoh: glOldLock = CAPSLOCK( ) && Save original setting = CAPSLOCK(.T.) && Turn CAPS LOCK on = CAPSLOCK(glOldLock) && Return to original setting = CAPSLOCK(!CAPSLOCK( )) WAIT WINDOW = CAPSLOCK(!CAPSLOCK( )) WAIT WINDOW = CAPSLOCK(glOldLock) && Return to original setting
CDOW( ) Mengembalikan nama hari dari ekspresi Date atau DateTime CDOW(dExpression | tExpression)
Contoh: STORE {^1998-02-16} TO gdDate CLEAR ? CDOW(gdDate) && Displays Monday
CDX( ) Mengembalikan nama file index (CDX, coumpound index) CDX(nIndexNumber [, nWorkArea | cTableAlias])
Contoh:
44
CLOSE DATABASES OPEN DATABASE (‘d:\prod3\data\testdata') USE mhsd3 CLEAR FOR nCount = 1 TO 254 IF !EMPTY(TAG(nCount)) && Checks for tags in the index ? CDX(nCount) && Display structural index names ELSE EXIT && Exit the loop when no more tags are found ENDIF ENDFOR
CHR( ) Mengembalikan character dari angka kode ANSI CHR(nANSICode)
Contoh: CLEAR FOR nCOUNT = 65 TO 75 ? nCount && Display numeric value ?? ' ' + CHR(nCount) && Display character ENDFOR
CHRSAW( ) Untuk mengetahui apakah suatu karakter tersimpan dalam buffer keyboard CHRSAW([nSeconds])
Contoh: SET TALK OFF DEFINE WINDOW wEnter FROM 7,10 to 13,70 PANEL ACTIVATE WINDOW wEnter @ 1,3 SAY 'Customer: ' GET gcCustomer DEFAULT SPACE(40) @ 3,3 SAY 'Address: ' GET gcAddress DEFAULT SPACE(40) WAIT WINDOW 'Waiting for input' NOWAIT IF NOT CHRSAW(5) DEACTIVATE WINDOW wEnter CLEAR GETS ELSE READ DEACTIVATE WINDOW wEnter ENDIF RELEASE WINDOW wEnter
CHRTRAN( ) Mengganti setiap karakter dalam suatu ekspresi karakter. CHRTRAN(cSearchedExpression, cSearchExpression, cReplacementExpression)
Contoh: ? CHRTRAN('ABCDEF', 'ACE', 'XYZ') && Displays XBYDZF ? CHRTRAN('ABCD', 'ABC', 'YZ') && Displays YZD ? CHRTRAN('ABCDEF', 'ACE', 'XYZQRST') && Displays XBYDZF
45
CMONTH( ) Mengembalikan nama-nama bulan yang diberikan dari ekspresi Date atau DateTime CMONTH(dExpression | tExpression)
Contoh: ? CMONTH(DATE( )) STORE {^1998-02-16} TO gdDueDate ? 'Your payment was due in ', CMONTH(gdDueDate) STORE gdDueDate+60 TO gdFinalDate ? 'You must pay by ', CMONTH(gdFinalDate)
CTOD( ) Mengubah ekspresi karakter menjadi ekspresi Date CTOD(cExpression)
Contoh: STORE ‘1998-02-16’ TO cTanggal dTanggal=CTOD(cTanggal)
CTOT( ) Mengembalikan nilai DateTime dari ekspresi karakter CTOT(cCharacterExpression)
Contoh: Access 2000 XML Date Format: *2000-10-24T13:30:00 (24-hour exported from Access, whether *original was in 12- or 24-hour format) ? CTOT("2000-10-24T13:30:00")
SQL 2000 XML Date Format: 2000-10-24T20:47:58.170 2000-10-24T21:11:00
&& datetime (24 -hour) && Small DT (24-hour)
CURDIR( ) Mengembalikan nama direktory aktif CURDIR([cExpression])
Contoh: CLEAR ? 'Current directory: ', CURDIR( ) gcOldDir = SET('DEFAULT') + SYS(2003) SET DEFAULT TO (HOME( )) ? 'Visual FoxPro directory: ', CURDIR( ) SET DEFAULT TO (gcOldDir) ? 'Current directory: ', CURDIR( )
46
DATE( ) Mengembalikan tanggal sistem, atau membuat tanggal yang sesuai. DATE([nYear, nMonth, nDay])
Contoh: CLEAR SET CENTURY OFF ? DATE( ) && Displays today's date without the century SET CENTURY ON ? DATE( ) && Displays today's date with the century ? DATE(1998, 02, 16) && Displays a year 2000-compliant Date value
DATETIME( ) Mengembalikan tanggal dan jam sistem, atau yang ditentukan DATETIME([nYear, nMonth, nDay [, nHours [, nMinutes [, nSeconds]]]])
Contoh: tNewyear = DATETIME(YEAR(DATE( ) ) + 1, 1, 1) && Next New Year tToday = DATETIME( ) nSecondstonewyear = tNewyear - tToday CLEAR ? "There are " + ALLTRIM (STR(nSecondstonewyear)) ; + " seconds to the next New Year." CLEAR SET CENTURY ON SET DATE TO AMERICAN ? DATETIME(1998, 02, 16, 12, 34, 56) && Hasil: 02/16/1998 12:34:56 PM
DAY( ) Mengembalikan angka hari pada bulan yang diberikan oleh ekspresi Date atau DateTime DAY(dExpression | tExpression)
Contoh: STORE {^1998-03-05} TO gdBDate CLEAR ? CDOW(gdBDate) && Displays Thursday ? DAY(gdBDate) && Displays 5 ? 'That date is ', CMONTH(gdBDate), STR(DAY(gdBDate),2)
DBC( ) Mengambalikan nama dan path dari database aktif DBC( )
Contoh: CLOSE DATABASES OPEN DATABASE (d:\prod3\data\testdata') CLEAR ? DBC( )
&& nampak path dan nama database
47
DBF( ) Mengembalikan nama tabel atau nama alias yang terbuka pada area tertentu DBF([cTableAlias | nWorkArea])
Contoh: CLOSE DATABASES OPEN DATABASE (‘d:\prod3\Data\testdata') USE mhsd3 IN 2 ALIAS mhsd3fe CLEAR ? DBF(2) && nampak mhsd3.dbf ? DBF('mhsd3fe') && nampak mhsd3.dbf CLOSE DATABASES ? DBF( ) && nampak kosong
DBSETPROP( ) Menentukan property database atau field, nama koneksi, tabel atau view DBSETPROP(cName, cType, cProperty, ePropertyValue)
DBGETPROP( ) Mengembalikan property database, field, nama koneksi, tabel atau view DBGETPROP(cName, cType, cProperty) cType = CONNECTION, DATABASE, FIELD, atau VIEW
Contoh: CLOSE DATABASES CLEAR OPEN DATABASE (‘d:\prod3\data\testdata') USE mhsd3 = DBSETPROP("mhsd3.nim", "Field", "Comment", ; "Nomor induk mahasiswa") cRESULTS = DBGETPROP("customer.cust_id", "Field", "Comment") WAIT WINDOW "Koment field NIM : "+ cRESULTS
DBUSED( ) Mengembalikan nilai true (.T.) jika database yang disebutkan aktif DBUSED(cDatabaseName)
Contoh: CLOSE DATABASES OPEN DATABASE (‘d:\prod3\Data\testdata') CLEAR ? 'Testdata database open? ' ?? DBUSED('testdata') && Displays .T. ? 'Test database open? ' ?? DBUSED('test') && Displays .F.
48
DELETED( ) Mengembalikan nilai logika (.T. atau .F.) apakah sebuah rekord telah dihapus DELETED([cTableAlias | nWorkArea])
Contoh: CLOSE DATABASES OPEN DATABASE (‘d:\prod3\Data\testdata') USE mhsd3 DELETE FROM mhsd3 WHERE nilai<65 CLEAR LIST FIELDS nim, nama FOR DELETED( ) && List marked records RECALL ALL && Unmark all records marked for deletion
DESCENDING( ) Mengembalikan nilai logika apakah indeks dibuat dengan urutan DESCENDING DESCENDING([CDXFileName[, nIndexNumber [, nWorkArea | cTableAlias]]])
Contoh: CLOSE DATABASES OPEN DATABASE (‘d:\prod3\Data\testdata') USE mhsd3 CLEAR FOR nCount = 1 TO 254 IF !EMPTY(TAG(nCount)) && Checks for tags in the index ? TAG(nCount) + ' Descending? ' && Display tag name ?? DESCENDING(nCount) && Display descending status ELSE EXIT && Exit the loop when no more tags are found ENDIF ENDFOR
DIRECTORY( ) Mengembalikan nilai true (.T.) jika direktory yang ditentukan ada pada disk DIRECTORY(cDirectoryName)
DISKSPACE( ) Mengembalikan jumlah byte yang tersedia pada disk default atau yang dipilih DISKSPACE([cVolumeName [, nType]])
Contoh: CLOSE DATABASES OPEN DATABASE (‘d:\prod3\Data\testdata') USE mhsd3 CLEAR gnTableHead = HEADER( ) gnFileSize = gnTableHead + (RECSIZE( ) * RECCOUNT( ) + 1) IF DISKSPACE( ) > (gnFileSize * 3) WAIT WINDOW 'Sufficient diskspace to sort.' ELSE
49
WAIT WINDOW 'Insufficient diskspace. Sort cannot be done.' ENDIF
DisplayPath( ) DisplayPath(cFilename, nMaxLength)
Contoh: ? DISPLAYPATH('d:\prod3\data\mhsd3.dbf',10)
& mhsd3.dbf
DMY( ) Mengembalikan ekspresu karakter dalam format dd-mm-yyyy dari ekspresi date atau datetime DMY(dExpression | tExpression)
Contoh: CLEAR SET CENTURY ? DMY(DATE( SET CENTURY ? DMY(DATE(
OFF )) ON ))
DOW( ) Mengembalikan angka hari mingguan dari ekspresi Date atau DateTime DOW(dExpression | tExpression [, nFirstDayOfWeek]) Angka hari: 1=Minggu, 2=Senin, 3=Rabu, 4=Kemis, 5=Jumat, 6=Sabtu
Contoh: STORE DATE( ) TO gdDayNum CLEAR ? DOW(gdDayNum) ? CDOW(gdDayNum)
DRIVETYPE( ) Mengembalikan jenis drive yang digunakan DRIVETYPE(cDrive)
cDrive 1 2 3 4 5 6
Jenis Drive No type Floppy disk Hard disk Removable drive or network drive CD-ROM RAM disk1
50
DTOC( ) Mengubah jenis karakter dari ekspresi Date atau DateTime DTOC(dExpression | tExpression [, 1])
DTOS( ) Mengembalikan karakter tanggal dalam format yyyymmdd dari ekspresi date atau datetime DTOS(dExpression | tExpression)
Contoh: CLEAR ? DTOS(DATE( ))
DTOT( ) Mengembalikan nilai DateTime dari ekspresi date DTOT(dDateExpression)
Contoh: ? DTOT({^1998-02-16}) && Displays 02/16/1998 12:00:00am
EDITSOURCE( ) Membuka kotak editor untuk mengubah sumber program. EditSource(cShortCutID | [ cFilename [, nLineNo] [, cClassName] [, cMethodName|cProcName]])
Contoh: EDITSOURCE('d:\prod3\progs\program1.prg',2)
EMPTY( ) Menentukan apakah suatu ekspresi yang dievaluasi kosong EMPTY(eExpression)
EOF( ) Menentukan apakah posisi pointer rekord ada pada akhir file EOF([nWorkArea | cTableAlias])
Contoh: CLOSE DATABASES CLEAR OPEN DATABASE (‘d:\prod3\data\testdata’) USE mhsd3 GO TOP local recCtr, btnValue recCtr = 0 btnValue = 1
51
DO WHILE btnValue = 1 AND NOT EOF() ? "Nama : " + Nama recCtr = recCtr + 1 if (recCtr % 20) = 0 then btnValue =MESSAGEBOX ("Klik OK=Lanjut,Cancel=Kembali”,33) clear endif Skip 1 ENDDO =MESSAGEBOX("Selesai”,48)
ERROR( ) Mengembalikan angka ERROR terhadap setiap kesalahan yang terjadi ERROR( )
Contoh: CLEAR ON ERROR DO errhand WITH ERROR( ), MESSAGE( ) BRWSE ON ERROR RETURN *** Error handler *** PROCEDURE errhand PARAMETER errnum,message ? Message ? 'Error number: '+ ALLTRIM(STR(Errnum)) RETURN
EVALUATE( ) Untuk mengetahui jenis ekspresi dari ekspresi karakter EVALUATE(cExpression)
EXP( ) Menghitung eksponen dari nilai e (ex ) dimana x adalah ekspresi numerik EXP(nExpression)
Contoh: ? EXP(0) ? EXP(1)
&& Displays 1.00 && Displays 2.72
FCOUNT( ) Mengembalikan jumlah field dalam sebuah tabel FCOUNT([nWorkArea | cTableAlias])
Contoh: CLOSE DATABASES
52
OPEN DATABASE (HOME(2) + 'Data\testdata') USE customer && Opens Customer table SELECT 0 USE employee && Opens employee table CLEAR ? FCOUNT('CUSTOMER') ? FCOUNT('EMPLOYEE')
&& Displays 13, # of fields in Customer && Displays 22, # of fields in Employee
FDATE( ) Mengembalikan tanggal waktu modifikasi terakhir suatu file FDATE(cFileName [, nType])
Contoh: ? FDATE('FOXUSER.DBF', 1)
&& Displays the last modification DateTime
FIELD( ) Mengembalikan nama sebuah field dalam suatu tabel FIELD(nFieldNumber [, nWorkArea | cTableAlias])
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE customer && Opens Customer table CLEAR FOR gnCount = 1 TO FCOUNT( ) && Loop for number of fields ? FIELD(gnCount) && Display each field NEXT ? ? 'Number of fields: ' + ALLTRIM(STR(gnCount -1))
FILE( ) Mengembalikan nilai true (.T.) jika file yang ditentukan ada pada disk FILE(cFileName)
Contoh: SET PATH TO ‘d:\prod3\data’ CLEAR IF FILE('mhsd3.dbf') WAIT WINDOW 'File mhsd3.dbf ada’ ELSE WAIT WINDOW 'File mhsd3.dbf tidak ada’ ENDIF
FILTER( ) Mengembalikan ekspresi FILTER yang dibuat dari perintah SET FILTER FILTER([nWorkArea | cTableAlias])
53
Contoh: CLOSE DATABASES OPEN DATABASE (‘d:\prod3\Data\testdata') USE mhsd3 SET TALK ON SET FILTER TO SUBSTR(nama,3,1)=’A’ CLEAR ? FILTER( ) STORE FILTER('mhsd3') TO gcOldFilter SET FILTER TO Left(Nim,2)==’01’ ? FILTER( ) SET FILTER TO &gcOldFilter ? FILTER( ) LIST FIELDS nim, nama
FLOCK( ) Mengunci file tabel pada area aktif atau tabel yang ditentukan, mengembalikan nilai .T. jika proses penguncian berhasil, sebaliknya .F. FLOCK([nWorkArea | cTableAlias])
Contoh: CLOSE DATABASES OPEN DATABASE (‘d:\prod3\Data\testdata') USE mhsd3 SET REPROCESS TO 3 SECONDS SELECT * FROM mhsd3 INTO TABLE mhsd3fe IF FLOCK( ) REPLACE ALL nilai with 0 WAIT 'Proses selesai' WINDOW NOWAIT ELSE WAIT WINDOW 'File tidak bisa dikunci’ ENDIF BROWSE FIELDS nim,nama,nilai USE ERASE mhsd3fe.dbf
FOUND( ) Mengembalikan nilai true (.T.) jika fungsi CONTINUE, FIND, INDEXSEEK( ), LOCATE, atau SEEK berhasil menemukan yang dicari. FOUND([nWorkArea | cTableAlias])
Contoh: SET TALK OFF CLOSE DATABASES OPEN DATABASE (‘d:\prod3\data\testdata') USE mhsd3 STORE 0 TO gnCount LOCATE FOR NILAI=65
54
DO WHILE FOUND( ) gnCount = gnCount + 1 CONTINUE ENDDO WAIT WINDOW 'Total mahasiswa memperoleh nilai 65: ' ; + LTRIM(STR(gnCount)) NOWAIT
FSIZE( ) Mengembalikan ukuran dalam byte dari field yang ada pada sebuah tabel FSIZE(cFieldName [, nWorkArea | cTableAlias] | cFileName)
Contoh: SET COMPATIBLE OFF CLOSE DATABASES OPEN DATABASE (‘d:\prod3\Data\testdata') USE mhsd3 CLEAR ? FSIZE('nama') ? FSIZE('nim')
FTIME( ) Mengembalikan waktu modifikasi terakhir FTIME(cFileName)
FULLPATH( ) Mengembalikan path file yang ditentukan FULLPATH(cFileName1 [, nMSDOSPath | cFileName2])
FV( ) Mengembalikan nilai yang akan datang dari suatu investasi financial FV(nPayment, nInterestRate, nPeriods)
Contoh: STORE 500 TO gnPayment
&& Monthly payment
STORE .075/12 TO gnInterest STORE 48 TO gnPeriods CLEAR
&& 7.5% annual interest rate
&& Four years (48 months)
? FV(gnPayment, gnInterest, gnPeriods)
&& Displays 27887.93
GETBAR( ) Mengembalikan angka dari suatu item menu pada menu yang dibuat dengan perintah DEFINE POPUP GETBAR(MenuItemName, nMenuPosition)
55
Contoh: CLEAR ON KEY LABEL CTRL+Z DO showorder WAIT WINDOW "Press CTRL+Z to refresh." NOWAIT DEFINE POPUP popDemo MOVER FROM 2,2 DEFINE BAR 1 OF popDemo PROMPT 'One' DEFINE BAR 2 OF popDemo PROMPT 'Two' DEFINE BAR 3 OF popDemo PROMPT 'Three' DEFINE BAR 4 OF popDemo PROMPT 'Four' DO showorder ACTIVATE POPUP popDemo PROCEDURE showorder CLEAR @ 3,12 SAY '1 ' + PRMBAR('popDemo', @ 4,12 SAY '2 ' + PRMBAR('popDemo', @ 5,12 SAY '3 ' + PRMBAR('popDemo', @ 6,12 SAY '4 ' + PRMBAR('popDemo', RETURN
GETBAR('popDemo',1)) GETBAR('popDemo',2)) GETBAR('popDemo',3)) GETBAR('popDemo',4))
GETCOLOR( ) Menampilan kotak dialog Windows Color dan mengembalikan nilai warna yang dipilih GETCOLOR([nDefaultColorNumber])
Contoh: CLEAR ? GETCOLOR(255)
GETDIR( ) Menampilkan kotak dialog untuk memilih direktory GETDIR([cDirectory [, cText [, cCaption [, nFlags [, lRootOnly]]]]])
GETENV( ) Mengembalikan isi variabel environment GETENV(cVariableName)
GETFILE( ) Menampilkan kotak dialog membuka file GETFILE([cFileExtensions] [, cText] [, cOpenButtonCaption] [, nButtonType] [, cTitleBarCaption])
Contoh: CLOSE DATABASES SELECT 0 gcTable = GETFILE('DBF', 'Browse or Create a .DBF:', ; 'Browse', 1 'Browse or Create')
56
DO CASE CASE 'Untitled' $ gcTable CREATE (gcTable) CASE EMPTY(gcTable) RETURN OTHERWISE USE (gcTable) BROWSE ENDCASE
GETFONT( ) Menampilkan kotak dialog Font dan mengembalikan font yang dipilih GETFONT(cFontName [, nFontSize [, cFontStyle [, nFontCharSet])
Contoh: cMyFont = GETFONT( , , 'B')
GETPAD( ) Mengembalikan nama menu pada posisi menu bar yang ditentukan GETPAD(cMenuBarName, nMenuBarPosition)
Contoh: FOR gnCount = 1 TO CNTPAD('_msysmenu') && Number of pads IF PRMPAD('_msysmenu', GETPAD('_msysmenu', gnCount)) = 'Edit' RELEASE PAD (GETPAD('_msysmenu', gnCount)) OF _msysmenu EXIT ENDIF ENDFOR
GETPICT( ) Menampilkan kotak dialog membuka file gambar dan mengembalikan nama gambar yang dipilih GETPICT([cFileExtensions] [, cFileNameCaption] [, cOpenButtonCaption])
GETPRINTER( ) Menampilkan kotak dialog printer dan mengembalikan nama printer yang dipilih GETPRINTER( )
Contoh: CLEAR cPrinter = GETPRINTER( ) && Displays the Windows Printer Dialog *** Displays the name of the printer chosen *** WAIT WINDOW IIF(EMPTY(cPrinter), 'No printer chosen', cPrinter)
57
GETWORDCOUNT( ) Menghitung kata dalam sebuah string GetWordCount(cString[, cDelimiter])
Contoh: cString = "AAA aaa, BBB bbb, CCC ccc." ? GetWordCount(cString) && 6 - character groups, delimited by " " ? GetWordCount(cString, ",") && 3 - character groups, delimited by "," ? GetWordCount(cString, ".") && 1 - character group, delimited by "."
GETWORDNUM( ) Mengembalikan kata yang ditentukan dari sebuah string GETWORDNUM(cString, nIndex[, cDelimiter])
Contoh: cString = "AAA aaa, BBB bbb, CCC ccc." ? GetWordnum(cString,3) && Display: BBB
GOMONTH( ) Mengembalikan tanggal dari ekpsresi Date atau DateTime terhadap periode waktu sebelum dan sesudah ekspresi tanggal tersebut GOMONTH(dExpression | tExpression, nNumberOfMonths)
Contoh: SET CENTURY ON STORE GOMONTH({^1998-02-16}, 5) TO gdDeadLine CLEAR ? gdDeadLine && Displays 07/16/1998 ? GOMONTH({^1998-12-31}, 2) && Displays 02/28/1999 ? GOMONTH({^1998-12-31}, -2) && Displays 10/31/1998
HEADER( ) Mengembalikan jumlah byte header dari file tabel yang ditentukan atau aktif HEADER([nWorkArea | cTableAlias])
HOME( ) Mengembalikan nama-nama direktory dari Visual FoxPro dan Visual Studio HOME([nLocation])
Contoh: CLEAR ? 'Visual FoxPro startup directory: ? 'Visual FoxPro installation directory: ? 'Visual FoxPro samples directory:
58
', HOME( ) ', HOME(1) ', HOME(2)
? ? ? ? ?
'Visual Studio common directory: 'Visual FoxPro graphics directory: 'MSDN samples directory: 'Visual Studio tools directory: 'Visual FoxPro user app data directory:
', ', ', ', ',
HOME(3) HOME(4) HOME(5) HOME(6) HOME(7)
HOUR( ) Mengembalikan nilai jam dari ekspresi DateTime HOUR(tExpression)
Contoh: ? HOUR(DATETIME( )) ? HOUR({^1998-02-16 10:42a})
&& Displays 10
ID( ) Mengembalikan informasi mengenai jaringan yang sedang digunakan. ID( )
IIF( ) Mengembalikan satu dari dua kondisi ekpresi logika IIF(lExpression, eExpression1, eExpression2)
Contoh: CLOSE DATABASES OPEN DATABASE (‘d:\prod3\Data\testdata') USE mhsd3 CLEAR SCAN ? IIF(nilai>80,’Nilai Absolut adalah A’,’Bukan A’) ENDSCAN
INDBC( ) Mengembalikan nilai true (.T.) jika object database adalah database aktif INDBC(cDatabaseObjectName, cType)
Contoh: CLOSE DATABASES CREATE DATABASE mydbc && Creates a new database CREATE TABLE mytable (field1 C(10)) && Automatically added to database ? 'MyTable in the database? ' ?? INDBC('mytable', 'TABLE') && Returns .T. CLOSE DATABASES DELETE DATABASE mydbc DELETETABLES
59
INKEY( ) Mengembalikan angka key yang ditekan INKEY([nSeconds] [, cHideCursor])
Daftar nilai INKEY() Key F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 1 2 3 4 5 6 7 8 9 0 a b c d e f g h I j k l m n o p q r s t
Ybs 28 –1 –2 –3 –4 –5 –6 –7 –8 –9 133 134 49 50 51 52 53 54 55 56 57 48 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
SHIFT 84 85 86 87 88 89 90 91 92 93 135 136 33 64 35 36 37 94 38 42 40 41 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
60
CTRL 94 95 96 97 98 99 100 101 102 103 137 138 – – – – – – – – – – 1 2 3 4 5 6 7 127 9 10 11 12 13 14 15 16 17 18 19 20
ALT 104 105 106 107 108 109 110 111 112 113 139 140 120 121 122 123 124 125 126 127 128 19 30 48 46 32 18 33 34 35 23 36 37 38 50 49 24 25 16 19 31 20
u v w x y z INS HOME DEL END PAGE UP PAGE DOWN UP ARROW DOWN ARROW RIGHT ARROW LEFT ARROW ESC ENTER BACKSPACE TAB SPACEBAR
117 118 119 120 121 122 22 1 7 6 18 3 5 24 4 19 27 13 127 9 32
85 86 87 88 89 90 22 55 7 49 57 51 56 50 54 52 –/27 13 127 15 32
21 22 23 24 25 26 146 29 147 23 31 30 141 145 2 26 –*/27 10 127 148/* 32/–
22 47 17 45 21 44 162 151 163 159 153 161 152 160 157 155 –*/1 –/166 14 * 57
INLIST( ) Untuk menentukan apakah suatu ekspresi sesuai dengan ekspresi lain yang ada pada kumpulan ekpresi INLIST(eExpression1, eExpression2 [, eExpression3 ...])
Contoh: SET TALK ON STORE CMONTH(DATE( )) TO gcMonth DO CASE CASE INLIST(gcMonth,'January','February','March') STORE 'First Quarter' TO gcReporTitle CASE INLIST(gcMonth,'April','May','June') STORE 'Second Quarter' TO gcReporTitle CASE INLIST(gcMonth,'July','August','September') STORE 'Third Quarter' TO gcReporTitle OTHERWISE STORE 'Fourth Quarter' TO gcReporTitle ENDCASE WAIT WINDOW gcReporTitle
INPUTBOX( ) Menampilkan kotak dialog isian untuk memasukkan string tunggal INPUTBOX(cInputPrompt [, cDialogCaption] [, cDefaultValue] [, nTimeout])
Contoh: Y = "Nothing at all" Y = INPUTBOX("TypeHere","Input ",Y,5000)
61
INSMODE( ) Mengembalikan mode tombil INSERT/INS atau men-set menjadi On atau Off INSMODE([lExpression])
Contoh: SET TALK ON =INSMODE(.T.) && Set insert mode on ? INSMODE( ) = INSMODE(!INSMODE( )) && Toggle insert mode to opposite state ? INSMODE( )
INT( ) Mengubah ekspresi numerik dan mengembalikan nilai integer INT(nExpression)
Contoh: CLEAR ? INT(12.5) && Displays 12 ? INT(6.25 * 2) && Displays 12 ? INT(-12.5) && Displays -12 STORE -12.5 TO gnNumber ? INT(gnNumber) && Displays -12
ISALPHA( ) Untuk mengetahui apakah suatu ekpresi karakter adalah aphabetic ISALPHA(cExpression)
Contoh: CLOSE DATABASES OPEN DATABASE (‘d:\prod3\Data\testdata') USE mhsd3 CLEAR DISPLAY nama ? ISALPHA(nama) && Displays .T. DISPLAY nim ? ISALPHA(nim) && Displays .F.
ISBLANK( ) Untuk mengetahui apakah suatu ekpresi kosong ISBLANK(eExpression)
Contoh: CREATE TABLE mytable FREE (myfield C(20)) APPEND BLANK && Add new blank record CLEAR ? ISBLANK(myfield) && Displays .T. REPLACE myfield WITH 'John Smith' && Insert a value in the field ? ISBLANK(myfield) && Displays .F.
62
ISCOLOR( ) Menentukan apakah computer dapat menampilkan warna ISCOLOR( )
ISDIGIT( ) Menentukan apakah karakter paling kiri dari suatu ekpresi karakter adalah angka 0 sampai 9 ISDIGIT(cExpression)
Contoh: CLOSE DATABASES OPEN DATABASE (‘d:\prod3\Data\testdata') USE mhsd3 ? ISDIGIT(nama) && Displays .F. DISPLAY nilai ? ISDIGIT(ALLTRIM(STR(nilai))) && Displays .T.
ISEXCLUSIVE( ) Mengembalikan nilai true (.T.) jika tabel atau database dibuka Exclusive ISEXCLUSIVE([cTableAlias | nWorkArea | cDatabaseName [, nType]])
Contoh: cExclusive = SET('EXCLUSIVE') SET EXCLUSIVE OFF SET PATH TO (HOME(2) + 'data\') OPEN DATA testdata && Opens the test databsase USE customer && Not opened exclusively USE employee IN 0 EXCLUSIVE && Opened exclusively in another work area IF ISEXCLUSIVE( ) REINDEX && Can only be done if table opened exclusively ELSE WAIT WINDOW 'The table has to be exclusively opened' ENDIF SET EXCLUSIVE &cExclusive
ISFLOCKED( ) Mengembalikan status file tabel apakah terkunci atau tidak ISFLOCKED([nWorkArea | cTableAlias])
ISLOWER( ) Menentukan apakah karakter paling kiri dari sebuah ekspresi karakter adalah huruf kecil. ISLOWER(cExpression)
Contoh: CLEAR ? ISLOWER('redmond') ? ISLOWER('Redmond')
&& Displays .T. && Displays .F.
63
ISMOUSE( ) Mengembalikan nilai true (.T.) jika mouse terpasang dan dapat digunakan. ISMOUSE( )
Contoh: CLEAR ? IIF(ISMOUSE( ),’Ada Mouse’,’Mouse tidak ada’)
ISNULL( ) Mengembalikan nilai true (.T.) jika suatu ekspresi mempunyai nilai NULL ISNULL(eExpression)
Contoh: STORE .NULL. TO mNullvalue CLEAR ? mNullvalue && Display the value of the memory variable ? ISNULL(mNullvalue) && Returns .T., indicating a null value ? TYPE('mNullvalue') && Returns L, indicating a logical value ? (mNullvalue = .NULL.) && Returns .NULL., bad test for null values
ISREADONLY( ) Menentukan apakah suatu tabel atau database dibuka read-only. ISREADONLY([nWorkArea | cTableAlias])
Contoh: CLOSE DATABASES OPEN DATABASE (‘d:\prod3\data\testdata') USE mhsd3 NOUPDATE CLEAR ? ISREADONLY('mhsd3') && Returns .T.
ISRLOCKED( ) Mengembalikan status rekord, terkunci atau tidak ISRLOCKED([nRecordNumber, [nWorkArea | cTableAlias]])
ISUPPER( ) Menentukan apakah karakter pertama dalam sebuah ekspresi karakter adalah huruf besar ISUPPER(cExpression)
Contoh: ? ISUPPER('Belajar foxpro') ? ISUPPER('belajar FoxPro')
&& Displays .T. && Displays .F.
64
LASTKEY( ) Mengembalikan nilai integer tombol yang ditekan terakhir LASTKEY( )
Contoh: **Nama File: pQuit.prg If Lastkey()=27 && tombol ESC ditekan Clear event Quit Endif
LEFT( ) Mengembalikan karakter dimulai dari kiri sampai pada angka yang ditentukan. LEFT(cExpression, nExpression)
Contoh: CLEAR ? LEFT('Fakultas Ekonomi’, 3)
&& Displays Fak
LEN( ) Mengembalikan jumlah karakter dalam suatu ekpresi karakter LEN(cExpression)
Contoh: ? LEN('Fakultas Ekonomi’)
LENC( ) Mengembalikan jumlah karakter dalam suatu ekpresi karakter atau memo field. LENC(cExpression)
LIKE( ) Menentukan jika suatu ekspresi karakter sesuai dengan ekspresi karakter yang lain LIKE(cExpression1, cExpression2)
Contoh: CLOSE DATABASES OPEN DATABASE (‘d:\prod3\Data\testdata') USE mhsd3 CLEAR ? 'Semua mahasiswa yang namanya berisi huruf A ? SCAN FOR LIKE('A', NAMA) ? nama ENDSCAN USE
65
LOCK( ) Mengunci satu atau lebih rekord dalam suatu tabel LOCK([nWorkArea | cTableAlias]| [cRecordNumberList, nWorkArea | cTableAlias])
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') SET REPROCESS TO 3 AUTOMATIC STORE '1,2,3,4' TO gcRecList gcOldExc = SET('EXCLUSIVE') SET EXCLUSIVE OFF SELECT 0 USE employee && Open Employee table SELECT 0 USE customer && Open Customer table ? LOCK('1,2,3,4', 'customer') && Lock 1st 4 records in customer ? RLOCK(gcRecList, 'employee') && Lock 1st 4 records in employee UNLOCK IN customer UNLOCK IN employee SET EXCLUSIVE &gcOldExc
LOOKUP( ) Menampilkan isi fiel dari tabel dengan ekspresi tertentu LOOKUP(ReturnField, eSearchExpression, SearchedField [, cTagName])
Contoh: CLOSE DATABASES OPEN DATABASE (‘d:\prod3\data\testdata') USE mhsd3 CLEAR @ 2,2 SAY LOOKUP(nama, 80, nilai)
LOWER( ) Mengembalikan ekspresi karakter tertentu dalam huruf kecil LOWER(cExpression)
Contoh: STORE 'FOX' TO gcName CLEAR ? LOWER(gcName) && Displays fox
LTRIM( ) Mengembalikan ekspresi karakter dengan menghapus spasi kosong pada bagian kiri LTRIM(cExpression)
Contoh: STORE 'Denpasar ' TO gcKota STORE ' Bali' TO gcPropinsi CLEAR
66
? gcKota, gcPropinsi && Nampak: Denpasar Bali ? gcKota, LTRIM(gcPropinsi) && Nampak: Denpasar Bali
LUPDATE( ) Mengembalikan tanggal peubahan data terakhir LUPDATE([nWorkArea | cTableAlias])
Contoh: CLOSE DATABASES OPEN DATABASE (‘d:\prod3\data\testdata') USE mhsd3 CLEAR ? LUPDATE( )
MAX( ) Menilai sekumpulan ekspresi dan mengembalikan nilai maksimum MAX(eExpression1, eExpression2 [, eExpression3 ...])
Contoh: ? MAX(1,3,2,3,4,5,6)
&& Hasilnya: 6
MDY( ) Mengembalikan ekspresi Date atau DateTime kedalam format month-day-year MDY(dExpression | tExpression)
Contoh: SET CENTURY OFF CLEAR ? Longdate({^1998-02-16})
&& Displays Monday, February 16, 98
SET CENTURY ON ? Longdate({^1998-02-16})
&& Displays Monday, February 16, 1998
*** LongDate *** FUNCTION longdate PARAMETERS gdDate RETURN CDOW(gdDate) + ', ' + MDY(gdDate)
MEMLINES( ) Mengembalikan jumlah baris dalam sebuah field memo MEMLINES(MemoFieldName)
Contoh: CLOSE DATABASES CLEAR SET TALK OFF CLOSE DATABASES
67
OPEN DATABASE (‘d:\prod3\Data\testdata') USE mhsd3 SET MEMOWIDTH TO 65 gnLine = 1 GOTO 2 SCAN NEXT 3 gnMemoSize = MEMLINES(catatan) IF gnMemoSize = 0 STORE .T. TO glNoMemo STORE 1 TO gnMemoSize ELSE STORE .F. TO glNoMemo ENDIF IF gnLine + gnMemoSize > 65 EJECT gnLine = 1 ENDIF @ gnLine,2 SAY 'Nama Mahasiswa: '+ Nama gnLine = gnLine +1 @ gnLine,2 SAY 'Catatan : ' ?? IIF(glNoMemo, 'Tidak ada catatan’,Catatan) gnLine = gnLine + gnMemoSize + 2 IF gnLine > 24 gnLine = 1 CLEAR ENDIF ENDSCAN
MEMORY( ) Mengembalikan jumlah memory yang tersedia untuk menjalankan program eksternal MEMORY( )
MENU( ) Mengembalikan nama dari menu bar aktif sebagai karakter string MENU( )
Contoh: *** Simpan program dengan nama MENUEXAM.PRG CLEAR SET SYSMENU SAVE SET SYSMENU TO DEFINE PAD padSys OF _MSYSMENU PROMPT '\<System' COLOR SCHEME 3 ; KEY ALT+S, '' DEFINE PAD padEdit OF _MSYSMENU PROMPT '\<Edit' COLOR SCHEME 3 ; KEY ALT+E, '' DEFINE PAD padRecord OF _MSYSMENU PROMPT '\
68
PROCEDURE choice PARAMETER gcPad, gcMenu WAIT WINDOW 'You chose ' + gcPad + ; ' from menu ' + gcMenu NOWAIT IF gcPad = 'PADEXIT' SET SYSMENU TO DEFAULT ENDIF
MESSAGE( ) Mengembalikan pesan kesalahan sebagai karakter string atau isi dari baris program yang menyebabkan kesalahan MESSAGE([1])
Contoh: ON ERROR DO Errhand USE DataPelih ON ERROR && restore system error handler PROCEDURE Errhand ? 'Line of code with error: ' + MESSAGE(1) ? 'Error number: ' + STR(ERROR( )) ? 'Error message: ' + MESSAGE( )
MESSAGEBOX( ) Menampilkan kotak dialog konfirmasi MESSAGEBOX(eMessageText [,cTitleBarText][,nDialogBoxType ][,nTimeout])
Tabel Nilai nDialogBox Nilai 0 1 2 3 4 5 Value 16 32 48 64
Dialog box buttons OK button only OK and Cancel buttons Abort, Retry, and Ignore buttons Yes, No, and Cancel buttons Yes and No buttons Retry and Cancel buttons Icon Stop sign Question mark Exclamation point Information (i) icon
Value 0 256
Default button First button Second button Nilai yang dikembalikan: Return value Button 1 OK
69
2 3 4 5 6
Cancel Abort Retry Ignore Yes
7
No
MESSAGEBOX("HELLO","MyTitle",36,1) MESSAGEBOX("HELLO",36,"MyTitle",1) MESSAGEBOX("HELLO",36,1) MESSAGEBOX("HELLO",36,1,"MyTitle")
Contoh: cMessageTitle = 'My Application' cMessageText = 'Record not found. Would you like to search again?' nDialogType = 4 + 32 + 256 * 4 = Yes and No buttons, 32 = Question mark icon * 256 = Second button is default nAnswer = MESSAGEBOX(cMessageText, nDialogType, cMessageTitle) DO CASE CASE nAnswer = 6 WAIT WINDOW 'You chose Yes' CASE nAnswer = 7 WAIT WINDOW 'You chose No' ENDCASE
MIN( ) Menilai sekumpulan ekspresi dan mengembalikan nilai minimum MIN(eExpression1, eExpression2 [, eExpression3 ...])
Contoh: ? MIM(1,3,2,3,4,5,6)
&& Hasilnya: 1
MINUTE( ) Mengembalikan angka menit dalam ekspresi DateTime MINUTE(tExpression)
Contoh: CLEAR ? MINUTE(DATETIME( )) ? MINUTE({^1998-02-16 10:42a})
&& Displays 42
MLINE( ) Mengembalikan baris dari field memo sebagai karakter string MLINE(MemoFieldName, nLineNumber [, nNumberOfCharacters])
Contoh: CLEAR SET TALK OFF SET MEMOWIDTH TO 50
70
CLOSE DATABASES CREATE TABLE tmemo (name c(10), notes m) APPEND BLANK FOR gnOuterLoop = 1 TO 5 FOR gnAlphabet = 65 TO 75 REPLACE notes WITH REPLICATE(CHR(gnAlphabet), 10) ; + CHR(13) ADDITIVE NEXT NEXT STORE MEMLINES(notes) TO gnNumLines STORE SECONDS( ) TO gnBegin FOR gnCount = 1 TO gnNumLines ? MLINE(notes, gnCount) NEXT ? STR(SECONDS( ) - gnBegin, 4, 2) + ' seconds' WAIT 'Tekan space bar' WINDOW CLEAR STORE 0 TO _MLINE STORE SECONDS( ) TO gnBegin FOR count = 1 TO gnNumLines ? MLINE(notes, 1, _MLINE) NEXT ? STR(SECONDS( ) - gnBegin, 4, 2) + ' seconds' SET TALK ON CLOSE DATABASES ERASE tmemo.dbf ERASE tmemo.fpt
MOD( ) Membagi satu ekspresi numeric dengan ekspresi numeric lainnya dan mengembalikan sisa pembagiannya. Pengganti fungsi ini dapat digunakan operator %. MOD(nDividend, nDivisor)
Contoh: CLEAR ? MOD(36,10) && sisanya 6 ? MOD((4*9), (90/9)) && sisanya 6 ? MOD(25.250,5.0) && sisanya 0.250
MONTH( ) Mengembalikan angka bulan dari ekspresi Date atau DateTime MONTH(dExpression | tExpression)
Contoh: CLEAR ? DATE( ) && Menampilkan tanggal hari ini ? MONTH(DATE( )) && Menampilkan angka bulan STORE {^1998-05-03} TO gdBuy STORE MONTH(gdBuy + 31) TO gdMonth ? gdMonth && Menampilkan angka bulan juni yaitu 6
71
MTON( ) Mengembalikan nilai Numeric dari ekspresi Currency MTON(mExpression)
Contoh: STORE $24.95 TO gyMoney CLEAR ? "gyMoney is type: " ?? TYPE('gyMoney') && Hasilnya Y, nilai jenis currency gyMoney = MTON(gyMoney) ? "gyMoney mempunyai jenis : " ?? TYPE('gyMoney')
NDX( ) Mengembalikan nama file index (.IDX) dari tabel aktif atau tabel yang ditentukan. NDX(nIndexNumber [, nWorkArea | cTableAlias])
NTOM( ) Mengembalikan nilai Currency dengan empat desimal dari ekspresi numeric NTOM(nExpression)
NUMLOCK( ) Mengembalikan mode tombol NUM LOCK atau mengubah kondisi On atau Off NUMLOCK([lExpression])
Contoh: gcOldLock = NUMLOCK( ) WAIT WINDOW 'Tekan space bar, untuk mengubah Num Lock on' = NUMLOCK(.T.) WAIT WINDOW 'Tekan space bar, untuk mengubah Num Lock off' = NUMLOCK(!NUMLOCK( )) WAIT WINDOW 'Tekan space bar, untuk ke kondisi awal’ = NUMLOCK(gcOldLock)
NVL( ) Mengembalikan nilai dari dua ekspresi yang bernilai tidak NULL NVL(eExpression1, eExpression2)
Contoh: STORE .NULL. TO glMyNull CLEAR ? NVL(.T., glMyNull) && Hasilnya .T. ? NVL(glMyNull, glMyNull) && Hasilnya .NULL.
72
OCCURS( ) Mengembalikan angka hasil dari perhitungan karakter pengulangan dari ekspresi karakter dengan ekpresi karakter lain, bila angka yang dihasilkan 0 berarti tidak ada karakter yang dicari. OCCURS(cSearchExpression, cExpressionSearched)
Contoh: STORE 'abracadabra' TO gcstring CLEAR ? OCCURS('a', gcstring) && a ada 5 ? OCCURS('b', gcstring) && b ada 2 ? OCCURS('c', gcstring) && c ada 1 ? OCCURS('e', gcstring) && e tidak ada = 0
ON( ) Mengembalikan instruksi yang ditentukan dari setiap even pada perintah-perintah: ON ERROR, ON ESCAPE, ON KEY LABEL atau ON PAGE ON(cONCommand [, KeyLabelName]) cONCommand: ON ERROR =ERROR, ON ESCAPE = ESCAPE, ON KEY LABEL = KEY, dan ON PAGE = PAGE
Contoh: ON ERROR DO errorhand ON KEY LABEL CTRL+F2 WAIT WINDOW 'Anda menekan tombol Ctrl+F2' ON KEY LABEL ALT+Z DISPLAY MEMORY CLEAR ? ON('ERROR') && sama dengan DO errorhand ? ON('KEY', 'CTRL+F2') ? ON('KEY', 'ALT+Z') ON ERROR ON KEY LABEL CTRL+F2 ON KEY LABEL ALT+Z
ORDER( ) Mengembalikan nama dari kontrol file index atau tag dari tabel yang ditentukan ORDER([nWorkArea | cTableAlias [, nPath]])
Contoh: CLOSE DATABASES OPEN DATABASE (‘d:\prod3\Data\testdata') USE mhsd3 ORDER nim ? ORDER( ) && Hasilnya NIM ? ORDER('mhsd3’, 1) && Displays MHSD3.CDX
PAD( ) Mengembalikan karakter huruf besar dari judul menu yang dipilih dari menu bar. PAD([cMenuTitle [, cMenuBarName]])
73
Contoh: *** Nama: PADEXAM.PRG *** CLEAR SET SYSMENU SAVE SET SYSMENU TO DEFINE PAD padSys OF _MSYSMENU PROMPT '\<System' COLOR SCHEME 3 ; KEY ALT+S, '' DEFINE PAD padEdit OF _MSYSMENU PROMPT '\<Edit' COLOR SCHEME 3 ; KEY ALT+E, '' DEFINE PAD padRecord OF _MSYSMENU PROMPT '\
PADL( ) | PADR( ) | PADC( ) Mengembalikan suatu string dari ekspresi karakter dengan menambahkan space kosong atau karakter tertentu (pad tertentu) sesuai dengan panjang yang ditentukan PADL(eExpression, nResultSize [, cPadCharacter]) PADR(eExpression, nResultSize [, cPadCharacter]) PADC(eExpression, nResultSize [, cPadCharacter])
Contoh: STORE 'TITLE' TO CLEAR ? PADL(gcString, ? PADR(gcString, ? PADC(gcString,
gcString 40, '=') 40, '=') 40, '=')
PARAMETERS( ), PCOUNT() Mengembalikan angka dari parameter yang digunakan dalam memanggil program, procedure atau fungsi. PARAMETERS() PCOUNT()
Contoh: ** Nama File: Pro1 DO testpar WITH 1,2,3 PROCEDURE testpar PARAMETERS gn1,gn2,gn3 gcMessage = 'PARAMETERS( ) ='+ALLTRIM(STR(PARAMETERS( )))
74
WAIT WINDOW (gcMessage) RETURN Endproc ** Nama File: Pro2 SET TALK OFF gnVal1 = 10 gnVal2 = 20 gnVal3 = 30 gnVal4 = 15 gnMin = getavg(gnVal1, gnVal2, gnVal3, gnVal4) ? 'Nilai rata-rata = ’ ?? gnMin FUNCTION getavg PARAMETERS gnPara1,gnPara2,gnPara3,gnPara4,gnPara5, ; gnPara6,gnPara7,gnPara8,gnPara9 IF PARAMETERS( ) = 0 && atau IF Pcount()=0 RETURN 0 ENDIF gnResult = 0 FOR gnCount = 1 to PARAMETERS( ) gcCompare = 'gnPara' +(STR(gnCount,1)) gnResult = gnResult + EVAL(gcCompare) ENDFOR gnResult = gnResult / (gnCount - 1) RETURN gnResult Endfunc
PAYMENT( ) Mengembalikan jumlah setiap pembayaran periodik atas pinjaman dengan bungan tetap PAYMENT(nPrincipal, nInterestRate, nPayments)
Contoh: STORE 100000 to gnPrincipal && Rp100,000 Pokok Pinjaman STORE .105/12 TO gnInterest && 10.5% p.a. STORE (20*12) TO gnPayments && Periode 20 tahun CLEAR ? PAYMENT(gnPrincipal, gnInterest, gnPayments) && Hasil= 998.38
PCOL( ) Mengembalikan posisi kolom sekarang dari printer. Dapat juga digunakan operator $ PCOL( )
Contoh: CLEAR @ PROW( ), PCOL( )+12 SAY ‘Saya sedang belajar’ @ PROW( ), $+12 SAY ‘Saya sedang belajar’
PI( ) Mengembalikan konstanta PI = 3,14 PI( )
75
POPUP( ) Mengembalikan sebagai suatu string menu aktif jika menu sudah didefinisikan POPUP([cMenuName])
PRINTSTATUS( ) Mengembalikan nilai logika true (.T.) jika printer atau device printer adalah online. PRINTSTATUS( )
Contoh: STORE PRINTSTATUS( ) TO glReady IF NOT glReady WAIT 'Printer belum aktif' WINDOW ELSE WAIT 'Printer siap!' WINDOW ENDIF
PRMBAR( ) Mengembalikan teks dari suatu item menu PRMBAR(cMenuName, nMenuItemNumber)
PRMPAD( ) Mengembalikan teks dari judul menu PRMPAD(MenuBarName, MenuTitleName)
Contoh: CLEAR SET TALK OFF STORE 'mnuExample' TO gcPopName DEFINE DEFINE DEFINE DEFINE
MENU mnuExample BAR AT LINE 1 PAD titleOne OF mnuExample PROMPT 'This will be returned' PAD titleTwo OF mnuExample PROMPT '\
=messagebox( PRMPAD('mnuExample', 'titleOne') ) =messagebox( PRMPAD('mnuExample', 'titleTwo') ) =messagebox( PRMPAD(gcPopName, 'titleThree') ) ACTIVATE MENU mnuExample DEACTIVATE MENU mnuExample RELEASE MENU mnuExample
PROGRAM( ) Mengembalikan nama program yang sedang berjalan, atau baris prosedur program, atau nama program yang sedang berjalan ketika terjadi kesalahan. PROGRAM([nLevel])
76
Contoh: ON ERROR DO errhand WITH PROGRAM( ) *** The next line should generate an error *** USE datasalah && tidak ada data namanya ini ON ERROR PROCEDURE errhand PARAMETERS gcProgram WAIT 'Kesalahan terjadi pada program ' + gcProgram WINDOW
PROMPT( ) Mengembalikan teks judul menu dari menu bar atau item menu yang dipilih dari suatu menu tertentu. PROMPT( )
PROPER( ) Mengembalikan ekspresi karakter yang mana setiap awal kata diubah menjadi huruf besar. PROPER(cExpression)
Contoh: STORE 'fakultas ekonomi UNUD’ TO gcExpr1 STORE 'FAKULTAS EKONOMI UNUD’ TO gcExpr2 CLEAR ? PROPER(gcExpr1) ? PROPER(gcExpr2)
&& Hasilnya: Fakultas Ekonomi Unud && Hasilnya: Fakultas Ekonomi Unud
PROW( ) Mengembalikan angka baris sekarang dari printer atau head printer PROW( )
Contoh: @ PROW( ), PCOL( ) + 12 SAY 'Ekonomi Unud’ @ PROW( ), $+12 SAY 'Selalu Jaya’
PV( ) Mengembalikan nilai sekarang dari investasi PV(nPayment, nInterestRate, nTotalPayments)
Contoh: STORE 500 to gnPayment && Pembayaran setiap bulan STORE .075/12 TO gnInterest && 7.5% p.a. STORE 48 TO gnPeriods && Selama 48 bulan CLEAR ? PV(gnPayment, gnInterest, gnPeriods) && Hasil: 20679.19
77
QUARTER( ) Mengembalikan angka kwartal 1,2,3, atau 4 dari ekspresi Date atau DateTime QUARTER(dExpression | tExpression [, nMonth])
RAT( ) Mengembalikan angka posisi dari akhir karakter dalam karakter string lainnya RAT(cSearchExpression, cExpressionSearched [, nOccurrence])
Contoh: STORE 'abracadabra' TO string STORE 'a' TO find_str CLEAR ? RAT(find_str,string) && Hasil: 11 ? RAT(find_str,string,3) && Hasil: 6
RECCOUNT( ) Mengembalikan jumlah rekord aktif atau dari tabel yang ditentukan RECCOUNT([nWorkArea | cTableAlias])
Contoh: CLOSE DATABASES OPEN DATABASE (‘d:\prod3\Data\testdata') USE mhsd3 NJumlahMhs=Reccount() ? ‘Jumlah mahasiswa sebanyak ‘+Ltrim(Str(nJumlahMhs,10))+’ orang’
RECNO( ) Mengembalikan angka nomer rekord aktif atau dari tabel yang ditentukan RECNO([nWorkArea | cTableAlias])
Contoh: CLOSE DATABASES OPEN DATABASE (‘d:\prod3\Data\testdata') USE mhsd3 Locate for nilai=80 IF FOUND( ) ? ‘Mahasiswa ada pada nomor rekord: ‘+Str(recno(),3) else ? ‘Tidak ada mahasiswa memperoleh nilai 80’ ENDIF
RECSIZE( ) Mengembalikan ukuran atau lebar tabel RECSIZE([nWorkArea | cTableAlias])
78
RELATION( ) Mengembalikan ekspresi relasional yang digunakan RELATION(nRelationNumber [, nWorkArea | cTableAlias])
REPLICATE( ) Mengembalikan suatu karakter dari ekspresi karakter sejumlah angka pengulangan. REPLICATE(cExpression, nTimes)
Contoh: CLEAR ? REPLICATE('CINTA ',4) && Hasilnya: CINTA CINTA CINTA CINTA
RIGHT( ) Mengembalikan karakter bagian kanan dari suatu karakter string sejumlah tertentu RIGHT(cExpression, nCharacters)
Contoh: CLEAR ? RIGHT('FE UNUD', 5)
&& Hasilnya: UNUD
RLOCK( ) Mencoba untuk mengunci beberapa rekord atau satu record RLOCK([nWorkArea | cTableAlias] | [cRecordNumberList, nWorkArea | cTableAlias])
ROUND( ) Mengembalikan ekspresi numerik dalam aturan pembulatan tertentu ROUND(nExpression, nDecimalPlaces)
Contoh: SET DECIMALS TO 4 SET FIXED ON CLEAR ? ? ? ? ? ?
ROUND(1234.1962, ROUND(1234.1962, ROUND(1234.1962, ROUND(1234.1962, ROUND(1234.1962, ROUND(1234.1962,
3) && Hasil: 1234.1960 2) && Hasil: 1234.2000 0) && Hasil: 1234.0000 -1) && Hasil: 1230.0000 -2) && Hasil: 1200.0000 -3) && Hasil 1000.0000
SET FIXED OFF SET DECIMALS TO 2
79
RTRIM( ) Mengembalikan suatu karakter string yang dihasilkan dari ekspresi karakter dengan menghapus spasi kosong pada bagian kanan/akhir. RTRIM(cExpression)
SELECT( ) Mengembalikan angka dari area kerja yang aktif SELECT([ 0 | 1 | cTableAlias ])
SPACE( ) Membuat spasi kosong SPACE(nSpaces)
SQRT( ) Mengembalikan nilai square atau akar dari suatu ekspresi numerik SQRT(nExpression)
STR( ) Mengembalikan karakter dari ekspresi numeric yang ditentukan STR(nExpression [, nLength [, nDecimalPlaces]])
STUFF( ) Mengembalikasi suatu karakter dari penyisipan atau penggantian ekspresi karakter STUFF(cExpression, nStartReplacement, nCharactersReplaced, cReplacement)
Contoh: STORE 'abcdefghijklm' TO gcString1 STORE '12345' TO gcString2 CLEAR ? STUFF(gcString1, 4, 0, gcString2) && insert ? STUFF(gcString1, 4, 3, gcString2) && replace ? STUFF(gcString1, 4, 6, '') && delete ? STUFF(gcString1, 4, 1, gcString2) && replace and insert ? STUFF(gcString1, 4, 4, gcString2) && replace and delete ? STUFF(gcString1,4,LEN(gcString1),gcString2) && replace, delete rest
SUBSTR( ) Mengembalikan suatu karakter string dari ekspresi karakter atau field memo SUBSTR(cExpression, nStartPosition [, nCharactersReturned])
80
Contoh: STORE '20040601' TO mystring CLEAR ? SUBSTR(mystring, 1, 4) && Hasil: 2004 ? SUBSTR(mystring, 5) && Hasil: 0601
TRANSFORM( ) Mengembalikan karakter string dari suatu ekspresi dalam format yang ditentukan oleh suatu format code TRANSFORM(eExpression, [cFormatCodes])
Contoh: STORE 12.34 TO gnPrice CLEAR ? TRANSFORM(gnPrice, '$$$$.99')
&& Displays $12.34
TYPE( ) Menguji suatu ekspresi dan mengembalikan jenis data dari isi ekspresi TYPE(cExpression)
Contoh: nTest = 1.01 cTest = "String" CLEAR ? TYPE('customer.contact') && Displays C ? TYPE('(12 * 3) + 4') && Displays N ? TYPE('DATE( )') && Displays D ? TYPE('.F. OR .T.') && Displays L ? TYPE('ANSWER=42') && Displays U ? TYPE('$19.99') && Displays Y ? TYPE('nTest') && Displays N ? TYPE('cTest') && Displays C
UPPER( ) Mengembalikasi ekspresi karakter dalam huruf besar UPPER(cExpression)
Contoh: CLEAR ? UPPER('abcdefgh')
&& Displays ABCDEFGH
USED( ) Menentukan jika suatu alias digunakan atau suatu tabel terbuka pada area kerja tertentu USED([nWorkArea | cTableAlias])
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata')
81
SELECT A USE customer && Opens Customer table SELECT B USE orders && Opens Orders table SELECT C USE employee && Opens Employee table ? USED('A') && Displays .T. ? USED('B') && Displays .T. ? USED(4) && Displays .F.
VAL( ) Mengembalikan nilai numerik dari ekspresi karakter angka VAL(cExpression)
Contoh: CLEAR STORE '12' TO A STORE '13' TO B ? VAL(A) + VAL(B) && Displays 25.00 STORE '1.25E3' TO C ? 2 * VAL(C) && Displays 2500.00
WEEK( ) Mengembalikan angka yang menunjukkan urutan minggu pada tahun tertentu dari ekspresi Date atau DateTime WEEK(dExpression | tExpression [, nFirstWeek] [, nFirstDayOfWeek])
Contoh: CLEAR ? WEEK(DATE( )) ? WEEK({^1998-02-16})
&& Displays 8
YEAR( ) Mengembalikan angka tahun dari ekspresi Date atau DateTime YEAR(dExpression | tExpression)
Contoh: CLEAR ? YEAR(DATE( ))
82
Command dalam Visual FoxPro & Digunakan untuk menunjukkan substitusi macro & VarName[.cExpression]
Contoh: ** 1 STORE SET('TALK') TO gcSaveTalk SET TALK OFF * * Additional program code * SET TALK &gcSaveTalk && Restore original TALK setting
ACTIVATE MENU Menampilan dan mengaktifkan menu bar ACTIVATE MENU MenuBarName
[NOWAIT]
[PAD MenuTitleName]
ACTIVATE POPUP Menampilkan dan mengaktifkan menu ACTIVATE POPUP MenuName [AT nRow, nColumn] [BAR nMenuItemNumber] [NOWAIT] [REST]
Contoh: *** Nama: PRG2.prg DEFINE PAD Menu1 OF _Msysmenu PROMPT "\<Menu" ; COLOR SCHEME 3 KEY ALT+U, "" DEFINE PAD Menu2 OF _Msysmenu PROMPT "E\<XIT" ; COLOR SCHEME 3 KEY ALT+X, "" ON PAD MENU1 OF _Msysmenu ACTIVATE POPUP Menu1 ON SELECTION PAD MENU2 OF _Msysmenu pQuit() DEFINE DEFINE DEFINE DEFINE DEFINE
POPUP BAR 1 BAR 2 BAR 3 BAR 4
MENU1 MARGIN RELATIVE OF MENU1 PROMPT "\<1. OF MENU1 PROMPT "\<2. OF MENU1 PROMPT "\-" OF MENU1 PROMPT "\<3.
SHADOW COLOR SCHEME 4 Data Mahasiswa" Laporan" Backup Data"
ON SELECTION BAR 1 OF MENU1 Do Form Forms\Form1 ON SELECTION BAR 2 OF MENU1 Do Form Forms\Form2 ON SELECTION BAR 4 OF MENU1 Do Form Forms\Form3 ACTIVATE MENU _Msysmenu NOWAIT
83
ADD TABLE Menambah tabel bebas kedalam database aktif ADD TABLE TableName | ?
[NAME LongTableName]
Contoh: CREATE DATABASE mydbc1 CREATE DATABASE mydbc2 SET DATABASE TO mydbc1 CREATE TABLE table1 (cField1 C(10), n N(10)) && Adds table to mydbc1 CLOSE TABLES && A table must be closed to remove it from a database REMOVE TABLE table1 SET DATABASE TO mydbc2 ADD TABLE table1 RENAME TABLE table1 TO table2
APPEND Menambah satu atau lebih rekord baru pada akhir tabel APPEND [BLANK] [IN nWorkArea | cTableAlias] [NOMENU] APPEND FROM ARRAY ArrayName [FOR lExpression] [FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton] APPEND FROM FileName | ? [FIELDS FieldList] [FOR lExpression] [[TYPE] [DELIMITED [WITH Delimiter | WITH BLANK | WITH TAB | WITH CHARACTER Delimiter] | DIF | FW2 | MOD | PDOX | RPD | SDF | SYLK | WK1 | WK3 | WKS | WR1 | WRK | CSV | XLS | XL5 [SHEET cSheetName] | XL8 [SHEET cSheetName]]] [AS nCodePage] APPEND GENERAL GeneralFieldName [FROM FileName] [DATA cExpression] [LINK] [CLASS OLEClassName] APPEND MEMO MemoFieldName FROM FileName[OVERWRITE] [AS nCodePage] APPEND PROCEDURES FROM FileName
[AS nCodePage] [OVERWRITE]
Contoh: Berikut ini contoh penggunaan APPEND BLANK untuk membuat tabel yang berisi 10 rekord, perintah-perintah APPEND lainnya. CLOSE DATABASES CREATE TABLE Random (cValue N(3)) FOR nItem = 1 TO 10 && Append 10 records APPEND BLANK REPLACE cValue WITH 1 + 100 * RAND( ) && Insert random values ENDFOR CLEAR LIST && Display the values gnMaximum = 1 && Initialize minimum value gnMinimum = 100 && Initialize maximum value SCAN gnMinimum = MIN(gnMinimum, cValue) gnMaximum = MAX(gnMaximum, cValue) ENDSCAN
84
? 'The minimum value is: ', gnMinimum ? 'The maximum value is: ', gnMaximum
&& Display minimum value && Display maximum value
LOCAL ARRAY aNewRec(3) * Create the table CREATE TABLE Test FREE (Object C(10), Color C(16), SqFt n(6,2)) SCATTER TO aNewRec BLANK && Create a new array from the table aNewRec[1]="Box" && Fill the the array aNewRec[2]="Red" aNewRec[3]=12.5 APPEND FROM ARRAY aNewRec && Add record containing array contents && to the table // CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE customer && Open customer table COPY STRUCTURE TO backup USE backup APPEND FROM customer FOR country = 'Finland' COPY TO temp TYPE DELIMITED MODIFY FILE temp.txt USE DELETE FILE backup.dbf DELETE FILE temp.txt // CREATE TABLE MyGenTbl (mygenfield G) APPEND BLANK && Add a blank record APPEND GENERAL mygenfield FROM C:\EXCEL\BOOK1.XLS CLASS EXCELCHART // CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE employee && Open Employee table WAIT WINDOW 'Employee notes memo field - press ESC' NOWAIT MODIFY MEMO notes NOEDIT && Open the notes memo field COPY MEMO notes TO test.txt && Create test file from memo field WAIT WINDOW 'TEST.TXT text file - press ESC' NOWAIT MODIFY FILE test.txt NOEDIT && Open the text file WAIT WINDOW 'Employee notes now appended - press ESC' NOWAIT APPEND MEMO notes FROM test.txt && Add contents of text file MODIFY MEMO notes NOEDIT && Display memo field again WAIT WINDOW 'Overwrite Employee notes- press ESC' NOWAIT APPEND MEMO notes FROM test.txt OVERWRITE && Replace notes MODIFY MEMO notes NOEDIT NOWAIT DELETE FILE test.txt CLOSE DATABASES // * Open the testdata database OPEN DATABASE (HOME(2) + 'Data\testdata') * Create a free, temporary table with one memo field called mProcedure CREATE TABLE mytable FREE (mProcedure M) APPEND BLANK && Add a blank record to mytable * Add PROCEDURE command, name, and carriage return/linefeed to * memo field REPLACE mProcedure WITH "PROCEDURE MyProcedure" + CHR(13) + CHR(10) * Copy contents of memo field to temporary file COPY MEMO mProcedure TO mytemp.txt USE && Close the temporary table APPEND PROCEDURES FROM mytemp.txt && Copy procedure to the database CLEAR
85
* Display the procedures associated with the current database DISPLAY PROCEDURES DELETE FILE mytable.dbf && Erase temporary table DELETE FILE mytable.fpt && Erase temporary table memo file DELETE FILE mytemp.txt && Erase temporary text file
AVERAGE Menghitung rata-rata aritmatika dari ekspresi numerik atau field AVERAGE [ExpressionList] [Scope] [FOR lExpression1] [WHILElExpression2] [TO VarList | TO ARRAY ArrayName] [NOOPTIMIZE]
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE orders && Open order table CLEAR AVERAGE Order_Amt && Calcuate averages of all orders AVERAGE Order_Amt TO gnAvg && Store average to memory variable ? 'Average order amount: ' ?? gnAvg && Display the average again
BLANK Menghapus data dari seluruh (tanpa argumen) field yang ada dalam rekord aktif BLANK [FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE] [IN nWorkArea | cTableAlias]
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Open customer table CLEAR DISPLAY && Displays the current record SCATTER TO gaCustomer && Create array with record contents BLANK && Clear the record DISPLAY && Displays the blank record GATHER FROM gaCustomer && Restore original record contents DISPLAY && Display the restored record
BROWSE Membuka window Browse dan menampilkan rekord tabel yang aktif atau tabel tertentu yang dipilih. BROWSE [FIELDS FieldList] [FONT cFontName [, nFontSize]] [STYLE cFontStyle] [FOR lExpression1 [REST]] [FORMAT] [FREEZE FieldName] [KEY eExpression1 [, eExpression2]] [LAST | NOINIT] [LOCK nNumberOfFields] [LPARTITION] [NAME ObjectName] [NOAPPEND] [NOCAPTIONS] [NODELETE] [NOEDIT | NOMODIFY] [NOLGRID] [NORGRID] [NOLINK] [NOMENU] [NOOPTIMIZE] [NOREFRESH] [NORMAL] [NOWAIT]
86
[PARTITION nColumnNumber [LEDIT] [REDIT]] [PREFERENCE PreferenceName] [SAVE] [TIMEOUT nSeconds] [TITLE cTitleText] [VALID [:F] lExpression2 [ERROR cMessageText]] [WHEN lExpression3] [WIDTH nFieldWidth] [WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN] [COLOR SCHEME nSchemeNumber]
Contoh 1: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Open customer table IF _WINDOWS BROWSE FIELDS contact FONT 'System', 15 ENDIF IF _MAC BROWSE FIELDS contact FONT 'Geneva', 14 ENDIF
Contoh 2: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Open customer table BROWSE FIELDS phone :H = 'Phone Number:' , ; company :H = 'Company:' ; FREEZE phone
Contoh 3: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Open customer table SET ORDER TO postalcode BROWSE KEY '10000', '30000'
Contoh 4: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Open customer table BROWSE PARTITION 20 REDIT
Contoh 5 DEFINE WINDOW wBrowse FROM 1,1 TO 24,40 ; CLOSE ; GROW ; COLOR SCHEME 10 CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Open customer table BROWSE WINDOW wBrowse ; FIELDS phone :H = 'Phone Number:' , ; company :H = 'Company:' ; TIMEOUT 10 RELEASE WINDOW wBrowse
Contoh 6 CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Open customer table BROWSE; TITLE 'My Browse Window' ; FIELDS phone :H = 'Phone Number' , ; company :H = 'Company:'
87
STYLE 'NU'
STYLE 'NU'
Contoh 7: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE products && Open products table IF _WINDOWS OR _MAC SET STATUS BAR ON ENDIF USE products BROWSE FIELDS in_stock :V = in_stock < 100 ; :F ; :E = 'The stock amount must be less than 100'
Contoh 8: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE products && Open products table BROWSE FIELDS unit_price :P = '99,999.99'
Contoh 9: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE products && Open products table BROWSE FIELDS in_stock :B = 1, 100 :F
Contoh 10: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE products && Open products table BROWSE FIELDS prod_name :H = 'Product Name:', ; unit_price :H = 'Price per Unit:'
Contoh 11: CLEAR CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer ORDER cust_id IN 0 && Parent table USE orders ORDER cust_id IN 0 && Child table SELECT customer && Back to parent work area SET RELATION TO cust_id INTO orders && Establish relationship SET SKIP TO orders && One-to-many relationship WAIT WINDOW 'Scroll to see shipping dates for each customer' NOWAIT BROWSE FIELDS customer.cust_id :H='Customer Number', ; customer.city :H='Customer City', orders.shipped_on
CALCULATE Menunjukkan operasi finansial dan statistik terhadap field atau ekspresi yang melibatkan field CALCULATE eExpressionList [Scope] [FOR lExpression1] [WHILE lExpression2] [TO VarList | TO ARRAY ArrayName] [NOOPTIMIZE] [IN nWorkArea | cTableAlias]
eExpressionList Ekspresi yang digunakan berisi kombinasi berbagai fungsi-fungsi berikut: AVG(nExpression)
88
CNT( ) MAX(eExpression) MIN(eExpression) NPV(nExpression1, nExpression2 [, nExpression3]) STD(nExpression) SUM(nExpression) VAR(nExpression) Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE orders && Open Orders table SET TALK ON CLEAR CALCULATE AVG(order_amt), MIN(order_amt), MAX(order_amt) CALCULATE STD(order_amt), VAR(order_amt) TO gnStd, gnVar
CANCEL Mengakhiri program berjalan CANCEL
Contoh: DO WHILE .T. IF MESSAGEBOX("Do you want to continue?",36) <> 6 CANCEL ENDIF ENDDO
CD | CHDIR Mengubah direktory default CD cPath | CHDIR cPath
Contoh: SET DEFAULT TO HOME( ) && Restore Visual FoxPro directory MKDIR mytstdir && Create a new directory CHDIR mytstdir && Change to the new directory = GETDIR( ) && Display the Select Directory dialog box SET DEFAULT TO HOME( ) && Restore Visual FoxPro directory RMDIR mytstdir && Remove the new directory = GETDIR( ) && Display the Select Directory dialog box
CHANGE Menampilkan field-field untuk dimodifikasi
89
CHANGE [FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [FONT cFontName [, nFontSize]] [STYLE cFontStyle] [FREEZE FieldName] [KEY eExpression1 [, eExpression2]] [LAST | NOINIT] [LPARTITION] [NAME ObjectName] [NOAPPEND] [NOCAPTION] [NOCLEAR] [NODELETE] [NOEDIT | NOMODIFY] [NOLINK] [NOMENU] [NOOPTIMIZE] [NORMAL] [NOWAIT] [PARTITION nColumnNumber [LEDIT] [REDIT]] [PREFERENCE PreferenceName] [REST] [SAVE] [TIMEOUT nSeconds] [TITLE cTitleText] [VALID [:F] lExpression3 [ERROR cMessageText]] [WHEN lExpression4] [WIDTH nFieldWidth] [WINDOW WindowName1] [IN [WINDOW] WindowNam2 | IN SCREEN | IN MACDESKTOP]] [COLOR SCHEME nSchemeNumber | COLOR ColorPairList]
CLEAR Menghapus item yang ditentukan atau item memory CLEAR [ALL | CLASS ClassName | CLASSLIB ClassLibraryName | DEBUG | DLLS [cAliasNameList]| EVENTS | FIELDS | GETS | MACROS | MEMORY | MENUS | POPUPS | PROGRAM | PROMPT | READ [ALL] | RESOURCES [FileName] | TYPEAHEAD | WINDOWS]
CLOSE Menutup berbagai jenis file CLOSE [ALL | ALTERNATE | DATABASES [ALL] | DEBUGGER | FORMAT | INDEXES | PROCEDURE | TABLES [ALL]]
CLOSE MEMO Menutup satu atau lebih memo yang sedang di edit CLOSE MEMO MemoFieldName1 [, MemoFieldName2 ...] | ALL
COMPILE Mengkompile ( mengubah file code program menjadi file program ) satu atau lebih source file program dan membuat file obyek untuk setiap source file. COMPILE [?] [CLASSLIB | LABEL | REPORT] FileName | FileSkeleton COMPILE FileName | FileSkeleton | ? [ENCRYPT] [NODEBUG] [AS nCodePage]
CONTINUE Melanjutkan pencarian berikutnya. Perintah ini digunakan bersama dengan perintah LOCATE. Perintah ini dilanjutkan setelah perintah LOCATE berhasil menemukan rekord yang dicari. Perintah ini akan diulangi sampai pada akhir file atau sesuai lingkup yang ditentukan. CONTINUE
90
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE customer && Opens Customer table SET TALK OFF STORE 0 TO gnCount LOCATE FOR ALLTRIM(UPPER(country)) = 'FRANCE' DO WHILE FOUND( ) gnCount = gnCount + 1 CONTINUE ENDDO ? 'Total customers from France: '+ LTRIM(STR(gnCount))
COPY FILE Membuat duplikat berbagai jenis file COPY FILE FileName1 TO FileName2
COPY MEMO Mengkopi isi field memo menjadi file teks COPY MEMO MemoFieldName TO FileName
[ADDITIVE]
[AS nCodePage]
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE employee && Opens Employee table COPY MEMO notes TO test.txt WAIT WINDOW 'Memo contents now in test.txt' NOWAIT MODIFY FILE test.txt COPY MEMO notes TO test.txt ADDITIVE WAIT WINDOW 'Memo contents added again to test.txt' NOWAIT MODIFY FILE test.txt DELETE FILE test.txt
COPY PROCEDURES Mengkopi prosedur-prosedur yang disimpan dalam file database COPY PROCEDURES TO FileName
[AS nCodePage] [ADDITIVE]
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') COPY PROCEDURES TO myproc.txt && Copy stored procedures to a file MODIFY FILE myproc.txt && Open the file DELETE FILE myproc.txt && Erase the file
COPY STRUCTURE Membuat struktur file tabel sesuai dengan struktur file tabel yang aktif
91
COPY STRUCTURE TO TableName [FIELDS FieldList] [[WITH] CDX | [WITH] PRODUCTION] [DATABASE cDatabaseName [NAME cTableName]]
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE customer && Opens Customer table COPY STRUCTURE TO backup USE backup APPEND FROM customer FOR country = 'UK' BROWSE FIELDS contact, country USE DELETE FILE backup.dbf
COPY STRUCTURE EXTENDED Membuat file tabel baru dari struktur tabel aktif COPY STRUCTURE EXTENDED TO FileName [DATABASE DatabaseName [NAME LongTableName]]
[FIELDS FieldList]
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE orders && Opens Orders table CLEAR DISPLAY STRUCTURE WAIT WINDOW 'Structure of the orders table' NOWAIT COPY STRUCTURE EXTENDED TO temp USE temp WAIT WINDOW 'The temp table - 1 row per field in orders' NOWAIT BROWSE CREATE backup FROM temp USE backup DISPLAY STRUCTURE WAIT WINDOW 'Backup.dbf has the same structure as orders' NOWAIT USE DELETE FILE temp.dbf DELETE FILE backup.dbf
COPY TO ARRAY Mengkopi data dari tabel yang aktif menjadi array COPY TO ARRAY ArrayName [FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton] [Scope] [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE]
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE customer && Opens Customer table DIMENSION gaTemp(3,10) COPY NEXT 3 TO ARRAY gaTemp DISPLAY MEMORY LIKE gaTemp
92
COPY TO Membuat file baru dari file tabel yang sedang aktif dengan berbagai format. COPY TO FileName [DATABASE DatabaseName [NAME LongTableName]] [FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton] [Scope] [FOR lExpression1] [WHILE lExpression2] [[WITH] CDX] | [[WITH] PRODUCTION] [NOOPTIMIZE] [[TYPE] [FOXPLUS | FOX2X | DIF | MOD | SDF | SYLK | WK1 | WKS | WR1 | WRK | CSV | | XLS | XL5 | DELIMITED [WITH Delimiter | WITH BLANK | WITH TAB | WITH CHARACTER Delimiter]]] [AS nCodePage]
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE customer && Opens Customer table COPY NEXT 3 TO temp TYPE DELIMITED WAIT WINDOW 'This is the delimited text file' NOWAIT MODIFY FILE temp.txt DELETE FILE temp.txt
COUNT Menghitung jumlah rekord dalam sebuah file tabel aktif COUNT [Scope] [FOR lExpression1] [WHILE lExpression2] VarName] [NOOPTIMIZE]
[TO
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE customer && Opens Customer table CLEAR COUNT FOR UPPER(city) = 'PARIS' DISPLAY FIELDS company, contact FOR UPPER(city) = 'PARIS'
CREATE CLASS Membuat file Class CREATE CLASS ClassName | ? [OF ClassLibraryName1 | ?] [AS cBaseClassName [FROM ClassLibraryName2]] [NOWAIT]
CREATE CLASSLIB Membuat file Class library (.vcx) CREATE CLASSLIB ClassLibraryName
Contoh: CREATE CLASSLIB myclslib CREATE CLASS myform OF myclslib AS "Form" && Creates new class SET CLASSLIB TO myclslib ADDITIVE && Opens MyClsLib.VCX
93
CREATE Membuat file tabel baru CREATE [FileName | ?]
CREATE CURSOR – SQL Membuat file tabel temporer CREATE CURSOR alias_name (fname1 type [(precision [, scale])] [NULL | NOT NULL] [CHECK lExpression [ERROR cMessageText]] [DEFAULT eExpression] [UNIQUE] [NOCPTRANS] [, fname2 ...]) | FROM ARRAY ArrayName
Contoh: CLOSE DATABASES CLEAR CREATE CURSOR employee ; (EmpID N(5), Name C(20), Address C(30), City C(30), ; PostalCode C(10), OfficeNo C(8) NULL, Specialty M) DISPLAY STRUCTURE WAIT WINDOW "Press a key to add a record." INSERT INTO employee (EmpId, Name, Address, City, PostalCode, ; OfficeNo, Specialty); VALUES (1002, "Dr. Bonnie Doren","University of Oregon", "Eugene", ; "98403", "", "Secondary Special Education") BROWSE * At this point you could copy this record to a permanent table CLOSE ALL && Once the cursor is closed, all data is flushed && from memory CLEAR
CREATE DATABASE Membuat file database dan sekaligus membuka file database yang dibuat. CREATE DATABASE [DatabaseName | ?]
Contoh: CREATE DATABASE people CREATE TABLE friends (FirstName C(20), LastName C(20)) CLEAR DISPLAY TABLES && Displays tables in the database DISPLAY DATABASES && Displays table information
CREATE PROJECT Membuka struktur file program melalui kotak dialog Project Manager CREATE PROJECT [FileName | ?] [NOWAIT] [SAVE] [WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN [NOSHOW] [NOPROJECTHOOK]
94
CREATE QUERY Membuka kotak dialog Query Designer. CREATE QUERY [FileName | ?] [NOWAIT]
CREATE REPORT Membuat file laporan CREATE REPORT FileName1 | ? FROM FileName2 [FORM | COLUMN] [FIELDS FieldList] [ALIAS] [NOOVERWRITE] [WIDTH nColumns] CREATE REPORT [FileName | ?] [NOWAIT] [SAVE] [WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN
CREATE TABLE – SQL Membuat file tabel dengan memilih field-field yang ditentukan sesuai dengan kondisi yang dibuat CREATE TABLE | DBF TableName1 [NAME LongTableName] [FREE] (FieldName1 FieldType [(nFieldWidth [, nPrecision])] [NULL | NOT NULL] [CHECK lExpression1 [ERROR cMessageText1]] [DEFAULT eExpression1] [PRIMARY KEY | UNIQUE] [REFERENCES TableName2 [TAG TagName1]] [NOCPTRANS] [, FieldName2 ...] [, PRIMARY KEY eExpression2 TAG TagName2 |, UNIQUE eExpression3 TAG TagName3] [, FOREIGN KEY eExpression4 TAG TagName4 [NODUP] REFERENCES TableName3 [TAG TagName5]] [, CHECK lExpression2 [ERROR cMessageText2]])| FROM ARRAY ArrayName
DEACTIVATE MENU Menutup menu bar dari memory DEACTIVATE MENU MenuName1 [, MenuName2 ...] | ALL *** Name this program DEACMENU.PRG *** CLEAR SET SYSMENU SAVE SET SYSMENU TO ON KEY LABEL ESC KEYBOARD CHR(13) DEFINE MENU example BAR AT LINE 1 DEFINE PAD convpad OF example PROMPT '\
95
DEFINE BAR 5 OF conversion PROMPT '\
DEACTIVATE POPUP Menutup menu yang dibuat dengan DEFINE POPUP. DEACTIVATE POPUP MenuName1 [, MenuName2 ...] | ALL
DEACTIVATE WINDOW Menutup window dari screen DEACTIVATE WINDOW WindowName1 [, WindowName2 ...] | ALL
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE customer && Opens Customer table CLEAR DEFINE WINDOW wOutput1 FROM 2,1 TO 13,75 TITLE 'Output' ; CLOSE FLOAT GROW ZOOM ACTIVATE WINDOW wOutput1 DISPLAY WAIT WINDOW 'Press a key to deactivate the window' DEACTIVATE WINDOW wOutput1 RELEASE WINDOW wOutput1
96
DECLARE Membuat array berdimensi satu atau dua DECLARE ArrayName1 (nRows1 [, nColumns1]) [, ArrayName2 (nRows2 [, nColumns2])] ...
DEFINE BAR Membuat item menu pada menu yang dibuat dengan DEFINE POPUP. DEFINE BAR nMenuItemNumber1 | SystemItemName OF MenuName PROMPT cMenuItemText [PICTURE cFileName] [PICTRES cMenubarName] [BEFORE nMenuItemNumber2 | AFTER nMenuItemNumber3] [FONT cFontName [, nFontSize]] [STYLE cFontStyle] [KEY KeyLabel [, cKeyText]] [MARK cMarkCharacter] [MESSAGE cMessageText] [SKIP [FOR lExpression]] [COLOR SCHEME nSchemeNumber | COLOR ColorPairList] [MRU] [INVERT]
DEFINE CLASS Membuat Class atau SubClass UDF dengan menentukan properties, events, dan methods dari class atau subclass yang dibuat. DEFINE CLASS ClassName1 AS ParentClass [OF ClassLibrary] [OLEPUBLIC] [[PROTECTED | HIDDEN PropertyName1, PropertyName2 ...] [Object.]PropertyName = eExpression ...] [IMPLEMENTS cInterfaceName [EXCLUDE] IN TypeLib | TypeLibGUID | ProgID ] [ADD OBJECT [PROTECTED] ObjectName AS ClassName2 [NOINIT] [WITH cPropertylist]] [[PROTECTED | HIDDEN] FUNCTION | PROCEDURE Name[_ACCESS |_ASSIGN] ([cParamName [AS type] [@]]) [AS type] [HELPSTRING cHelpString] THIS_ACCESS [NODEFAULT] cStatements [ENDFUNC | ENDPROC]] [PEMName_COMATTRIB = nFlags | DIMENSION PEMName_COMATTRIB[5] [PEMName_COMATTRIB[1] = nFlags PEMName_COMATTRIB[2] = cHelpString PEMName_COMATTRIB[3] = cPropertyCapitalization PEMName_COMATTRIB[4] = cPropertyType PEMName_COMATTRIB[5] = nOptionalParams]] ENDDEFINE
DEFINE MENU Membuat menu bar DEFINE MENU MenuBarName [BAR [AT LINE nRow]] [IN [WINDOW] WindowName | IN SCREEN] [FONT cFontName [, nFontSize]] [STYLE cFontStyle] [KEY KeyLabel] [MARK cMarkCharacter] [MESSAGE cMessageText] [NOMARGIN] [COLOR SCHEME nSchemeNumber | COLOR ColorPairList]
97
DEFINE PAD Membuat title menu (PAD) pada menu bar udf atau sistem menu bar Visual FoxPro DEFINE PAD MenuTitle1 OF MenuBarName PROMPT cMenuTitleText [AT nRow, nColumn] [BEFORE MenuName2 | AFTER MenuName3] [NEGOTIATE cContainerPosition [, cObjectPosition]] [FONT cFontName [, nFontSize]] [STYLE cFontStyle] [KEY KeyLabel [, cKeyText]] [MARK cMarkCharacter] [SKIP [FOR lExpression]] [MESSAGE cMessageText] [COLOR SCHEME nSchemeNumber | COLOR ColorPairList]
DEFINE POPUP Membuat menu DEFINE POPUP MenuName [FROM nRow1, nColumn1] [TO nRow2, nColumn2] [IN [WINDOW] WindowName | IN SCREEN] [FONT cFontName [, nFontSize]] [STYLE cFontStyle] [FOOTER cFooterText] [KEY KeyLabel] [MARGIN] [MARK cMarkCharacter] [MESSAGE cMessageText] [MOVER] [MULTISELECT] [PROMPT FIELD FieldName | PROMPT FILES [LIKE FileSkeleton] | PROMPT STRUCTURE] [RELATIVE] [SCROLL] [SHORTCUT] [TITLE cMenuTitleText] [COLOR SCHEME nSchemeNumber | COLOR ColorPairList]
DEFINE WINDOW Membuat window dan menentukan attribut window yang dibuat DEFINE WINDOW WindowName1 FROM nRow1, nColumn1 TO nRow2, nColumn2 | AT nRow3, nColumn3 SIZE nRow4, nColumn4 [IN [WINDOW] WindowName2 | IN SCREEN | IN DESKTOP [NAME ObjectName] [FONT cFontName [, nFontSize]] [STYLE cFontStyle] [FOOTER cFooterText] [TITLE cTitleText] [HALFHEIGHT] [DOUBLE | PANEL | NONE | SYSTEM | cBorderString] [CLOSE | NOCLOSE] [FLOAT | NOFLOAT] [GROW | NOGROW] [MDI | NOMDI] [MINIMIZE | NOMINIMIZE] [ZOOM | NOZOOM] [ICON FILE FileName1] [FILL cFillCharacter | FILL FILE FileName2] [COLOR SCHEME nSchemeNumber | COLOR ColorPairList]]
DELETE - SQL Memberikan tanda bahwa rekord telah dihapus (Mark) DELETE FROM [DatabaseName!]TableName [WHERE FilterCondition1 [AND | OR FilterCondition2 ...]]
Contoh: CLOSE DATABASES CLEAR OPEN DATABASE HOME(2)+"Data\testdata" USE customer && Open Customer table DELETE FROM customer WHERE country = "USA" CLEAR
98
&& Mark for deletion
LIST FIELDS company, country FOR DELETED( ) && List marked records * If the file were packed at this point the records would be deleted WAIT WINDOW "Records currently marked for deletion"+CHR(13) + ; "Press any key to revert..." * Unmark all records marked for deletion RECALL ALL CLEAR * Verify reverted records COUNT FOR DELETED( )=.T. TO nDeleted * Convert nDeleted to a character string and display information WAIT WINDOW ALLTRIM(STR(nDeleted)) + " records marked for deletion."
DELETE Memberikan tanda Marks bahwa rekord sudah dihapus DELETE [Scope] [FOR lExpression1] [WHILE lExpression2] [IN nWorkArea | cTableAlias] [NOOPTIMIZE] CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE customer && Opens Customer table DELETE FOR country = 'USA' && Mark for deletion CLEAR LIST FIELDS company, country FOR DELETED( ) && List marked records RECALL ALL && Unmark all records marked for deletion
DELETE DATABASE Menghapus database dari disk DELETE DATABASE DatabaseName | ? [DELETETABLES] [RECYCLE]
Contoh: CLOSE ALL CREATE DATABASE people CREATE TABLE friends (FirstName C(20), LastName C(20)) CLEAR DISPLAY TABLES && Displays tables in the database DISPLAY DATABASES && Displays table information CLOSE ALL DELETE DATABASE people DELETETABLES
DELETE FILE Menghapus suatu file dari disk DELETE FILE [FileName | ?] [RECYCLE]
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE customer && Opens Customer table COPY STRUCTURE TO backup USE backup
99
APPEND FROM customer FOR country = 'USA' COPY TO temp TYPE DELIMITED WAIT WINDOW 'Press Esc to close and erase temp.txt' NOWAIT MODIFY FILE temp.txt NOEDIT DELETE FILE temp.txt ? IIF(FILE('temp.txt'),'File not deleted','File deleted') USE DELETE FILE backup.dbf
DIMENSION Membuat variabel array dimensi satu atau dua DIMENSION ArrayName1(nRows1 [, nColumns1]) [, ArrayName2(nRows2 [, nColumns2])] ...
Contoh: DIMENSION gaArrayOne(10), gaArrayTwo[2,4], gaArrayThree(3,3) DIMENSION gaArrayOne[10], gaArrayTwo(2,4), gaArrayThree[3,3] * Contoh 1 DIMENSION marray(2) STORE 'A' TO marray(1) STORE 'B' TO marray(2) CLEAR DISPLAY MEMORY LIKE marray DIMENSION marray(4) DISPLAY MEMORY LIKE marray WAIT WINDOW * Contoh 2 DIMENSION marrayone(4) STORE 'E' TO marrayone(1) STORE 'F' TO marrayone(2) STORE 'G' TO marrayone(3) STORE 'H' TO marrayone(4) CLEAR DISPLAY MEMORY LIKE marrayone DIMENSION marrayone(2,3) DISPLAY MEMORY LIKE marrayone WAIT WINDOW * Contoh 3 DIMENSION sample(2,3) STORE 'Goodbye' TO sample(1,2) STORE 'Hello' TO sample(2,2) STORE 99 TO sample(6) STORE .T. TO sample(1) CLEAR DISPLAY MEMORY LIKE sample
DIR atau DIRECTORY Menampilkan informasi mengenai file-file dalam suatu direktory/folder DIR | DIRECTORY [ON Drive] [[LIKE] [Path] [FileSkeleton]] [TO PRINTER [PROMPT] | TO FILE FileName]
Contoh: 100
CLEAR DIR && Display tables in the current directory DIR *.CDX && Display index files in the current directory DIR A*.DBF && Display tables that begin with A DIR *.* && Display all files, including those without extensions
DISPLAY Menampilkan informasi mengenai tabel yang sedang aktif DISPLAY [[FIELDS] FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [OFF] [NOCONSOLE] [NOOPTIMIZE] [TO PRINTER [PROMPT] | TO FILE FileName]
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE customer && Opens Customer table CLEAR DISPLAY FIELD cust_id, company, contact OFF NEXT 10
DISPLAY FILES Menampilkan informasi mengenai file-file DISPLAY FILES [ON Drive] [LIKE FileSkeleton] [TO PRINTER [PROMPT] | TO FILE FileName]
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') CLEAR DISPLAY FILES LIKE *.DBC
DISPLAY MEMORY Menampilkan isi variabel atau array aktif DISPLAY MEMORY [LIKE FileSkeleton] [TO PRINTER [PROMPT] | TO FILE FileName] [NOCONSOLE]
Contoh: STORE STORE STORE STORE
'Goodbye' TO sample1 'Hello' TO sample2 .T. TO texit .F. TO mexit
CLEAR DISPLAY MEMORY LIKE sam* DISPLAY MEMORY LIKE ?exit
DISPLAY PROCEDURES Menampilkan nama-nama prosedur yang disimpan dalam database aktif DISPLAY PROCEDURES [TO PRINTER [PROMPT] | TO FILE FileName]
101
[NOCONSOLE]
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') CLEAR DISPLAY PROCEDURES
&& Displays stored procedures in the database
DISPLAY STRUCTURE Menampilkan struktur file tabel DISPLAY STRUCTURE [IN nWorkArea | cTableAlias] [TO PRINTER [PROMPT] | TO FILE FileName] [NOCONSOLE]
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE customer && Opens Customer table CLEAR DISPLAY STRUCTURE
DISPLAY TABLES Menampilkan nama-nama dan informasi mengenai seluruh tabel yang ada dalam database aktif DISPLAY TABLES [TO PRINTER [PROMPT] | TO FILE FileName] [NOCONSOLE]
Contoh: CLOSE DATABASES SET PATH TO (HOME(2) + 'Data\') && Sets path to database OPEN DATABASE testdata && Open testdata database CLEAR DISPLAY TABLES
&& Displays information about tables in the database
DO CASE ... ENDCASE Kondisional ekpresi yang mengevaluasi sekumpulan perintah DO CASE CASE lExpression1 Commands [CASE lExpression2 Commands ... CASE lExpressionN Commands] [OTHERWISE Commands] ENDCASE
Contoh: STORE CMONTH(DATE( )) TO month DO CASE
&& The month today
&& Begins loop
CASE INLIST(month,'January','February','March') STORE 'First Quarter Earnings' TO rpt_title
102
CASE INLIST(month,'April','May','June') STORE 'Second Quarter Earnings' TO rpt_title CASE INLIST(month,'July','August','September') STORE 'Third Quarter Earnings' TO rpt_title OTHERWISE STORE 'Fourth Quarter Earnings' TO rpt_title ENDCASE && Ends loop WAIT WINDOW rpt_title NOWAIT
DO Menjalankan program atau prosedur Visual FoxPro DO ProgramName1 | ProcedureName [IN ProgramName2] [WITH ParameterList]
DO FORM Menjalankan form atau form set yang dibuat melalui form designer DO FORM FormName | ? [NAME VarName [LINKED]] [WITH cParameterList] [TO VarName] [NOREAD] [NOSHOW]
DO WHILE ... ENDDO Menjalankan sekumpulan perintah yang ada dalam pengulangan kondisional DO WHILE lExpression Commands [LOOP] [EXIT] ENDDO
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE products && Opens Products table SET TALK OFF gnStockTot = 0 DO WHILE .T. && Begins loop IF EOF( ) EXIT ENDIF IF unit_price < 20 SKIP LOOP ENDIF gnStockTot = gnStockTot + in_stock SKIP ENDDO && Ends loop CLEAR ? 'Total items in stock valued over 20 dollars:' ?? gnStockTot
103
DROP TABLE Mengeluarkan tabel dari database dan menghapus tabel tersebut dari disk DROP TABLE TableName | FileName | ? [RECYCLE]
DROP VIEW Menghapys view SQL dari database DROP VIEW ViewName
EDIT Menampilkan field-field untuk di edit EDIT [FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [FONT cFontName[, nFontSize]] [STYLE cFontStyle] [FREEZE FieldName] [KEY eExpression1[, eExpression2]] [LAST | NOINIT] [LPARTITION] [NAME ObjectName] [NOAPPEND] [NOCAPTION] [NODELETE] [NOEDIT | NOMODIFY] [NOLINK] [NOMENU] [NOOPTIMIZE] [NORMAL] [NOWAIT] [PARTITION nColumnNumber [LEDIT] [REDIT]] [PREFERENCE PreferenceName] [REST] [SAVE] [TIMEOUT nSeconds] [TITLE cTitleText] [VALID [:F] lExpression3 [ERROR cMessageText]] [WHEN lExpression4] [WIDTH nFieldWidth] [WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN [COLOR SCHEME nSchemeNumber]
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Open customer table EDIT FIELDS location = ALLTRIM(city) + ', ' + country
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE products && Open products table IF _WINDOWS OR _MAC SET STATUS BAR ON ENDIF USE products EDIT FIELDS in_stock :V = in_stock < 100 ; :F ; :E = 'The stock amount must be less than 100'
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE products && Open products table EDIT FIELDS in_stock :B = 1, 100 :F
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE products && Open products table
104
EDIT FIELDS prod_name :H = 'Product Name:', ; unit_price :H = 'Price per Unit:'
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) USE customer && Opens IF _WINDOWS EDIT FIELDS contact ENDIF IF _MAC EDIT FIELDS contact ENDIF
+ 'data\testdata') customer table FONT 'System', 15
STYLE 'NU'
FONT 'Geneva', 14
STYLE 'NU'
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Open customer table SET ORDER TO postalcode EDIT KEY '10000', '30000'
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Opens customer table EDIT PARTITION 30 REDIT
Contoh: DEFINE WINDOW wEdit FROM 1,1 TO 24,40 ; CLOSE ; GROW ; COLOR SCHEME 10 CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Open customer table EDIT WINDOW wEdit ; FIELDS phone :H = 'Phone Number:' , ; company :H = 'Company:' ; TIMEOUT 10 RELEASE WINDOW wEdit
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Open customer table EDIT; TITLE 'My Edit Window' ; FIELDS phone :H = 'Phone Number' , ; company :H = 'Company:'
Contoh: CLEAR CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer ORDER cust_id IN 0 && Parent table USE orders ORDER cust_id IN 0 && Child table SELECT customer && Back to parent work area SET RELATION TO cust_id INTO orders && Establish relationship
105
SET SKIP TO orders && One-to-many relationship WAIT WINDOW 'Scroll to see shipping dates for each customer' NOWAIT EDIT FIELDS customer.cust_id :H='Customer Number', ; customer.city :H='Customer City', orders.shipped_on
EJECT Mengirimkan formfeed ke printer EJECT
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Opens customer table SET DEVICE TO PRINTER SET PRINT ON DO WHILE NOT EOF( ) @ PROW( )+1,10 SAY 'Company: ' + company @ PROW( )+1,10 SAY 'Phone: ' + phone @ PROW( )+1,1 SAY '' IF PROW( ) > 62 EJECT ENDIF SKIP ENDDO SET PRINT OFF SET DEVICE TO SCREEN
EJECT PAGE Mengirimkan conditional page advance ke printer EJECT PAGE
ERASE Menghapus file dari disk ERASE FileName | ? [RECYCLE]
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Opens customer table COPY STRUCTURE TO backup USE backup APPEND FROM customer FOR country = 'USA' COPY TO temp TYPE DELIMITED WAIT WINDOW 'Press Esc to close and erase temp.txt' NOWAIT MODIFY FILE temp.txt NOEDIT ERASE temp.txt ? IIF(FILE('temp.txt'),'File not deleted','File deleted') USE ERASE backup.dbf
106
ERROR Generates a Visual FoxPro error. ERROR nErrorNumber | nErrorNumber, cMessageText1 | [cMessageText2]
Contoh: ERROR 12 && Generates the Visual FoxPro error "Variable not found" ERROR 12, 'Myvariable' && Variable 'Myvariable' not found error ERROR 'My error message' && Generates 'My error message' error
EXIT Exits a DO WHILE, FOR, or SCAN loop. EXIT
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE products && Opens Products table SET TALK OFF gnStockTot = 0 DO WHILE .T. && Beginning of loop IF EOF( ) EXIT ENDIF IF unit_price < 20 SKIP LOOP ENDIF gnStockTot = gnStockTot + in_stock SKIP ENDDO && End of loop CLEAR ? 'Total items in stock valued over 20 dollars:' ?? gnStockTot
EXPORT Mengcopy data dari file tabel Visual FoxPro ke file dalam format yang berbeda EXPORT TO FileName [TYPE] DIF | MOD | SYLK | WK1 | WKS | WR1 | WRK | XLS | XL5 [FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE] [AS nCodePage]
FLUSH Menyimpan file tabel dan indeks yang telah dimodifikasi ke disk FLUSH
107
FOR EACH … ENDFOR FOR EACH Var IN Group Commands [EXIT] [LOOP] ENDFOR | NEXT [Var]
Contoh: DIMENSION cMyArray(3) cMyArray[1] = 'A' cMyArray[2] = 'B' cMyArray[3] = 'C' FOR EACH cMyVar IN cMyArray ? cMyVar ENDFOR Contoh lain: oExcel = CREATE("Excel.Application") oExcel.Workbooks.ADD FOR EACH oMyVar IN oExcel.sheets ? oMyVar.name NEXT oMyVar
Contoh: PUBLIC oMyObject oMyObject = CREATEOBJECT("frmTest") oMyObject.SHOW DEFINE CLASS frmTest AS FORM Height = 200 DIMENSION MyArray[5] PROCEDURE Init FOR i = 1 to 5 THIS.AddObject('THIS.MyArray[i]',; 'COMMANDBUTTON') ENDFOR ****** FOR EACH - NEXT ****** FOR EACH oButton IN THIS.MyArray oButton.Visible = .T. NEXT ****** FOR EACH - NEXT element ****** FOR EACH oButton IN THIS.MyArray oButton.FontBold = .T. NEXT obutton j = 1 ****** FOR EACH - ENDFOR ****** FOR EACH oButton IN THIS.MyArray oButton.top = j * 30 j = j + 1 ENDFOR ****** FOR EACH - ENDFOR element ******
108
FOR EACH oButton IN THIS.MyArray oButton.FontItalic = .T. ENDFOR obutton j = 1 ****** EXIT ****** FOR EACH oButton IN THIS.MyArray oButton.Caption = "test" + str(j) j = j+1 IF j > 3 EXIT ENDIF NEXT j = 1 ****** LOOP ****** FOR EACH oButton IN THIS.MyArray IF j > 3 LOOP ENDIF j = j + 1 oButton.Left = 25 NEXT ENDPROC ENDDEFINE
FOR ... ENDFOR FOR Var = nInitialValue TO nFinalValue [STEP nIncrement] Commands [EXIT] [LOOP] ENDFOR | NEXT
Contoh: Contoh: CLEAR FOR gnCount = 1 TO 10 ? gnCount ENDFOR
Contoh SET TALK OFF CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE customer && Opens Customer table STORE 2 TO gnI && Initial value STORE 10 TO gnJ && Final value STORE 2 TO K && Step value FOR gnCount = gnI TO gnJ STEP K GOTO gnCount && Move record pointer DISPLAY company && Display company name ENDFOR
109
FREE TABLE Mengeluarkan referensi database dari tabel FREE TABLE TableName
FUNCTION Awal pengidentifikasian udf FUNCTION FunctionName [LPARAMETERS parameter1[,parameter2},...] Commands [RETURN [eExpression]] ENDFUNC
Atau: FUNCTION FunctionName([parameter1[,parameter2},...]) Commands [RETURN [eExpression]] ENDFUNC
Contoh: Local oHello oHello=CREATEOBJECT("Hello") =MESSAGEBOX(oHello.SayHello(),48) RELEASE oHello * Class definition code DEFINE CLASS Hello AS CUSTOM FUNCTION SayHello RETURN "Hello World" ENDFUNC ENDDEFINE
GATHER Menyimpan data dalam rekord yang sedang aktif dengan data dari suatu array, sekumpulan variabel, atau obyek GATHER FROM ArrayName | MEMVAR | NAME ObjectName [FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton] [MEMO]
Contoh: CREATE TABLE Test FREE ; (Object C(10), Color C(16), SqFt n(6,2)) SCATTER MEMVAR BLANK m.Object="Box" m.Color="Red" m.SqFt=12.5 APPEND BLANK GATHER MEMVAR BROWSE
Contoh 2: CREATE TABLE Test FREE ; (Object C(10), Color C(16), SqFt n(6,2))
110
SCATTER NAME oTest BLANK oTest.Object="Box" oTest.Color="Red" oTest.SqFt=12.5 APPEND BLANK GATHER NAME oTest RELEASE oTest BROWSE
GETEXPR Menampilkan kotak dialog Expression Builder pada saat membuat suatu ekspresi dan menyimpan ekspresi ke suatu variabel atau elemen array GETEXPR [cCaptionText] TO MemVarName [TYPE cExpressionType [; cErrorMessageText]] [DEFAULT cDefaultExpression]
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE customer && Opens Customer table GETEXPR 'Enter condition to locate ' TO gcTemp; TYPE 'L' DEFAULT 'COMPANY = ""' LOCATE FOR &gcTemp IF FOUND( ) DISPLAY ELSE ? 'Condition ' + gcTemp + ' was not found ' ENDIF
GO | GOTO Memindahkan pointer rekord ke nomer rekord yang diinginkan GO [RECORD] nRecordNumber [IN nWorkArea | IN cTableAlias] GO TOP | BOTTOM [IN nWorkArea | IN cTableAlias] GOTO [RECORD] nRecordNumber [IN nWorkArea | IN cTableAlias] GOTO TOP | BOTTOM [IN nWorkArea | IN cTableAlias]
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE products && Opens Products table USE customer IN 0 && Opens Customer table GO BOTTOM IN products CLEAR ? RECNO('products') GO TOP ? RECNO( ) && Displays 1 GO 5 ? RECNO( ) && Displays 5
111
HELP Membuka Help window. HELP [Topic | ID nContextID] [IN [WINDOW] WindowName | IN [WINDOW] SCREEN | IN [WINDOW] [NOWAIT]
HIDE MENU Menyembunyikan satu atau lebih menu bar aktif HIDE MENU MenuBarName1 [, MenuBarName2 ...] | ALL [SAVE]
HIDE POPUP Menyembunyikan satu atau lebih menu aktif yang dibuat DEFINE POPUP. HIDE POPUP MenuName1 [, MenuName2 ...] | ALL [SAVE]
HIDE WINDOW Menyembunyikan window yang dibuat atau sistem window Visual FoxPro HIDE WINDOW WindowName1 [, WindowName2 ... ] | ALL | SCREEN [ IN [WINDOW] WindowNameN | IN [WINDOW] SCREEN | IN [WINDOW] [BOTTOM | TOP | SAME]
Contoh: DEFINE WINDOW wOutput1 FROM 6,1 TO 19,75 TITLE 'Output' ; CLOSE FLOAT GROW ZOOM ACTIVATE WINDOW wOutput1 WAIT WINDOW 'Press a key to hide this window' HIDE WINDOW wOutput1 WAIT WINDOW 'Press a key to see the window again' SHOW WINDOW wOutput1 WAIT WINDOW 'Press a key to remove the window from memory' DEACTIVATE WINDOW wOutput1 RELEASE WINDOW wOutput1
IF ... ENDIF Kondisi logika yang didasarkan pada kumpulan perintah IF lExpression [THEN] Commands [ELSE Commands] ENDIF
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE Customer && Open customer table
112
GETEXPR 'Enter condition to locate ' TO gcTemp; TYPE 'L' DEFAULT 'COMPANY = ""' LOCATE FOR &gcTemp && Enter LOCATE expression IF FOUND( ) && Was it found? DISPLAY && If so, display the record ELSE && If not found ? 'Condition ' + gcTemp + ' was not found ' ENDIF USE
&& Display a message
IMPORT Menerima dari dari format file eksternal menjadi file tabel Visual FoxPro IMPORT FROM FileName [DATABASE DatabaseName [NAME LongTableName]] [TYPE] FW2 | MOD | PDOX | RPD | WK1 | WK3 | WKS | WR1 | WRK | XLS | XL5 [SHEET cSheetName] | XL8 [SHEET cSheetName] [AS nCodePage]
INDEX Membuat file indeks sehingga dapat ditampilkan sesuai logika urutan INDEX ON eExpression TO IDXFileName | TAG TagName [OF CDXFileName] [FOR lExpression] [COMPACT] [ASCENDING | DESCENDING] [UNIQUE | CANDIDATE] [ADDITIVE]
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE Customer && Open customer table INDEX ON company TO complist CLEAR DISPLAY STATUS * CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE Customer && Open customer table INDEX ON SUBSTR(city,1,5) + SUBSTR(company,1,6) TO citycomp CLEAR DISPLAY STATUS * CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE Customer && Open customer table INDEX ON address TAG address INDEX ON company TAG company OF custcdx CLEAR
INSERT – SQL Menambah rekord pada akhir tabel yang berisi nilai field yang ditentukan INSERT INTO dbf_name [(fname1 [, fname2, ...])] VALUES (eExpression1 [, eExpression2, ...]) INSERT INTO dbf_name FROM ARRAY ArrayName | FROM MEMVAR
113
Contoh: USE employee INSERT INTO employee (emp_no, fname, lname, officeno) ; VALUES (3022, "John", "Smith", 2101)
Contoh 2 CLOSE DATABASES CLEAR OPEN DATABASE (HOME(2) + 'Data\testdata') USE Customer && Open customer table * Scatter current record to memory variables SCATTER MEMVAR * Copy structure of current table to example table COPY STRUCTURE TO cust2 * Insert record from memory variable INSERT INTO cust2 FROM MEMVAR SELECT CUST2 BROWSE * Close and delete example table USE DELETE FILE cust2.dbf
KEYBOARD Mengirimkan ekpresi karakter dalam buffer keyboard KEYBOARD cKeyboardValue
[PLAIN] [CLEAR]
LABEL Mencetak label dari file tabel dan file label yang telah dibuat LABEL [FORM FileName1 | FORM ?] [ENVIRONMENT] [Scope] [FOR lExpression1] [WHILE lExpression2] [NOCONSOLE] [NOOPTIMIZE] [PDSETUP] [PREVIEW [NOWAIT]] [NAME ObjectName] [TO PRINTER [PROMPT] | TO FILE FileName2]
LIST Menampilkan tabel atau informasi lingkungan secara berlanjut LIST [FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [OFF] [NOCONSOLE] [NOOPTIMIZE] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] LIST FILES [ON Drive] [LIKE FileSkeleton] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] LIST MEMORY [LIKE FileSkeleton] [NOCONSOLE] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]]
114
LIST STATUS [NOCONSOLE] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]] LIST STRUCTURE [IN nWorkArea | cTableAlias] [NOCONSOLE] [TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]]
LOCAL Membuat variabel atau variabel array lokal LOCAL VarList LOCAL [ARRAY] ArrayName1(nRows1 [, nColumns1]) [, nColumns2])] ... [AS type [OF ClassLib]]
[, ArrayName2(nRows2
LOCATE Pencarian rekord berurutan Sequentially dari awal rekord sampai pada akhir ekspresi logika yang dibuat LOCATE [FOR lExpression1]
[Scope]
[WHILE]
[NOOPTIMIZE]
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE customer && Open Customer table SET TALK OFF STORE 0 TO gnCount LOCATE FOR ALLTRIM(UPPER(customer.country)) = 'GERMANY' DO WHILE FOUND( ) gnCount = gnCount + 1 ? company CONTINUE ENDDO ? 'Total companies Germany: '+ LTRIM(STR(gnCount))
LOOP Mengembalikan kontrol program secara langsung ke awal struktur pengulangan LOOP
MD | MKDIR Membuat direktory atau subdirektory pada disk MD cPath | MKDIR cPath
Contoh: SET DEFAULT TO HOME( ) && Restore Visual FoxPro directory MKDIR mytstdir && Create a new directory CHDIR mytstdir && Change to the new directory = GETDIR( ) && Display the Select Directory dialog box SET DEFAULT TO HOME( ) && Restore Visual FoxPro directory RMDIR mytstdir && Remove the new directory
115
= GETDIR( )
&& Display the Select Directory dialog box
MODIFY CLASS Membuka Class Designer dan mengubah atau menambah class yang ada MODIFY CLASS ClassName [OF ClassLibraryName1] [AS cBaseClassName [FROM ClassLibraryName2]] [NOWAIT] [METHOD MethodName] [SAVE]
MODIFY COMMAND Membuka kotak editing program sehingga dapat melakukan perubahan atau membuat program baru MODIFY COMMAND [FileName | ?] [NOEDIT] [NOMENU] [NOWAIT] [RANGE nStartCharacter, nEndCharacter] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] [AS nCodePage] [SAME] [SAVE]
MODIFY DATABASE Membuka Database Designer, sehingga memungkinkan untuk mengubah database secara interaktif MODIFY DATABASE [DatabaseName | ?] [NOWAIT] [NOEDIT]
Contoh: CLOSE DATABASES SET PATH TO (HOME(2) + 'data\') && Sets path to database MODIFY DATABASE testdata && Open testdata database
MODIFY FILE Membuka kotak edit sehingga dapat mengubah dan membuat file teks MODIFY FILE [FileName | ?] [NOEDIT] [NOMENU] [NOWAIT] [RANGE nStartCharacter, nEndCharacter] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] [AS nCodePage] [SAME] [SAVE]
MODIFY FORM Membuka Form Designer untuk membuat atau mengubah form MODIFY FORM [FormName | ?][NOWAIT][METHOD MethodName] [NOENVIRONMENT][SAVE] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]]
Contoh: MODIFY FORM (HOME(2) + 'solution\controls\timer\swatch.scx')
116
MODIFY GENERAL Membuka window edit untuk field general dari rekord aktif MODIFY GENERAL GeneralField1 [, GeneralField2 ...] [NOMODIFY] [NOWAIT] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]
MODIFY MEMO Membuka editing window untuk field memod aktif MODIFY MEMO MemoField1 [, MemoField2 ...] [NOEDIT] [NOMENU] [NOWAIT] [RANGE nStartCharacter, nEndCharacter] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] [SAME] [SAVE]
MODIFY REPORT Membuka Report Designer untuk melakukan modifikasi atau membuat file laporan MODIFY REPORT [FileName | ?] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]] [NOENVIRONMENT] [NOWAIT] [SAVE]
MODIFY STRUCTURE Menampilkan Table Designer, untuk membuat perubahan struktur tabel MODIFY STRUCTURE
ON SELECTION BAR Menentukan perintah yang dijalankan ketika item menu dipilih ON SELECTION BAR nMenuItemNumber OF MenuName
[Command]
ON SELECTION MENU Menentukan perintah yang dijalankan jika judul menu pada menu bar dipilih ON SELECTION MENU MenuBarName | ALL [Command]
OPEN DATABASE Membuka database OPEN DATABASE [FileName | ?] [EXCLUSIVE | SHARED] [NOUPDATE] [VALIDATE]
PACK Menghapus seluruh rekord yang telah ditandai Mark Deleted secara permanen PACK [MEMO] [DBF] [Tablename ] [IN nWorkarea | cTableAlias]
117
PACK DATABASE Menghapus rekord yang telah di tandai penghapusan dari database aktif PACK DATABASE
Contoh: CLOSE DATABASES SET PATH TO (HOME(2) + 'data\') && Sets path to database OPEN DATABASE testdata && Open the database PACK DATABASE && Pack the current database
PARAMETERS Menentukan variabel private, atau array PARAMETERS Parameter1 [AS type [OF ClassLib]] [, Parameter2 [AS type [OF ClassLib]]]
PROCEDURE PROCEDURE ProcedureName [LPARAMETERS parameter1[,parameter2},...] Commands [RETURN [eExpression]] ENDFUNC PROCEDURE ProcedureName([parameter1[,parameter2},...]) Commands [RETURN [eExpression]] ENDFUNC
PUBLIC Mendefinisikan variabel atau array global PUBLIC MemVarList PUBLIC [ARRAY] ArrayName1(nRows1 [, nColumns1]) [, ArrayName2(nRows2 [, nColumns2])] ... [AS type [OF ClassLib]]
PRIVATE Menyembunyikan variabel atau array tertentu yang dibuat dalam program yan sedang dijalankan PRIVATE VarList PRIVATE ALL[LIKE Skeleton | EXCEPT Skeleton]
QUIT Mengakhiri program Visual FoxPro atau kembali ke system operasi QUIT
118
RD | RMDIR Menghapus direktory atau folder dari disk RD cPath | RMDIR cPath
Contoh: SET DEFAULT TO HOME( ) && Restore Visual FoxPro directory MKDIR mytstdir && Create a new directory CHDIR mytstdir && Change to the new directory = GETDIR( ) && Display the Select Directory dialog box SET DEFAULT TO HOME( ) && Restore Visual FoxPro directory RMDIR mytstdir && Remove the new directory = GETDIR( ) && Display the Select Directory dialog box
READ EVENTS Memulai event READ EVENTS
RECALL Mengembalikan tanda mark (Unmarks) rekord yang telah ditandai penghapusan RECALL [Scope] [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE] [IN nWorkArea | cTableAlias] CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Opens Customer table DELETE FROM customer WHERE country = 'USA' && Mark for deletion CLEAR LIST FIELDS company, country FOR DELETED( ) && List marked records RECALL ALL && Unmark all records marked for deletion
REINDEX Membangun kembali file indeks yang dibuka REINDEX [COMPACT]
Contoh: cExclusive = SET('EXCLUSIVE') SET EXCLUSIVE OFF SET PATH TO (HOME(2) + 'Data\') OPEN DATA testdata && Opens the test databsase USE Customer && Not opened exclusively USE Employee IN 0 EXCLUSIVE && Opened exclusively in another work area IF ISEXCLUSIVE( ) REINDEX && Can only be done if table opened exclusively ELSE WAIT WINDOW 'The table has to be exclusively opened' ENDIF SET EXCLUSIVE &cExclusive
119
REPLACE Update rekord REPLACE FieldName1 WITH eExpression1 [ADDITIVE] [, FieldName2 WITH eExpression2 [ADDITIVE]] ... [Scope] [FOR lExpression1] [WHILE lExpression2] [IN nWorkArea | cTableAlias] [NOOPTIMIZE]
REPLACE FROM ARRAY Update data dalam field dengan nilai dari variabel array REPLACE FROM ARRAY ArrayName [FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE]
REPORT Menampilkan atau mencetak laporan sesuai file laporan yang dibuat melalui MODIFY REPORT atau CREATE REPORT. REPORT FORM FileName1 | ? [ENVIRONMENT] [Scope] [FOR lExpression1] [WHILE lExpression2] [HEADING cHeadingText] [NOCONSOLE] [NOOPTIMIZE] [PLAIN] [RANGE nStartPage [, nEndPage]] [PREVIEW [[IN] WINDOW WindowName | IN SCREEN] [NOWAIT]] [TO PRINTER [PROMPT] | TO FILE FileName2 [ASCII]] [NAME ObjectName] [SUMMARY]
RETURN Mengembalikan kontrol program dari pemanggilan program RETURN [eExpression | TO MASTER | TO ProcedureName]
RUN | ! Menjalankan program atau perintah eksternal RUN [/N] MS-DOSCommand | ProgramName ! [/N] MS-DOSCommand | ProgramName
SCAN ... ENDSCAN Memindahkan pointer rekord sambil menjalankan blok perintah SCAN [NOOPTIMIZE] [Scope] [FOR lExpression1] [WHILE lExpression2] [Commands] [LOOP] [EXIT] ENDSCAN
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE customer && Opens Customer table
120
CLEAR SCAN FOR UPPER(country) = 'SWEDEN' ? contact, company, city ENDSCAN
SCATTER Mengcopy data dari rekord aktif menjadi kumpulan variabel atau array SCATTER [FIELDS FieldNameList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton] [MEMO] TO ArrayName | TO ArrayName BLANK | MEMVAR | MEMVAR BLANK | NAME ObjectName [BLANK]
Contoh 1 CREATE TABLE Test FREE ; (Object C(10), Color C(16), SqFt n(6,2)) SCATTER MEMVAR BLANK m.Object="Box" m.Color="Red" m.SqFt=12.5 APPEND BLANK GATHER MEMVAR BROWSE
Contoh 2 CREATE TABLE Test FREE ; (Object C(10), Color C(16), SqFt n(6,2)) SCATTER NAME oTest BLANK oTest.Object="Box" oTest.Color="Red" oTest.SqFt=12.5 APPEND BLANK GATHER NAME oTest RELEASE oTest BROWSE
SEEK Mencari rekord pada tabel yang sudah di indeks SEEK eExpression [ORDER nIndexNumber | IDXIndexFileName | [TAG] TagName [OF CDXFileName] [ASCENDING | DESCENDING]] [IN nWorkArea | cTableAlias]
SELECT - SQL Membuka tabel dari satu atau lebih file tabel SELECT [ALL | DISTINCT] [TOP nExpr [PERCENT]] [Alias.] Select_Item [[AS] Column_Name] [, [Alias.] Select_Item [[AS] Column_Name] ...] FROM [FORCE][DatabaseName!]Table [[AS] Local_Alias] [[INNER | LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER] JOIN DatabaseName!] Table [[AS] Local_Alias] [ON JoinCondition …] [[INTO Destination] | [TO FILE FileName [ADDITIVE] | TO PRINTER
121
[PROMPT] | TO SCREEN]] [PREFERENCE PreferenceName] [NOCONSOLE] [PLAIN] [NOWAIT] [WHERE JoinCondition [AND JoinCondition ...] [AND | OR FilterCondition [AND | OR FilterCondition ...]]] [GROUP BY GroupColumn [, GroupColumn ...]] [HAVING FilterCondition] [UNION [ALL] SELECTCommand] [ORDER BY Order_Item [ASC | DESC] [, Order_Item [ASC | DESC] ...]]
SELECT Mengaktifkan area kerja yang ditentukan SELECT nWorkArea | cTableAlias
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') SELECT 1 && Work area 1 USE customer && Opens Customer table SELECT 2 USE orders
&& Work area 2 && Opens Orders table
SELECT customer BROWSE SELECT B BROWSE
&& Work area 1
&& Work area 2
SKIP Memindahkan pointer rekord ke awal atau ke akhir dalam suatu tabel SKIP
[nRecords]
[IN nWorkArea | cTableAlias]
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Opens Customer table CLEAR SKIP 4 IN 'customer' ? RECNO('customer') && Displays 5 GO BOTTOM SKIP -5 ? RECNO( )
SORT Mengurut rekord dalam suatu tabel aktif dan hasilnya disimpan dalam suatu tabel baru SORT TO TableNameON FieldName1 [/A | /D] [/C] [, FieldName2 [/A | /D] [/C] ...] [ASCENDING | DESCENDING] [Scope] [FOR lExpression1] [WHILE lExpression2] [FIELDS FieldNameList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton] [NOOPTIMIZE]
122
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Opens Customer table CLEAR LIST FIELDS company, cust_id NEXT 3 SORT TO temp ON cust_id USE temp LIST FIELDS company, cust_id NEXT 3 WAIT WINDOW 'Now sorted on CUST_ID' NOWAIT
STORE Menyimpan data menjadi kedalam suatu variabel, array atau elemen array STORE eExpression TO VarNameList | ArrayNameList-orVarName | ArrayName = eExpression
Contoh: STORE STORE STORE STORE STORE
DATE( ) TO gdDate 50 TO gnNumeric 'Hello' TO gcCharacter .T. TO glLogical $19.99 TO gyCurrency
DIMENSION gaMyArray(2,2) SET COMPATIBLE OFF STORE 2 TO gaMyArray CLEAR DISPLAY MEMORY LIKE g*
SUM Menjumlahkan field numerik dari tabel aktif sesuai dengan kondisi yang ditentukan SUM [eExpressionList] [Scope] [FOR lExpression1] [WHILE lExpression2] [TO MemVarNameList | TO ARRAY ArrayName] [NOOPTIMIZE]
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE products && Opens Products table SUM in_stock, on_order, in_stock+on_order ; TO gnInStock, gnOnOrder, gnUnits CLEAR ? ? 'Total in stock : ', gnInStock && Displays 3119.00 ? 'Total on order: ', gnOnOrder && Displays 780.00 ? 'Total # units : ', gnUnits && Displays 3899.00
TEXT ... ENDTEXT Menampilan baris teks dan menghasilkan ekspresi dan fungsi dan isi dari variabel 123
TEXT [TO VarName [ADDITIVE] [TEXTMERGE] [NOSHOW]] TextLines ENDTEXT
Contoh: CLEAR CLOSE DATABASES SET TALK OFF SET TEXTMERGE ON && Enable embedding of expressions and functions STORE FCREATE('names.txt') TO _TEXT && Create low-level file IF _TEXT = -1 && Can't create low-level file then exit program WAIT WINDOW 'Cannot create an output file; press a key to exit' CANCEL ENDIF CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE customer && Opens Customer table TEXT CONTACT NAMES <> <<TIME( )>> ENDTEXT WAIT WINDOW 'Press a key to generate the first ten names' SCAN NEXT 10 TEXT <> ENDTEXT ENDSCAN CLOSE ALL && Close the text file and the table MODIFY FILE names.txt ERASE names.txt
TOTAL Menghitung jumlah-jumlah untuk field-field numerik dari file tabel aktif TOTAL TO TableName ON FieldName [FIELDS FieldNameList] [Scope] [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE]
UNLOCK Membuka rekord atau file tabel yang terkunci UNLOCK [ALL]
[RECORD nRecordNumber]
[IN nWorkArea | cTableAlias]
Contoh: CLOSE DATABASES SET REPROCESS TO 3 AUTOMATIC STORE '1,2,3,4' TO gcRecList && Lock records 1 through 4 gcOldExc = SET('EXCLUSIVE') && Save the EXCLUSIVE setting SET EXCLUSIVE OFF && Allow sharing of tables CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE customer && Opens Customer table SELECT 0 USE employee && Opens Employee table
124
? LOCK('1,2,3,4', 'customer') && Lock the first 4 records in customer ? RLOCK(gcRecList, 'employee') && Lock the first 4 records in employee UNLOCK IN customer UNLOCK IN employee SET EXCLUSIVE &gcOldExc
&& Restore original EXCLUSIVE setting
USE Membuka file tabel dan indeks file atau SQL view. USE [[DatabaseName!]Table | SQLViewName | ?] [IN nWorkArea | cTableAlias] [ONLINE] [ADMIN] [AGAIN] [NOREQUERY [nDataSessionNumber]] [NODATA] [INDEX IndexFileList | ? [ORDER [nIndexNumber | IDXFileName | [TAG] TagName [OF CDXFileName] [ASCENDING | DESCENDING]]]] [ALIAS cTableAlias] [EXCLUSIVE] [SHARED] [NOUPDATE] [CONNSTRING cConnectString]
Contoh: CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') ACTIVATE WINDOW View USE customer IN 0 USE employee IN 0 USE products IN 0
&& Opens Customer table && Opens Employee table && Opens Products table
WAIT Menampilka pesan WAIT [cMessageText] [TO VarName] [WINDOW [AT nRow, nColumn]] [NOWAIT] [CLEAR | NOCLEAR] [TIMEOUT nSeconds]
WITH ... ENDWITH Menentukan property obyek WITH ObjectName [.cStatements] ENDWITH
Contoh: moemployee = CREATEOBJECT('employee') WITH moemployee .First_Name = 'John' .Last_Name = 'Smith' .Address = '16 Maple Lane' .HireDate = {^1998-02-16} ENDWITH CLEAR
125
? moemployee.First_Name + ' ' ?? moemployee.Last_Name ? moemployee.Address ? moemployee.HireDate DEFINE CLASS employee AS CUSTOM First_Name = SPACE(20) Last_Name = SPACE(20) Address = SPACE(30) HireDate = { - - } ENDDEFINE
ZAP Menghapus semua rekord dari tabel ZAP
[IN nWorkArea | cTableAlias]
126