MENU, PROGRAM DAN SUBPROGRAM 1. Pemeliharaan File Pemeliharaan integritas basis data dalam aplikasi a. Sebagai sarana untuk meyakinkan bahwa nilai-nilai data dalam sistem basis data selalu benar, konsisten, selalu tersedia. Dapat dilakukan dengan cara: 1. Pastikan bahwa nilai-nilai data adalah benar sejak dimasukkan pertama kali 2. Membuat program untuk mengecek keabsahan data pada saat dimasukkan ke komputer b. Penolakan atau pembatalan aksi (cancelation) c. Pengisian nilai kosong pada field tertentu (nullify) d. Penjalaran perubahan (cascade) e. Integritas yang harus dijaga: 1. Integritas keunikan data, dilakukan melalui: a. Pendefinisian struktur tabel dengan membuat indeks primer yang bersifat unik b. Pengkodean di dalam aplikasi pada saat pemasukkan atau penambahan data dengan jalan lebih user-friendly c. Kedua cara (i) dan (ii) diterapkan bersama-sama 2. Integritas domain data, dilakukan melalui: a. Penetapan tipe data pada setiap field di dalam tabel b. Pengisian validation rule dari DBMS 3. Integritas referensial (relasi antar tabel) a. Harus selalu dijaga, karena kesalahan referensial dapat menimbulkan kesalahan baru dalam basis data b. Dilakukan pengecekan pada proses penambahan, pengubahan, dan penghapusan data 4. Integritas aturan nyata a. Sifatnya sangat kasuistis, tidak berlaku umum. Pada kasus yang berbeda, aturannya bisa berbeda pula b. Untuk mengakomodasi adanya business role ini, dengan menyiapkan tabel khusus yang menampung nilai-nilai konstanta yang dibutuhkan aplikasi pada saat dijalankan yang mudah diubah tanpa mengakibatkan perubahan aplikasi maupun struktur basis data 2. Program Tambah, Program Ubah, Program Hapus, Program Lihat, dan Program Cetak Contoh Program Menu SET MENU OFF SET DELI ON SET DELI TO [ ] PUBLIC BLOK BLOK = REPLICATE(CHR(177),80) JUDUL = PROGRAM ISI DATA MAHASISWA PIL = 0 @2,(80-LEN(JUDUL))/2 SAY JUDUL Pertemuan 9 Jeje, SKom, MMSI Universitas Gunadarma 1
@ 4,0 SAY BLOK @ 6,20 SAY 1. ISI DATA MAHASISWA @ 8,20 SAY 2. UBAH DATA MAHASISWA @ 10,20 SAY 3. HAPUS DATA MAHASISWA @ 12,20 SAY 4. CETAK DATA MAHASISWA @ 14,20 SAY 5. SELESAI @ 17,20 SAY PILIHAN ANDA [1-5] : GET PIL PICT 99 DO CASE CASE PIL=1 DO ISIDAT.PRG CASE PIL=2 DO UBDAT.PRG CASE PIL=3 DO HPSDAT.PRG CASE PIL=4 DO CETAK.PRG CASE PIL=5 CLOSE DATABASE OTHERWISE @22,20 SAY ANDA SALAH PILIH, ULANGI! SET CONSOLE OFF SET CONSOLE ON @ 22,20 SAY SPACE(30) ENDCASE Contoh Program Isi Data JUDUL1 = ISI DATA MAHASIWA STORE SPACE(15) TO VNM_SISWA,VALAMAT STORE SPACE(8) TO VNO_INDUK STORE SPACE(10) TO VKOTA STORE CTOD( / / ) TO VTGL_LAHIR @ 2,(80-LEN(JUDUL))/2 SAY JUDUL1 @4,0 SAY BLOK @5,20 SAY NOMOR INDUK SISWA : GET VNO_INDUK ; PICT XXXXXXXX IF VN0_INDUK = SPACE(8) Pertemuan 9 Jeje, SKom, MMSI Universitas Gunadarma 2
FIND & VNO_INDUK IF FOUND() @22,20 SAY DATA SUDAH ADA, TEKAN ENTER SET CONS ON @ 7,20 SAY NAMA MAHASISWA : GET VNM_SISWA PICT @! @ 9,20 SAY TANGGAL LAHIR : GET VTGL_LAHIR ; PICT XX/XX/XX @ 11,20 SAY ALAMAT MAHASISWA : GET VALAMAT PICT @! @ 13,20 SAY KOTA : GET VKOTA PICT @! JAWAB = SPACE(2) @ 17,20 SAY DATA SUDAH BENAR[Y/T] : GET JAWAB PICT @! IF JAWAB = Y * MEMESAN DATA BARU APPEND BLANK REPLACE NO_INDUK WITH VNO_INDUK REPLACE NM_SISWA WITH VNM_SISWA REPLACE TGL_LAHIR WITH VTGL_LAHIR REPLACE ALAMAT WITH VALAMAT RELPLACE KOTA WITH KOTA GET JAWAB2=SPACE(2) @ 17,20 SAY INGIN ISI DATA LAGI?[Y/T] : GET JAWAB2 PICT @! IF JAWAB2= T Contoh Program Ubah Data JUDUL2 = UBAH DATA MAHASIWA STORE SPACE(15) TO VNM_SISWA,VALAMAT STORE SPACE(8) TO VNO_INDUK STORE SPACE(10) TO VKOTA STORE CTOD( / / ) TO VTGL_LAHIR @ 2,(80-LEN(JUDUL))/2 SAY JUDUL2 @4,0 SAY BLOK Pertemuan 9 Jeje, SKom, MMSI Universitas Gunadarma 3
@5,20 SAY NOMOR INDUK SISWA : GET VNO_INDUK ; PICT XXXXXXXX IF VN0_INDUK = SPACE(8) FIND & VNO_INDUK IF.NOT. FOUND() @22,20 SAY DATA TIDAK ADA, TEKAN ENTER SET CONS ON STORE NM_SISWA TO VNM_SISWA STORE TGL_LAHIR TO VTGL_LAHIR STORE ALAMAT TO VALAMAT STORE KOTA TO VKOTA @ 7,20 SAY NAMA MAHASISWA : GET VNM_SISWA PICT @! @ 9,20 SAY TANGGAL LAHIR : GET VTGL_LAHIR ; PICT XX/XX/XX @ 11,20 SAY ALAMAT MAHASISWA : GET VALAMAT PICT @! @ 13,20 SAY KOTA : GET VKOTA PICT @! JAWAB = SPACE(2) @ 17,20 SAY DATA SUDAH BENAR[Y/T] : GET JAWAB PICT @! IF JAWAB = Y REPLACE NO_INDUK WITH VNO_INDUK REPLACE NM_SISWA WITH VNM_SISWA REPLACE TGL_LAHIR WITH VTGL_LAHIR REPLACE ALAMAT WITH VALAMAT RELPLACE KOTA WITH KOTA GET JAWAB2=SPACE(2) @ 17,20 SAY INGIN UBAH DATA LAGI?[Y/T] : GET JAWAB2 PICT @! IF JAWAB2= T Contoh Program Hapus Data JUDUL3 = HAPUS DATA MAHASIWA Pertemuan 9 Jeje, SKom, MMSI Universitas Gunadarma 4
STORE SPACE(15) TO VNM_SISWA,VALAMAT STORE SPACE(8) TO VNO_INDUK STORE SPACE(10) TO VKOTA STORE CTOD( / / ) TO VTGL_LAHIR @ 2,(80-LEN(JUDUL))/2 SAY JUDUL2 @4,0 SAY BLOK @5,20 SAY NOMOR INDUK SISWA : GET VNO_INDUK ; PICT XXXXXXXX IF VN0_INDUK = SPACE(8) FIND & VNO_INDUK IF.NOT. FOUND() @22,20 SAY DATA TIDAK ADA, TEKAN ENTER SET CONS ON STORE NM_SISWA TO VNM_SISWA STORE TGL_LAHIR TO VTGL_LAHIR STORE ALAMAT TO VALAMAT STORE KOTA TO VKOTA @ 7,20 SAY NAMA MAHASISWA : GET VNM_SISWA PICT @! @ 9,20 SAY TANGGAL LAHIR : GET VTGL_LAHIR ; PICT XX/XX/XX @ 11,20 SAY ALAMAT MAHASISWA : GET VALAMAT PICT @! @ 13,20 SAY KOTA : GET VKOTA PICT @! GET JAWAB = SPACE(2) @ 17,20 SAY DATA AKAN DIHAPUS[Y/T] : GET JAWAB PICT @! IF JAWAB = Y DELETE GET JAWAB2=SPACE(2) @ 17,20 SAY INGIN HAPUS DATA LAGI?[Y/T] : GET JAWAB2 PICT @! IF JAWAB2= T PACK Pertemuan 9 Jeje, SKom, MMSI Universitas Gunadarma 5
Contoh Program Cetak Data GO TOP JUDUL4= CETAK DATA MAHASIWA GARIS = REPLICATE( -,80) @ 2,(80-LEN(JUDUL))/2 SAY JUDUL4 @ 4,0 SAY BLOK @ 6,0 SAY GARIS @ 7,0 SAY NOMOR NAMA TANGGAL ALAMAT KOTA @ 8,0 SAY INDUK SISWA LAHIR @ 9,0 SAY GARIS BARIS=10 @ BARIS,3 SAY NO INDUK PICT XXXXXXXX @ BARIS,13 SAY TRIM(NM_SISWA) PICT @! @ BARIS,28 SAY TGL_LAHIR PICT XX/XX/XX @ BARIS,40 SAY TRIM(ALAMAT) PICT @! @ BARIS,61SAY TRIM(KOTA) PICT @! SKIP IF EOF() BARIS = BARIS + 1 @ BARIS+1,0 SAY GARIS @ BARIS+2,30 SAY DATA HABIS OUTPUT : 1. ISI DATA MAHASISWA 2. UBAH DATA MAHASISWA 3. HAPUS DATA MAHASISWA 4. CETAK DATA MAHASISWA PILIHAN ANDA[1-5] : Referensi: http://yiswinilam.files.wordpress.com/2012/04/dbase_program_menu.pdf http://elista.akprind.ac.id/upload/files/6833_diktat-sbd.doc Pertemuan 9 Jeje, SKom, MMSI Universitas Gunadarma 6