Mengenal Relasi


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.

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.

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.

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.

Kemudian lihatlah isi dari kedua tabel tersebut

SELECT

z
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.

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.

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.

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.

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

Melakukan proses index pada tabel penduduk.dbf menurut kata kunci no_pen dengan nama index nopenp.idx

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

Dilakukan proses index data dengan kunci index no_pen dan diberi nama index nopend.idx

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

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

Lihatlah hasilnya

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

Buka tabel 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

Tentukan area kerja b

SELECT b

Buka tabel dataconv.dbf

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

Lakukan proses index field no_pen sebagai kata kunci dengan nama index yy.idx

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

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

Lihatlah hasilnya

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.

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

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.

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).

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