Satu
perisian yang boleh;
1.
menakif data à seperti nama pic x (30).
2.
menarik data antara data.
3.
menyediakan kaedah manipulasi data.
4.
format data menjadi piawai.
SPPD
menggunakan konsep bersepadu (integrated) dalam pengurusan fail dengan ini .
1. data rendundan dapat
dikurangkan à rendundan = penindanan data/data bertindih.
2.
data menjadi piawai.
4.
format data menjadi lengkap.
Penjanaan
laporan dan penyataan atas talian senang dibuat. Fasiliti lain adalah penjanaan
skrin, pengurusan menu dan laporan.
pengkelasan arahan.
3
kelas *à 1999
1.
bahasa
takrifan data.
Untuk wujud dan olah skema pengkalan data. Skema
pengkalan data adalah takrifan judul nama data.
2.
bahasa
manipulasi data; untuk tambah (append) hapus dan kemaskan.
3.
Bahasa
query à list, display.
Model Pengkalan Data.
1.
model
adalah perwakilan fizikal bagi benda yang wujud.
2.
Dalam
pengkalan data model mewakili;
-
cara
data disimpan.
-
Perkaitan
antara data.
-
Bagaimana
data diuruskan.
1.
hubungan-hubungan.
(relational). Convert fail/ seperti access, FoxPro dll.
2.
Hirarki. (IMS).
3.
Rangkaian.
(network)
*model
hirarki dan rangkaian semakin kurang dugunakan *à1999
Model
hubungan.
Diwakilkan
dengan jadual
Contoh;
nama |
Alamat |
Markah |
|
*(item
data/ medan alamat) |
|
a)
baris
jadual mewakilkan record.
b)
Laporan
jadual mewakili medan.
c)
Keseluruhan
jadual adalah fail.
bina
struktur jadiual (skema database)
|
bahan
manipulasi (input, batal, ubahdata)
|
bahasa
pertanyaan (pamer/lihat)
Operasi
ke atas struktur data.
1.
create
nama jadual.
-
Panjang
8 aksara.
-
Tidak
boleh nama dimualai dengan hanya satu aksara dari A…J.
.create
pelajar. à fail sambungan .dbf
Nama
medan |
Jenis |
Saiz |
Titik
perpuluhan |
Nama |
Character |
30 |
|
Alamat |
C |
40 |
|
Yuran |
Number |
5 |
2 |
*dalam
medan saiz dan titik perpuluhan terapat lima ruang didalam ada titik nyata cth;
|
|
. |
|
|
.enter
data now y/n
.use
pelajar à
open data base
.modify
structure à untuk baiki jika tertinggal
data cth add medan data.
.append à
tambah data cth; tambah jumlah yuran.
.list à melihat data.
.browse à melihat data lebih
cantek/lihat dan tambah data.
.copy
to use pelajar1 à cthnya; copy dari pelajar ke
pelajar1.
.list
for yuran > 70.00 à
untuk lihat data yg lebih drp 70.00.
.close
all
.copy
file pelajar1.dbf to temp.dbf
.use
temp.
.list
close all à utk tutup dari active.
.erase
temp.dbf.
.use
pelajar
.list
.index
on nama to frame. à index = utk susun nama/
kedudukan.
.use
pelajar index frame.
.list
.reindex à untuk bina semula jika
rosak.
.create
pekerja
record |
Nopek |
Nama |
lamat |
Gaji |
1 |
123 |
Osman |
kajang |
2500.00 |
2 |
111 |
Yusuf |
Seremban |
1200.00 |
3 |
144 |
Leha |
Bangi |
3200.00 |
4 |
222 |
Ros |
Klang |
2400.00 |
.append à arahan untuk menambah record
dihujung pengkalan data.
.replace
nama with “roslan”, nopek with “333” gaji with 1200
.list
.index
on nopek to fnopek à tujuan fail index untuk cepat capain record
dgn find/seek
.use
pekerja index fnopek
.list à list/display utk lihat sahaja, beza keduanya:
list all. display: semasa
.browse à boleh ubah / tambah data (bahasa manipulasi.
.browse
field nama, alamat, gaji à melihat data yang dikehendaki sahaja
.use
pekerja
.append
to pekerja for gaji > 2000 and gaji < 3000 à (and) kedua2
syarat benar (for) adalah syarat
.use
pekerja
.list
.edit
record 1
.edit
for nopek = 222
.use
pekerja
.list
.locate
for gaji > = 2500 à mencar secara berjujukan
.display
.delete
record 2 à data hanya ditanda *
.delete
for nama = “leha”
.lias
.pack à batal / padam
.list
.use
pekerja index fnopek
.cari
= “444”
.find
& cari à
find seek: terus mengguna fail index
.display
.seek
cari
.display
.seek
“666”
.display
.go
bottom
.display
.go
top
.display
.go
2 à record
.display
.replace
all gaji with gaji + 500 for gaji < 1500
.create
kenderaan
nama |
Alamat |
Panjang |
nopek |
C |
5 |
kenderaan |
C |
20 |
Record |
Nopek |
kenderaan |
1 |
123 |
wira |
2 |
111 |
honda |
3 |
222 |
bmw |
4 |
333 |
Jaguar |
.use
pekerja
.go
3
.display
.skip à menggerakkan penunjuk record
ke kedudukan record yang dinyatakan *à1999
.display
.use
kenderaan
.display
.use
pekerja
.skip
.select
A à boleh juga dibuat select 1.
Untul lihat fail semasa
.use
pekerja
.select
B
.use
kenderaan
.select
A
.go
3
.skip
.display
.select
B
.display
.select
A
.skip
------------
utk update
.use
pekerja 1
.index
on nopek t f2
.salect
A
.use
pekerja index f2
.select
B
.use
pekerja index fnopek
.select
A
.update
on nopek from A replace nama with A (à nama) gaji with A (àgaji)
Command
penting
.zap à membuang kesemua record dari pengkalan data yang aktif *à1999
.delete
à record tertentu
.erase
à batal semua record
contoh: .close all
.erase pelajar.dbf.
Diberi;
No
rujukan |
Nama
buku |
penerbit |
Harga |
R123 |
Kimia |
DBP |
12.50 |
R333
|
Fizik |
Fajar |
15.00 |
R111 |
sains |
DBP |
7.00 |
R242 |
matematik |
Mcgraw |
60.00 |
R555 |
cobol |
Prentice |
102.50 |
1.
wujudkan
jadual di atas menggunakan nama dan format yang sesuai. Masukkan data yang
telah diberi.
2.
Pamerkan
semua record
3.
Indexkan
fail fail di atas menggunakan kunci no rujukan.
4.
Pamerkan
fail
5.
Tamabah
record baru (gunakan append blank dan replace)
6.
Kemaskini
record “R242” dimana harga telah naik 10% gunakan replace
7.
Batal
record 7
8.
Pamer
record dimana harga di atas RM 10 hingga RM 20
9.
Salin
jadual buku kepada buku 1. Guna arahan copy.
Nopel |
Nama |
Markah |
444 |
Salleh
|
60 |
222 |
Osman
|
20 |
666 |
Rahim
|
95 |
111 |
Ali
|
40 |
.use
pelajar
.index
on nopek to fnopel
.use
pelajar indek fnopel
.seek
“666”
.display
nopel |
Alamat |
666 |
Cheras |
444 |
Kajang |
111 |
Rawang |
222 |
subang |
.use
alamat
.index
on nopel to f1nopel
.sele
A
.use
pelajar
.sele
B
.use
alamat
.sele
A
.go
2
.sele
B
.go
3
.sele
A
.skip
.display
.sele
A
.use
alamat index f2nopel
.sele
B
.use
pelajar index f1nopel
.update
on nopel from A
replace markah with A -> markah
.use
alamat
.zap
.list
Arahan
ini tidak mengubah kandungan data.
.?
5*3
15
.?
“Selamat”
Selamat
.use
pelajar
.go
2
.?nama,
markah
.modify
command p1
?
“hello” ??
“hello world” |
à tanda ? utk sebaris
à tanda ?? seprti arahan \n
.do
p1 à serti untuk compile atau run.
Display[skop][ungkapan][while<syarat>][off][toprintf]
*[] optional, <> mandatory
.use
pelajar
.display
all off to print
.list
for markah < 50 to print à markah for nama medan
.list
nopel,markah à ada 3
.display
history à arahan yang telah di key in/memaparkan arahan
yng diberi pada titik
.display
memory à lihat senarai pembolehubah serta nilai
pemboleh ubah trsbt.
.displau
status à status semasa
.display
strukture
.use
alamat
.modi
strukture
tambah nama
.use
pelajar
.modify
label flabel
à
membuat label untk surat menyurat
.label
from flabel for markah > 85 à urk run
.modi
query fquery
.set
filter to fquery
.list à menyenaraikan kandungan
pengkalan data.
.set
filter to
.modi
screen papar à utk buat form
.set
format to papar à
utk lihat hasil
.append à ke papar di atas
.modi
report laporan
alt layout
à quick layout
header
intro
detial
sumery à sum
.report
from laporan for….
Arahan
yang dikelaskan sebagai arahan umum ialah arahan yang disediakan sebagai
tambahan kepada tiga kelas arahan sebelumnya.
Nopek |
Nama |
Kodkenderaan |
444 |
Yakub |
2 |
666 |
Salihah |
3 |
111 |
Osman |
5 |
222 |
Amin |
2 |
Jadual
kenderaan |
Nama
kenderaan |
1 |
Saga |
2 |
Iswara |
3 |
Wira
|
4 |
honda |
5 |
Lamborgini |
Syntex
@
< baris lajur> [say <ungkapan>][picture <klaus>]
accept [get <ungkapan] [picture <klaus>]
[range][clear]
@
10,20 say “hello world” à arhn say = display
@
10,20 clear à memadamkan semula arahan tadi
@ 0,
10 to 10,20
lukis
kotak antara 2 kordinat
@
0,10 to 10,20 double à garis double
.modi
comm prog 1
@
1,26 say “sistem record pekerja”
do
while .t.
pilih=0
@2,1 clear to 21,78
@3,25 to 18,50
x=6
y=30
@x,y say “menu utama”
@x+2, y, say “1-tambah record”
@x+4,y say “2-kemaskini”
@x+8, y say “3-batal record”
@x+12, y say say “pilihan anda” à get pilih
pick “9”
range 1, 4 record
do case
case pilih=1
do p1
do p2
case pilih =4
clear
exit à tukarf
end case
.use
pelajar
.index
on jod kenderaan to f2
.use
kenderaan
.index
on kod kenderaan to f2
.use
kenderaan
.count à kira record
.count
for harga < 20,000
.sum
harga à medan numeric
.sum
to jumlah
.sum
harga for harga > 30,000
.average
harga
.sele
A
.use
pekerja
.sele
B
.use
kenderaan
.sele
A
.join
with B to f3 for no kenderaan =B->nokenderaan
field nama, nama_kenderaan
.use
f3
.list
.sele
A
.use
pekerja index f1
.sele
B
.use
kenderaan index f2
.sele
A
.set
relation to no_kenderaan into B
.list
nama, B->nama kenderaan
.use
f3
.list
.sele
A
.use
pekerja index f1
.sele
B
.set
relation to no kenderaan into B
.list
nama B à nama kenderaan
.use
pekerja
.sort
on kod_kenderaan/A, nama/A to p1
.use
p1
.list
Fungsi
terbahagi 2 iaitu;
i.
mempunyai
parameter
ii.
tidak
mempunyai parameter
Terdapat
6 kelas fungsi mengikut arahan yang dimanipulasikan.
1.
masa
2.
rentetan
3.
fail
4.
arithmatik
5.
papar/cetak
6.
am
1.
fungsi
dan (parameter makro)
nama=
“pelajar”
use
&nama *arahan &
address/ seperti scanf
2.
nom=
-40
abs(nom)
3.
nama
= “Osman Abu”
? at
(“Ab”, nama)
4.
?
date()
5.
tarikh
= “20/5/96”
? ctod(tarikh) *ctod=character to date
?
day (tarikh) à 20
?
month (tarikh) à 5
?
year (tarikh) à 96
?
cmonth (tarikh) à may
6.
use
pelajar
? dbf()
à keluar pelajar.dbf
7.
use
pelajar
delete
for markah > 40 and markah < 50
list
for deleted() à terdapat dua arahan flase(active) dan true(utk
delete)
Ali
60
Yusuf
45
Alias
90
Abu 49
8.
?
dow (dele()) à dow(day of week. Iaitu Sunday 1, Monday 2…)
6
?
cdow(date()) à cth Friday
?
dow (3/8/99)
3(teusday)- selasa
9. ?
dtoc (date()) à dtoc(day to character à jawapan: “6/8/99”
?
dtoc(12)
.use
pelajar
.index
on nama + dtoc( tarikh-lahir) to fkunci
10.
use
pekerja
go3
?
eof() à
false. Arahan eof (end at file).
?
bof() à
bof(beginning of file
.go
top
.skip
4
?
bof() à
true (record paling atas)
.go
bottom
.skip
?
eof() à true (record paling bawah)
.modi
comm prog1
.use
pelajar .do
while not.eof() à not (tidak benar ke benar) .replace
markah with markah + 10 for markah < 30 skip à record ke 2 end do |
11.
found()
.T.
jika jumpa
.F.
sebaliknya
.modi
comm p3
.use
pekerja index fnopek @
3,2 say “no pelajar” get unopek read
seek
unopek if
found() display else ? “rec
not found” false *arahan seek/ find (index) *arahan locate (satu demi satu) |
12.
? int (10, 34) cth sqrt(16)
4
13.
rent
= “abc”
?
islower(rent)
?
islower (“abc”)
?
isupper(rent)
?
upper(rent) à ABCD
?
lower (mohd)
14.
len
(rent) 4
len
(“Ismail Yunus”)
12 à
termasuk ruang kosong
15. left
(“Salimah Yunus”, 3) à
output sal
nama=
“Rahimah Alias”
?
left (nama, 6) à output Rahimah
?
right (nama, 3) à output ias
?
left (nama, at (“ “, nama)) à ouput rahimah
?
right (nama “ )) à output ah~lalias
16.
nama
= “~~~Ali~~~~”
left right
&trim(nama) à Ali~~~~
rtrim(nama) à ali
trim(“~~~Abu~~”) à ~~~Abu
&trim(rtrim(“~~~Sal~~”)) à ~~~sal
17.
max(x,y)
min(x,y)
modi
com pmax
.use
pelajar besar=markah do
while. Not. Eof() besar=max(besar,markah) skip end
do ?
besar |
Do pmax à utk run program
Ali
60
Osman
40
Leha
90
Yusof
50
18.
mod
(i,j)
i%j= hasil baki
.? mod
(5,3)
.?
mod (3,5)
19.
use
pelajar
.?
reccount()
locate for nama = “leha”
.?
recno()
.?
recsize 24+1=25 à 1 adalah system
20.
@6,4
say replicate (“A”, 20)
21.
set
decimal to 4
nom=12.3456
?round
(nom,3) à bulatkan kepada 3 titik perpuluhan
12.34560
?
round (nom,2)
12.3500
?
round (nom,1)
12.3000
22.
space à utk mewujudkan rentetan
aksara
nama=space
(30)
@2,3
say “Nama anda: “ get nama
read
23.
str(Nombor,
pjg, titik perpuluhan)
*tukar nom kepada rentetan
nom=1234.56
?
str(nom,7,2) à 2 ialah utk perpuluhan
?
str (nom,8,3)
24.
stuff(r1,n1,n2,r3)
gabung
r1 dari r2 pada posisi n1 dan hapus sebanyak n2 aksara.
Contoh
Sasar=”Ayat
Panjang”
Sisip=”<sisip>”
?
stuff (sasar,5,0,sisip)
?
stuff(sasar,5,1,sisip)
25.
substar
(asal, mula, panjang) dapat sebahagian rentetan (asal)
nama-”ahmad”
? substar(nama,4,2)
? substar-(nama,2,2)
26.
?
time
hh: mm:ss
27.
tramform(medan,
format)
use pekerja
list transform(nama,”01”) transform(gaji,”$$$,99”),
transform (“tarikh lahir”)
28.
val()
tukar rentetan ke numeric
nom=”123”
? val (nom)
? val(“123 jualan1”)