• Tidak ada hasil yang ditemukan

and mhs.jenis_kel=”L”;

Dalam dokumen BAB I PEMODELAN SISTEM (Halaman 112-117)

Into table2.dbf

Catatan :

• SQL bisa ditulis langsung pada layar command (secara interaktif). • SQL dapat disimpan sebagai bagian dari alur program.

Pada foxpro perintah bisa juga dilakukan dengan meng-generate SQL dengan perintah query sebagai berikut :

Pilih menu file Æ pilih Newe Æ pilih Query

MODUL VI

BUG SISTEM & PENANGANANNYA

1. Redudansi

Redudansi data didefinisikan sebagai kerangkapan data pada basis data kumpulan data/file) dan bukan pada tabel.

Contoh :

Tabel 1 (mhs.dbf) tersusun atas field : • No_Mhs • Nama • Alamat • Jenis_kel • Kd_dosen • Nama_dosen *****

Tabel 2 (dosen.dbf) tersusun atas field : • Kd_dosen

• Nama_dosen *****

Pada tanda ***** (Nama_dosen) terdapat kerangkapan data, dimana seharusnya field

nama_dosen pada tabel 1 (mhs.dbf) dihilangkan, karena pada dasarnya nama_dosen pada tabel 1 dapat dicari dengan merelasikan field kd_dosen pada tabel 1 kepada field kd_dosen pada tabel 2 sehingga didapat nilai nama_dosen.

Efek redudancy data tidak secara langsung akan merusak data, tetapi akan mengurangi nilai efesiensi data yang berakibat pada pembengkakan ukuran file data.

Penanganan Redudancy Data biasanya dilakukan pada saat proses perancangan data itu sendiri dengna melakukan normalisasi data.

2. Penghapusan data

Ada dua jenis penghapusan di dalam file data :

• Penghapusan dengan menandai record tetapi tidak dihapus secara fisik

Penghapusan seperti ini dilakukan dengan maksud agar data yang telah dihapus masih dapat dipanggil ulang dengan perintah RECALL, karena pada dasarnya tidak setiap record yang telah dihapus akan menjadi sampah, bahkan bisa saja suatu saat record tersebut masih dibutuhkan untuk suatu proses.

Persoalan muncul ketika proses pencarian (baik terindex ataupun tidak) dilakukan tanpa menambahkan logika data sudah terhapus atau belum terhapus. Karena ketika proses pencarian, record yang sudah terhapus tetap saja merupakan bagian dari file data.

Contoh : fikle mhs.dbf

No_Mhs Nama_mhs Alamat_mhs

0001 Slamet Yogya

0002 Sigit Yogya

0003 Tompel Yogya

Dengan perintah : delete for nama_mhs = ‘Sigit’ Maka status file data menjadi:

No_Mhs Nama_mhs Alamat_mhs

0001 Slamet Yogya

0002 Sigit Yogya

0003 Tompel Yogya

*

Dimana tanda (*) merupakan record yang sudah terhapus Ketika kita melakukan pencarian data dengan sintaks berikut:

Uses mhs index mhs Seek ‘0002’

If found ()

Tampikan data

Endif

Maka data ‘Sigit’ yang sudah terhapus tetap akan ditampilkan, karena secara fisik belum terhapus. Untuk menanganinya, perlu ditambahkan logika pada proses pencarian menjadi ‘jika ditemukan dan belum terhapus’, sintaksnya sebagai berikut :

Uses mhs index mhs Seek ‘0002’

If found () .and. !delete() Å (tanda !artinya Not/tidak) Tampikan data

Endif

• Penghapusan dengan menghapus secara fisik

Penghapusan seperti ini dilakukan dengan maksud agar data yang telah dihapus benar-benar hilang secara fisik.

Dengan mengambil contoh tabel diatas (file mhs.dbf), perintah penghapusan secara fisik dilakukan dengan sintaks :

Delete for nama_mhs = ‘Sigit’

Pack Å (perintah penghapusan secara fisik)

Sehingga tabel mhs.dbf menjadi

No_Mhs Nama_mhs Alamat_mhs

0001 Slamet Yogya

0003 Tompel Yogya

Persoalan muncul ketika kita menjalankan aplikasi untuk multi user (dalam sebuah jaringan), perintah Pack hanya bisa dilakukan secara exlusive (otoritas penuh pada file data atau dengan kata lain file data hanyadapat diakses oleh satuorang dan yang lain harus menunggusampai proses selesai).

Penanganan, penghapusan secara fisik hendaknya dilakukan secara hati-hati, dan dilakukan pada saat pemeliharaan data, sehingga tidak menimbulkan gangguan bagi pemakai file data lainnya.

Reindex adalah proses meng-index ulang data agar data dbf dan data index tetap sama, sehingga data dbf dan data index menjadi konsisten, karena perbedaan antara data dbf dengan data index akan menyebabkan program menjadi error.

Dikatakan sifat exclusive adalah bahwa suatu file hanyaboleh diakses oleh satu orang dan yang lain harus menunggu. Sama dengan perintah pack, perintah reindex yang dilakukan secara sembarangan akan mengakibatkan penolakan akses terhadap suatu file bagi pengguna file lainnya, sehingga mengurangi nilai efesiensi.

Penanganan masalah ini adalah dengan memberikan waktu penuh bagi proses reindex yang dilakukan oleh orang yang berwewenang, biasanya proses reindex dilakukan pada saat pemeliharaan data, atau pada saat sistem sangan membutuhkan index file yang aktual.

4. Penguncian file / record

Proses penguncian file/record dilakukan pada sistem yang menggunakan jaringan atau bersifat multi user. Kenapa harus melakukan penguncian?

Bayangkan kasus seperti ini ;

Ketika si “A” sendang mengedit record “x” pada file mhs.dbf, si ”B” pada saat yang sama bersamaan menghapus record yang sama “x” pada file mhs.dbf. apa yang terjadi ? , sistem menjadi error

Disinilah kita memerlukan penguncian file/record diperlukan, sehingga kasus diatas berubah cerita menjadi

Sebelum si “A” sedang mengedit reocord “x” pada file mhs.dbf, si “A” harus mengunci record “x” terlebih dahulu, sehingga pada saat si “B” akan menghapus record “x” tersebut, si “B” harus menunggu proses penghapusan sampai si “A” selesai dan membuka penguncian terhadap file / record

Penanganan masalah ini adalah seorang programmer harus selalu memahami proses dimana yang bersifat kritis yang akan mengakibatkan prubahan fisik terhadap data (seperti proses edit, hapus dan tambah). Akan lebih baik jika sistem yang dibangun mampu membagi otoritas atau wewenang terhadap pengguna data sehingga tidak setiap pengguna data dapat secara langsung menambah / mengedit /menghapus data.

5. Pemeliharaan data

Ketika kita membangun suatu sistem basis data dengan tingkat perubahan fisik data yang sangat cepat (retail, banking, dan lain-lain), pemeliharaan data menjadi sesuatu yang sangat mutlak dilakukan. Data yang tidak terpelihara akan lebih rentan dan mengakibatkan sistem menjadi crash. Pemeliharaan data hendaknya dilakukan secara rutin dan dilakukan oleh orang yang berwewenang atau orang yang punya otoritas.

• Backup Data

Proses backup data dilakukan dengan maksud agar sistem mempunyai data kedua (secondary) yang dapat dijadikan sebagai data cadangan jika data utama (primary) mengalami kerusakan fisik. Backup data pada sstem yang sangat besar biasanya dilakukan secara berlapis (backup dilakukan tidak pada satu tempat / media)

• Restore Data

Merupakan kebalikan dari proses backup data, dimana data secondary dirubah menjadi data primary. Restore data biasanya dilakukan ketika data primary mengalami kerusakan fisik.

• Reindex

(Seperti yang telah dijelaskan pada bagian sebelumnya).

MODUL VI

Dalam dokumen BAB I PEMODELAN SISTEM (Halaman 112-117)

Dokumen terkait