Pemrograman Visual II – rusmanto – STMIK Pontianak
Chapter 1
Pengantar Visual FoxPro (VFP) Sebagai salah satu bahasa pemrograman yang berfokus pada pengembangan aplikasi database, dimulai dari awal tahun 1988 sampai dengan saat ini, FoxPro telah melewati seleksi yang sangat ketat dari sekian banyak bahasa pemrog raman sejenis. Tujuan pemakaian yang sangat memudahkan programmer aplikasi database dalam mengembangkan dan mengelola sistem aplikasi database membuatnya tetap diminati untuk diterapkan dalam dunia bisnis. Integrated development environment (IDE) VFP:
menubar
toolbar
command window
properties window
System requirements (minimum):
Pentium processor
Mouse
1
Pemrograman Visual II – rusmanto – STMIK Pontianak
RAM 64 MB
Hardisk (20 MB – 165 MB)
Resolusi monitor 800 x 600 (256 colors)
OS (developer: Wins 2000 SP 3, Wins XP, Wins Server 2003 | run-time: Wins 98, Wins Me, Wins 2000 SP3, Wins XP, Wins Server 2003)
Karena VFP diperuntukkan bagi pengembangan aplikasi yang beragam maka dalam pemakaiannya dapat ditentukan terlebih dahulu optional setting sesuai keperluan sistem yang di kembangkan yaitu melalui menu TOOLS, OPTIONS.
Pemberian komentar saat coding sangat diperlukan dalam pemeliharaan dan pengembangan aplikasi. Type
In line comment Full line comment
Examples
CLOSE ALL && komentar ditempatkan setelah baris program * komentar ditempatkan dibaris baru
Menampilkan pesan dilayar monitor sering dilakukan untuk berinteraksi dengan pengguna program, dalam VFP, function MESSAGEBOX dapat digunakan dengan melibatkan parameter yang sesuai. MESSAGEBOX dapat digunakan untuk meminta konfirmasi dari pengguna program. Syntax: MESSAGEBOX(eMessageText [, nDialogBoxType ][, cTitleBarText][, nTimeout])
Keterangan: eMessageText
: kalimat yang akan ditampilkan.
nDialogBoxType
: jenis button yang akan ditampilkan.
cTitleBarText
: caption dari message box.
nTimeout
: durasi waktu tampil dari message box (1000 = 1 detik).
2
Pemrograman Visual II – rusmanto – STMIK Pontianak
Examples MESSAGEBOX("pesan dengan ok button selama 1 detik",1,"pesan",1000) konfirmasi = ESSAGEBOX("konfirmasi YES NO CANCEL",3,"confirm") Pilih = ESSAGEBOX("Keluar?", 1+32+256, "confirm",5000)
nDialogBoxType
Value
Return value
Dialog box buttons
0 1 2
OK button only OK and Cancel buttons Abort, Retry, and Ignore buttons
3 4
Yes, No, and Cancel buttons Yes and No buttons
5
Retry and Cancel buttons
Icon
Value
16 32 48
Stop sign Question mark Exclamation point
64
Information (i) icon
Button
1 2
OK Cancel
3 4 5
Abort Retry Ignore
6 7
Yes No
Default button
0 256
First button Second button
512
Third button
Untuk memberikan keleluasaan penginputan suatu nilai secara i nteraktif dapat menggunakan function INPUTBOX dengan parameter yang sesuai. Examples tanya = INPUTBOX("umur:") kerja = INPUTBOX("pekerjaan:","job","programmer")
Dalam coding, sering menemui baris coding yang panjang, untuk melakukan penyambungan baris ke baris dibawahnya dapat diberikan “;”. Examples MESSAGEBOX("pesan"; +"panjang"+; "sekali")
Tipe data, merupakan jenis data yang dapat digunakan: Type
Numeric Character /String Logical Date DateTime
Examples
123 3.1415 – 7 "Test String" "123" "01/01/98" .T. .F. {^1998-01-01} {^1998-01-01 12:30:00 p}
3
Pemrograman Visual II – rusmanto – STMIK Pontianak
Data container, merupakan jenis penampungan data yang dapat dipakai: Type
Description
Variables Table Records Arrays
Single elements of data stored in your computer's RAM (Random Access Memory). Multiple rows of predetermined fields, each of which can contain a predefined piece of data. Tables are saved to disk. Multiple elements of data stored in RAM.
Dalam melakukan operasi terhadap lebih dari satu data container, harus memperhatikan tipe data dari data container. Pemakaian function yang berhubungan dengan konversi tipe data harus diperhatikan. Beberapa function konversi tipe data yang umumnya digunakan: Function
Description
TRANSFORM
Konversi nilai menjadi string berformat. ? "Tgl: " + TRANSFORM(DATE())
VAL
Konversi string menjadi numeric. ?
STR
VAL("100") + 10 && 110
Konversi numeric menjadi string. ? STR(100) + STR(100)
CHR
Mendapatkan kode ANSI dari sebuah character. && 100
Date menjadi character. ? "Tgl: " + DTOC(DATE())
CTOD
100
&& d
? ASC("d")
DTOC
&& 100
Mendapatkan character dari kode ANSI. ? CHR(100)
ASC
&& Tgl: 01/01/2015
&& Tgl: 01/01/2015
Character menjadi date ? CTOD("01/01/2015")
&& 01/01/2015
Numeric operator yang digunakan menurut prioritas tertinggi:
Operator ( ) **, ^
*, /
% +, -
Action Group subexpressions Exponentiation
Multiplication and division Modulus (remainder) Addition and subtraction
Code (4-3) * (12/nVar2) ? 3 ** 2 ? 3 ^ 2 ? 2 * 7 ? 14 / 7 ? 15 % 4 ? 4 + 15
4
Pemrograman Visual II – rusmanto – STMIK Pontianak
Locigal operator yang digunakan:
Operator ( ) NOT, !
AND OR
Action Expression groups Logical negative
Logical AND Logical inclusive OR
Code cVar AND (cVar2 AND cVAR3) IF NOT cVarA = cVarB IF ! nVar1 = nVar2 lVar0 AND lVar9 lVarX OR lVarY
Relational operator yang digunakan (mengembalikan logical value .T. | .F.): Operator <
Action
Less than > Greater than = Equal to <>, #, != Not equal to <= Less than or equal to >= Greater than or equal to == Character string comparison
Code ? 23 < 54 ? 1 > 2 ? cVar1 = cVar ? .T. <> .F. ? {^1998/02/16} <= {^1998/02/16} ? 32 >= nHisAge ? status == "Open"
5
Pemrograman Visual II – rusmanto – STMIK Pontianak
Chapter 2
Structure Programming PERCABANGAN Start
False Kondisi
Proses B
True Proses A
End
IF ... ENDIF Percabangan sederhana yang memperbolehkan dua arah percabangan sesuai dengan hasil kondisi yang didapatkan.
IF lExpression [THEN] Commands
[ELSE Commands]
ENDIF
Function IIF Percabangan sederhana dengan menggunakan function.
IIF(lExpression, eExpression1, eExpression2)
DO CASE ... END CASE Percabangan kompleks, dimana memperbolehkan dua atau lebih percabangan sesuai dengan hasil pengujian setiap struktur “CASE”.
DO CASE CASE lExpression1 [Commands] [CASE lExpression2 [Commands]] ... [CASE lExpressionN [Commands]] [OTHERWISE [Commands]] ENDCASE
6
Pemrograman Visual II – rusmanto – STMIK Pontianak
Function ICASE Percabangan kompleks dengan menggunakan function.
ICASE( lCondition1, eResult1 [, lCondition2, eResult2 ] ... [, eOtherwiseResult])
PENGULANGAN
FOR ... ENDFOR Pengulangan dengan frekuensi yang sudah dapat di pastikan.
FOR VarName = nInitialValue TO nFinalValue [STEP nIncrement ] Commands
[EXIT] [LOOP] ENDFOR | NEXT
DO WHILE ... ENDDO Pengulangan dengan frekuensi yang tidak dapat dipastikan.
DO WHILE lExpression Commands
[LOOP] [EXIT] ENDDO
FOR EACH ... ENDFOR Pengulangan pada setiap elemen array ataupun object collection.
FOR EACH Var [AS Type [OF Class Library ]] IN Group [FOXOBJECT] Commands
[EXIT] [LOOP] ENDFOR | NEXT [Var ]
SCAN ... ENDSCAN Melakukan pengulangan dari urutan awal record sebuah recordset sampai dengan urutan terakhirnya.
SCAN [NOOPTIMIZE] [Scope] [FOR lExpression1] [WHILE lExpression2] [Commands] [LOOP] [EXIT] ENDSCAN
7
Pemrograman Visual II – rusmanto – STMIK Pontianak
Chapter 3
Database Visual FoxPro Database Database VFP (.dbc) merupakan komponen yang menyimpan arsitektur dan menangani interaksi table dan view. Manfaat Database VFP:
Menyatukan beberapa table
Menampung relationship antar table dan membuat aturan yang mengikat saat terjadi aktivitas penambahan, pengubahan dan penghapusan datum
Memperbolehkan pembuatan aturan mengenai field dan record-level validation
Membuat strore-procedure
Membuat view (local dan remote)
Melakukan koneksi dengan remote-data
Table Table merupakan komponen yang menampung data dalam database. Table VFP (.dbf) dapat terdiri dari free-table dan database-table. Dalam membuat sebuah aplikasi bisnis, sebaiknya table-table dihubungkan dengan database. Dengan membuat database-table maka dapat dibuat field / record level rules, triggers dan relationship.
View View merupakan komponen didalam database VFP yang berguna untuk membuat recordset menggunakan remote-data connection maupun dari table. View VFP terdiri dari local-view dan remote-view. View yang telah dibuat dapat digunakan untuk menampilkan, mengupdate, menambahkan, dan menghapus data pada table(s) / view(s).
Query Query VFP (.qpr) merupakan komponen yang berguna untuk menampilkan data. Manfaat query:
Mendapatkan informasi dari data yang tersimpan
Menampilkan sekelompok data yang saling berhubungan
Menyediakan data untuk keperluan report
8
Pemrograman Visual II – rusmanto – STMIK Pontianak
Type data (field data-type)
Visual FoxPro Data Types Data type Blob
Description Binary data of indeterminate length.
Size 4 bytes in a table
Range Limited by available memory and/or 2GB file size limit.
1 byte per character to 254
Any characters
8 bytes
- $922337203685477.5807 to $922337203685477.5807
8 bytes
When using strict date formats, {^000101-01}, January 1st, 1 A.D to {^999912-31}, December 31st, 9999 A.D.
8 bytes
When using strict date formats, {^000101-01}, January 1st, 1 A.D to {^999912-31}, December 31st, 9999 A.D., plus 00:00:00 a.m. to 11:59:59 p.m.
Blob values are in a memo (.fpt) file.
No code page translation is performed on Blob data. Character Alphanumeric text
Currency
Date
DateTime
Logical
Numeric
For example, a customer address Monetary amounts For example, the price of an item Chronological data consisting of month, day, and year For example, an order date Chronological data consisting of month, day, year, hours, minutes, and seconds
For example, date and time of arrival Boolean value of 1 byte True or False For example, whether or not an order has been filled Integers or decimal numbers For example, the quantity of items ordered
8 bytes in memory; 1 to 20 bytes in table
True (.T.) or False (.F.)
- .9999999999E+19 to .9999999999E+20
9
Pemrograman Visual II – rusmanto – STMIK Pontianak
Varbinary
Binary values. Varbinary data is similar to Varchar data in that values do not include padding with zero (0) bytes. The length of the contained value is stored internally.
Variant
No code page translation is performed on Varbinary data. Variant data can be any of the Visual FoxPro data types and the null value.
1 byte per hexadecimal value up to 255 total bytes
Any hexadecimal value
See other data types. See other data types.
Once a value is stored to a variant, the variant assumes the data type of the data it contains. Variants are designated with an e prefix in language syntax.
Visual FoxPro Field Types Field type Character (Binary)
Double
Float
General
Integer
Description Any Character data that you do not want translated across code pages
For example, user passwords stored in a table and used in different countries or regions. A double-precision floating-point number
Size 1 byte per character to 254
Range Any characters
8 bytes
+/-4.94065645841247E-324 to +/-8.9884656743115E307
For example, scientific data requiring a high degree of precision. Same as Numeric
8 bytes in memory; 1 to 20 bytes in table Reference to an OLE object 4 bytes in table For example, a Microsoft Excel worksheet. Numeric value with no decimals. For example, a line number in an order.
4 bytes
- .9999999999E+19 to .9999999999E+20
Limited by available memory.
-2147483647 to 2147483647
10
Pemrograman Visual II – rusmanto – STMIK Pontianak
Integer (Autoinc) Memo
Memo (Binary)
Same as Integer but also an automatically incrementing value. Read-only. Alphanumeric text of indeterminate length or reference to a block of data
For example, notes about a phone call in a phone log. Same as Memo except that memo field data does not change across code pages
Varchar
For example, a login script used in different countries or regions. Alphanumeric text.
Varchar (Binary)
Varchar is similar to Character except values in Varchar fields do not include padding with additional spaces. The length of the contained value is stored internally. Varchar type data that you do not want translated across code pages.
4 bytes
4 bytes in table
Value controlled by autoincrement Next and Step values. Limited by available memory.
4 bytes in table
Limited by available memory.
1 byte per character up to 254 total bytes
Any characters
1 byte per character up to 254 total bytes
Any characters
11
Pemrograman Visual II – rusmanto – STMIK Pontianak
Langkah-langkah dasar membuat database dan table:
1. Click tab/frame “Data” untuk mengaktifkan tab/frame yg berhubungan dg database. Setelah itu click tombol “New” sampai tampil dialog box. Click tombol “New Database”
2. Beri nama database-nya sekolah.dbc dan simpan di-folder C:\siswa\data. Click tombol “Save”.
12
Pemrograman Visual II – rusmanto – STMIK Pontianak
3. Click icon “new table” (toolbox database) sampai keluar dialog box “new table” dan click tombol “New Table”.
4. Masukkan nama table sesuai kebutuhan. Beri nama table/data-nya “tblsiswa.dbf” dan click tombol “Save”.
13
Pemrograman Visual II – rusmanto – STMIK Pontianak
5. Tampak dialog/modul untuk design data/table. Untuk nama field nya maksimal panjangnya adalah 10 karakter/huruf.
6. Kemudian click tab “indexes” sampai tampak seperti berikut :
14
Pemrograman Visual II – rusmanto – STMIK Pontianak
7. Click tombol “OK” maka sekarang anda telah memiliki table “tblsiswa.dbf”
8. Click tombol close “X” untuk menutup dialog box di atas. Pada Project Manager terlihat seperti dibawah ini.
15
Pemrograman Visual II – rusmanto – STMIK Pontianak
Latihan 1. Lengkapi database di-atas dengan table-table yang relevan. 2. Buat database untuk penjualan barang. 3. Buat database untuk sistem parkir kendaraan. 4. Buat database untuk SIAK (Sistem Informasi Akademik).
16