Senin, 08 Juni 2015

Foxpro - Mengenal Index / Sort


Index mempunyai peranannya tersendiri didalam pengolahan tabel / database, seandainya saja, anda mempunyai tabel yang berisi 15 record, tentunya
jika anda akan mencari salah satu dari record yang anda inginkan, tidaklah sulit. Tetapi bagaimana jika tabel anda tersebut mempunyai record yang lebih dari 500 record atau mencapai 10.000 record,
bahkan hingga 500.000 record.
Jadi untuk mengolah data yang mempunyai jumlah record yang sangat banyak, anda membutuhkan perintah index ini. Dengan perintah ini, maka anda dapat
melakukan pengurutan data dan dapat mencari data dengan sangat cepat dan akurat. Index juga sangat berguna jika anda melakukan proses relasi antar tabel.
Proses index sebenarnya adalah melakukan pengurutan data dan ditampung didalam satu file khusus yang mempunyai ekstensi atau akhiran .idx atau
.cdx.
Tabel utama pada saat anda melakukan proses index, sebenarnya tidak berubah. Jika anda membuka suatu tabel dimana tabel tersebut telah di index maka
pembukaan tabel utama akan merujuk kepada tabel index, yang akan mengikat berdasarkan kunci atau field yang di index.
Jelasnya, jika anda membuka tabel yang sudah diberi perintah index maka semua perintah untuk mengolah data, telah merujuk pada file index
tersebut.
Bentuk umum format perintah index
Index on eexpression to idxfilename | tag tagname [ collate ccollatesequence ] [of cdxfilename] [for lexpression] [compact] [ascending | descending]
[unique | candidate] [additive]
Pada visual foxpro 9.0 terdapat dua (2) macan index, pertama adalah index yang mempunyai akhiran .idx, dimana file index ini hanya dapat menampung
satu macam index saja, file index ini disediakan visual foxpro 9.0 untuk kompabilitas dengan foxbase + / foxpro versi 2.x.
Sedangkan untuk index yang mempunyai akhiran .cdx, adalah file index, dimana file ini dapat menampung index dengan jumlah tidak terbatas, index pada
.idx menggunakan to dan index yang tersimpan didalam tabel dengan akhiran .cdx menggunakan tag.
Membuat index
Bukalah tabel backuppenduduk.dbf dan copykan datanya kedalam tabel penduduk.dbf sehingga data dalam tabel penduduk.dbf tertimpa dan diganti dengan
tabel dari backuppenduduk.dbf.
CLOSE ALL
USE backuppenduduk
COPY TO penduduk
USE penduduk
Perhatikan isi tabel tersebut yang ada pada field pekerjaan, dimana pada tabel tersebut isi nya belum urut. Untuk itu anda akan membuat index
tersebut berdasarkan field pekerjaan, ketikan pada Jendela Command :
INDEX on pekerjaan TO pekerjaan
BROWSE
Perhatikan urutan isi dari pekerjaan yang telah diurutkan, dan urutanya berdasarkan dari kecil kebesar, ini disebut index ascending. Pada
kenyataannya Visual foxpro 9.0 secara otomatis melakukan index dengan pola ascending. Perhatikan data kosong pertama kali yang diletakan paling atas yang tadinya terdapat pada record ke 26 sekarang
tampak pada posisi pertama, meski demikian posisi record sesungguhnya tetap pada record ke 26.
Mengindex tabel lebih dari satu index.
anda dapat melakukan index tabel tidak pada satu field saja, melainkan dapat melakukanya pada beberapa field sekaligus didalam satu tabel.
INDEX on agama+nama TO nagama
BROWSE FIELDS agama,nama,pekerjaan
Sebaiknya nama file index dibuat bagus dan mudah diingat. Namun jika untuk mengolah data nama file index boleh asal / bebas sesuai kehendak anda,
boleh menggunakan satu huruf, dua huruf atau huruf apa saja.
INDEX on gol_darah TO xx
Oke sekarang coba anda lakukan beberapa index untuk tabel penduduk.dbf
USE c:\dtpenduduk\penduduk.DBF
INDEX on nama TO aa
INDEX on pekerjaan to bb
INDEX on nama + pekerjaan TO cc
DISPLAY STATUS
Perhatikan bahwa index yang aktif adalah index yang terakhir dibuat yakni cc.idx
Memilih index aktif.
Jika anda akan memilih index yang anda inginkan dari beberapa index yang ada dalam satu tabel, gunakan perintah :
SET INDEX TO
Jika dalam satu tabel ada beberapa file index berakhiran .idx, maka untuk mengaktifkan salah satu index dapat menggunakan perintah set index.
USE c:\dtpenduduk\penduduk.DBF
INDEX on nama TO aa
INDEX on pekerjaan to bb
INDEX on nama + pekerjaan TO cc
Untuk mengaktifkan index bb , dimana bb adalah index untuk field pekerjaan. Maka ketikan perintah :
SET INDEX TO bb BROWSE
Perintah SET INDEX TO bb , akan mengaktifkan tabel penduduk.dbf dan mengkaitkan dengan file index pekerjaan.idx
Menghapus file index .idx.
File index dapat dihapus dengan cara : tutup file tabel dan hapus file index yang anda pilih, ketikan perintah ini pada Jendela Command .
DELETE FILE xx.idx
Sedangkan untuk menghapus semua file index, gunakan perintah :
DELETE FILE *.idx
Lihatlah file index, maka sudah tidak ada satupun file index yang ada di hardisk anda.
Index majemuk atau index struktural.
anda telah mengenal file index yang dibuat diatas yakni file index yang berakhiran .idx. File index dengan akhiran .idx hanya dapat menampung satu
file index saja. Visual FoxPro 9.0 mengijinkan anda untuk membuat index yang dapat menampung index dalam jumlah tak terbatas. Karena file .idx hanya dapat menampung satu jenis file index saja, maka
secara otomatis jika diaktifkan akan menjadi nama kunci index tersebut.
USE c:\dtpenduduk\penduduk.DBF
INDEX on nama + pekerjaan TO cc
Jelas disini file .idx yang aktif adalah file index cc.idx. Berbeda dengan index majemuk atau struktural, index ini secara oromatis selalu dibuka
pada saat anda membuka tabel tanpa harus memanggilnya dengan perintah Set index.
Menciptakan index majemuk atau index struktural.
Jika membuat index biasa menggunakan To maka jika membuat index majemuk menggunakan Tag
USE c:\dtpenduduk\penduduk.DBF
INDEX on nama TAG nama
INDEX on pekerjaan TAG pekerjaan
DISPLAY STATUS
Perhatikan pada status dari tabel yang sedang dibuka dibawah ini :
Tampak ada 2 buah nama index yakni nama dan pekerjaan. Jika tabel di tutup, kemudian dibuka kembali maka file index yang telah dibuat akan ikut terbuka secara otomatis, tanpa harus menuliskan perintah set inde to ..
CLOSE ALL
USE c:\dtpenduduk\penduduk.DBF
DISPLAY STATUS
Memilih index aktif.
Untuk memilih index aktif gunakan perintah set order to nama file index.
USE c:\dtpenduduk\penduduk.DBF I
NDEX on nama TAG nama
INDEX on pekerjaan TAG pekerjaan
SET ORDER TO NAMA
Reindex data.
Jika tabel dibuka, sementara file index tidak dibuka maka jika terjadi perubahan data maka data file index tidak ikut diperbaharui. Untuk itu agar
file index selalu dalam kondisi mutahir dan selalu menyesuaikan dengan tabel aktif maka perlu diadakan pengkinian data index tersebut.
Ketikan perintah :
USE c:\dtpenduduk\penduduk.DBF
REINDEX
Menghapus file index .cdx.
Untuk menghapus tabel index .cdx dari dalam tabel gunaka perintah :
USE c:\dtpenduduk\penduduk.DBF
DELETE TAG nama
DISPLAY STATUS
Maka file index nama akan dihapus dari dalam tabel penduduk.dbf
Perintah sort.
Bentuk umum perintah sort adalah sebagai berikut
SORT TO TableName ON FieldName1 [/A | /D] [/C] [, FieldName2 [/A | /D] [/C] ...] [ASCENDING | DESCENDING] [Scope] [FOR lExpression1] [WHILE
lExpression2] [FIELDS FieldNameList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton] [NOOPTIMIZE]
Seperti halnya index, perintah sort juga dapat digunakan untuk mengurutkan data hanya saja perintah ini membentuk suatu file bukan berakhiran .idx
atau .cdx. Atau lainnya, melainkan perintah sort ini membentuk file tabel baru berakhiran .dbf. Jadi hasil dari perintah sort adalah Tabel.
Contoh :
Ketikan perintah ini pada Jendela Command .
USE c:\dtpenduduk\penduduk.DBF BROWSE SORT ON nama TO namasort
SELECT b
USE namasort
BROWSE
Dengan perintah tersebut diatas maka visual foxpro 9.0 telah membuat satu buah tabel baru dengan nama namasort.dbf dan datanya urut berdasarkan
field nama.
Perintah sort dapat ditulis seperti ini
SORT TO namasort ON nama
Hasilnya sama saja antara penulisan to didepan dan to dibelakang
Penjelasan :
anda telah mempunyai tabel penduduk dan tabel nama yang isinya sama dengan tabel penduduk hanya saja tabel namasort.dbf isi datanya di urutkan
berdasarkan field nama.
Sort Desending.
Sort dapat diurutkan seperti halnya index. Untuk mengurutkan secara urut dari bawah keatas atau secara desending maka ketikan perintah :
SORT ON nama TO nm descending
USE nm
BROWSE
Sort asending.
Ketikan perintah ini untuk membuat file dengan urutan sort secara asending.
SORT TO nama ON nama/a
BROWSE
Anda dapat menggunakan /d untuk desending dan /a untuk asending.

0 komentar:

Posting Komentar