Mengenal Index dan 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.

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

6.3 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

6.4 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

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

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

6.6.1 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

6.6.2 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

6.6.3 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

6.6.4 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

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

6.7.1 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

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

1 komentar:

  1. Sangat berguna untuk mengatasi masalah yang saya hadapi sekarang
    terima kasih gan ilmunya

    BalasHapus