Relasi
antar tabel didalam mengolah data dengan Visual FoxPro 9.0 memegang peran yang
sangat penting. Jika Anda mempunyai banyak tabel dalam suatu
database, dimana isi informasi ada pada beberapa tabel yang terpisah, dan Anda ingin mengumpulkan informasi tersebut dari beberapa tabel menjadi satu informasi yang dibutuhkan untuk membuat suatu laporan, maka perintah relasi ini dapat Anda gunakan.
database, dimana isi informasi ada pada beberapa tabel yang terpisah, dan Anda ingin mengumpulkan informasi tersebut dari beberapa tabel menjadi satu informasi yang dibutuhkan untuk membuat suatu laporan, maka perintah relasi ini dapat Anda gunakan.
Langkah
pertama adalah membuat file baru yang terdiri dari dua buah field, yakni field
no_pen, nama dan keterangan. dimana strukturnya berasal dari
tabel penduduk.dbf, lalu tabel baru tersebut diberi nama tabel dataconv.dbf.
tabel penduduk.dbf, lalu tabel baru tersebut diberi nama tabel dataconv.dbf.
Jalankan
program Visual FoxPro 9.0, ketikan pada Jendela Command perintah dibawah ini.
SELECT
a
USE
c:\dtpenduduk\penduduk.DBF
COPY
TO dataconv FIELDS no_pen,nama,kondisi, keterangan FOR kondisi =[MISKIN]
SELECT
b
USE
c:\dtpenduduk\dataconv.DBF
Penjelasan
perintah diatas adalah :
Anda
telah melakukan proses pembuatan satu tabel baru dengan nama dataconv.dbf yang
didalamnya hanya terdapat empat buah field saja yakni :
field no_pen, nama, kondisi dan keterangan, yang diambil dari tebel penduduk.dbf, dan hanya data yang mempunyai kriteria field kondisi adalah MISKIN.
field no_pen, nama, kondisi dan keterangan, yang diambil dari tebel penduduk.dbf, dan hanya data yang mempunyai kriteria field kondisi adalah MISKIN.
Ketiklah
perintah display status untuk melihat jumlah file yang sedang dibuka saat ini.
Perhatikan gambar dibawah ini, ada dua buah file yang sedang
terbuka, tampak tabel dataconv.dbf menempati area kedua dan tabel penduduk.dbf menempati area pertama.
terbuka, tampak tabel dataconv.dbf menempati area kedua dan tabel penduduk.dbf menempati area pertama.
Kemudian
lihatlah isi dari kedua tabel tersebut
SELECT
z
a && a= tabel penduduk
a && a= tabel penduduk
BROWSE
SELECT
b && b= tabel dataconv
BROWSE
Atau
SELECT
penduduk
BROWSE
SELECT
dataconv
BROWSE
Perintah
diatas diberikan karena kedua buah tabel yakni tabel penduduk.dbf dan tabel
dataconv.dbf telah dibuka sebelumnya.
Atau
ketikan dari awal seperti perintah dibawah ini :
CLOSE
ALL
USE
c:\dtpenduduk\penduduk.DBF IN 0
USE
c:\dtpenduduk\dataconv.DBF IN 0
SELECT
penduduk
BROWSE
SELECT
dataconv
BROWSE
Perhatikan
tampilan dua buah tabel yang sedang dibuka.
8.2
Melakukan relasi dengan proses replace record.
Visual
FoxPro 9.0 mengenal ada empat macam relasi, yakni :
Relasi
satu ke banyak
Relasi banyak ke satu
Relasi satu ke Satu
Relasi banyak ke banyak
Untuk relasi satu ke satu atau banyak ke banyak sepertinya kurang banyak dipakai, karena terasa kurang lazim.
Relasi banyak ke satu
Relasi satu ke Satu
Relasi banyak ke banyak
Untuk relasi satu ke satu atau banyak ke banyak sepertinya kurang banyak dipakai, karena terasa kurang lazim.
Biasanya
jenis relasi satu ke banyak dan banyak ke satu yang sering dipakai.
Note:
Untuk
melakukan relasi antar tabel, Visual FoxPro 9.0 meminta Anda untuk selalu
melakukan proses index dari tabel yang akan direlasikan
tersebut.
tersebut.
8.2.1
set relation.
Perintah
set relation adalah perintah yang berfungsi melakukan hubungan antar tabel
sesuai dengan kunci indexnya. Tentunya dengan perintah ini Anda
dapat melakukan banyak hal didalam proses relasi antar tabel.
dapat melakukan banyak hal didalam proses relasi antar tabel.
Mari
kita mencoba melakukan proses relasi antar tabel. Intinya Saya akan mengisikan
field keterangan yang ada pada tabel dataconv.dbf dengan data
yang ada pada field pekerjaan yang ada pada tabel penduduk.dbf.
yang ada pada field pekerjaan yang ada pada tabel penduduk.dbf.
Lakukan
pengetikan perintah berikut ini.
USE
c:\dtpenduduk\penduduk.DBF IN 0
INDEX
on no_pen TO nopenp
USE
c:\dtpenduduk\dataconv.DBF IN 0
INDEX
on no_pen TO nopend
SELECT
dataconv
SET
RELATION TO no_pen INTO penduduk
REPLACE
keterangan WITH penduduk->pekerjaan FOR no_pen =penduduk->no_pen
BROWSE
Lihatkan
hasilnya pada field keterangan yang telah diisi oleh data dari field pekerjaan
pada tabel penduduk.
Penjelasan
diatas adalah sebagai berikut :
Memanggil
tabel data penduduk.dbf pada lokasi paling kecil / nol
USE c:\dtpenduduk\penduduk.DBF IN 0
USE c:\dtpenduduk\penduduk.DBF IN 0
Melakukan
proses index pada tabel penduduk.dbf menurut kata kunci no_pen dengan nama
index nopenp.idx
INDEX on no_pen TO nopenp
INDEX on no_pen TO nopenp
Kemudian
memanggil tabel yang bernama dataconv.dbf pada lokasi paling terkecil yang
ditentukan oleh Visual FoxPro 9.0 / 0 / nol
USE c:\dtpenduduk\dataconv.DBF IN 0
USE c:\dtpenduduk\dataconv.DBF IN 0
Dilakukan
proses index data dengan kunci index no_pen dan diberi nama index nopend.idx
INDEX on no_pen TO nopend
INDEX on no_pen TO nopend
Aktifkan
tabel dataconv
SELECT
dataconv
Beri
perintah relasi kedua tabel berdasarkan kata kunci no_pen dari posisi tabel
aktif yakni dataconv.dbf terhadap tabel penduduk.dbf
SET RELATION TO no_pen INTO penduduk
SET RELATION TO no_pen INTO penduduk
Lakukan
proses perubahan pada field keterangan yang berada pada tabel aktif yakni
dataconv.dbf dengan mengambil data pada tabel penduduk untuk yang
mempunyai data yang sama pada field no_pen antara tabel dataconv.dbf dengan tabel peduduk.dbf
REPLACE keterangan WITH penduduk->pekerjaan FOR no_pen =penduduk->no_pen
mempunyai data yang sama pada field no_pen antara tabel dataconv.dbf dengan tabel peduduk.dbf
REPLACE keterangan WITH penduduk->pekerjaan FOR no_pen =penduduk->no_pen
Lihatlah
hasilnya
BROWSE
BROWSE
Contoh
lain.
SELECT
a
USE
c:\dtpenduduk\penduduk.DBF
INDEX
on no_pen TO xx
SELECT
b
USE
dataconv
INDEX
on no_pen TO yy
SET
RELATION TO no_pen INTO a
REPLACE
kondisi WITH 'kacian' keterangan WITH a->nama + a->status FOR no_pen
=a->no_pen
BROWSE
Penjelasan
perintah diatas adalah sebagai berikut.
Tentukan
area kerja a
SELECT a
SELECT a
Buka
tabel penduduk.dbf
USE c:\dtpenduduk\penduduk.DBF
USE c:\dtpenduduk\penduduk.DBF
Lakukan
proses index field no_pen sebagai kata kunci dengan nama index xx.idx
INDEX on no_pen TO xx
INDEX on no_pen TO xx
Tentukan
area kerja b
SELECT b
SELECT b
Buka
tabel dataconv.dbf
USE dataconv
USE dataconv
Disini
pembukaan dataconv.dbf tidak menyertakan direktori seperti pembukaan tabel
penduduk.dbf, Pemanggilan tabel diperbolehkan karena default
direktori telah ditentukan sebelumnya. Melalui menu tools-options atau pengetikan perintah set defa to ...( Bab 1
direktori telah ditentukan sebelumnya. Melalui menu tools-options atau pengetikan perintah set defa to ...( Bab 1
Lakukan
proses index field no_pen sebagai kata kunci dengan nama index yy.idx
INDEX on no_pen TO yy
INDEX on no_pen TO yy
Beri
perintah relasi kedua tabel berdasarkan kata kunci no_pen dari posisi tabel
aktif yakni dataconv.dbf ke tabel pada area a yakni tabel
penduduk.dbf
SET RELATION TO no_pen INTO a
penduduk.dbf
SET RELATION TO no_pen INTO a
Lakukan
proses perubahan pada field kondisi milik tabel dataconv.dbf yang berada di
area b dan saat ini sedang aktif dengan kata
‘kacian’ dan field keterangan dengan data pada field nama + status yang berada pada tabel penduduk.dbf yang ada di area a. Perubahan ini diproses untuk yang mempunyai kunci relasi yang
sama antara no_pen pada tabel dataconv.dbf ( pada area b ) dan tabel pendudul.dbf ( pada area a
REPLACE kondisi WITH 'kacian' keterangan WITH a->nama + a->status FOR no_pen =a->no_pen
‘kacian’ dan field keterangan dengan data pada field nama + status yang berada pada tabel penduduk.dbf yang ada di area a. Perubahan ini diproses untuk yang mempunyai kunci relasi yang
sama antara no_pen pada tabel dataconv.dbf ( pada area b ) dan tabel pendudul.dbf ( pada area a
REPLACE kondisi WITH 'kacian' keterangan WITH a->nama + a->status FOR no_pen =a->no_pen
Lihatlah
hasilnya
BROWSE
BROWSE
8.2.2
Set relation dengan lebih dari dua tabel.
Bagaimana
jika seandainya Anda akan melakukan relasi dengan lebih dari dua tabel ?.
Visual
FoxPro 9.0 memungkinkan Anda melakukan relasi beberapa tabel sekaligus tanpa
masalah, tinggal Anda mampu mengingat tidak nama dan lokasi dari
tabel yang dibuka.
tabel yang dibuka.
Untuk
melakukan relasi tiga buah tabel, misalnya lihatlah contoh dibawah ini.
USE
c:\dtpenduduk\penduduk.DBF IN 0
INDEX
on no_pen TO nopenp
USE
c:\dtpenduduk\dataconv.DBF IN 0
INDEX
on no_pen TO nopend
Use
c:\dtpenduduk\dataktp.DBF IN 0
INDEX
on no_ktp TO noktp
SELECT
dataconv
SET
RELATION TO no_pen INTO penduduk, noktp into dataktp
Jadi
untuk melakukan relasi lebih dari dua tabel secara sekaligus maka perintah
relasi dipisahkan dengan tanda koma.
Bisa
juga dengan tambahan kata ADDITIVE untuk tabel berikutnya ( setelah 2 relasi utama
). Misalnya Lihat contoh berikut :
USE
c:\dtpenduduk\penduduk.DBF IN 0
INDEX
on no_pen TO nopenp
USE
c:\dtpenduduk\dataconv.DBF IN 0
INDEX
on no_pen TO nopend
Use
c:\dtpenduduk\dataktp.DBF IN 0
INDEX
on no_ktp TO noktp
SELECT
dataconv
SET
RELATION TO no_pen INTO penduduk
SET
RELATION TO no_ktp INTO dataktp ADDTIVE
8.2.3
Memutuskan satu relasi.
Jika
Anda mempunyai beberapa relasi antar tabel, dan Anda akan memutuskan salah satu
keterkaitan tersebut maka ketikan perintah
SET
RELATION OFF dataktp
8.2.4
Set relation to.
Untuk
memutuskan seluruh relasi pada tabel yang terkait maka ketikan perintah :
SET
RELATION
TO
TO
8.3
Relasi dengan proses delete record.
Jika
diatas Anda melakukan relasi, dimana relasi tersebut melakukan beberapa
perubahan pada data aktif, disini Saya akan ajak Anda untuk mengenal
relasi untuk melakukan penghapusan pada data aktif.
relasi untuk melakukan penghapusan pada data aktif.
SELECT
a
USE
c:\dtpenduduk\penduduk.DBF
INDEX
on no_pen TO oke
SELECT
b
USE
c:\dtpenduduk\dataconv.DBF
INDEX
on no_pen TO yes
SELECT
a
SET
RELATION TO no_pen INTO b
DELETE
FOR no_pen =b->no_pen
COUNT
FOR DELETED()
BROWSE
Perhatikan
baris perintah diatas. Untuk pemberian nama index, Anda bebas boleh apa saja,
mau yes, oke, atau jost sekalipun tidak apa-apa.
Perhatikan
untuk perintah pernghapusan data yang tertulis sebagai berikut :
DELETE
FOR no_pen =b->no_pen
Artinya.
Komputer disuruh melakukan proses pendeletan data bisa data pada kunci index
yang ada pada tabel penduduk.dbf (a) sama dengan data kunci
index pada tabel dataconv.dbf (b).
index pada tabel dataconv.dbf (b).
Perintah
COUNT FOR DELETED() adalah perintah untuk menghitung berapa banyak record data
yang telah dihapus dalam tabel.
Terlihat
pada tabel penduduk yang telah dilakukan proses pendeletan, tampak data yang
cocok diberi tanda delete.
Tidak ada komentar:
Posting Komentar