Sebelum anda mempelajari kode berikut, anda harus sudah paham tentang input data dan tampil data pada Qbasic.
Menghapus data pada file dengan Qbasic memang sedikit berbeda. Dalam qbasic, tidak ada perintah delete atau sejenisnya untuk menghapus data. Untuk menghapus data kita harus sedikit berfikir yaitu dengan menggabungkan perintah pembacaan (GET) dan penyimpanan (PUT). Logikanya jika kita ingin menghapus salah satu data pada barang.txt (nama file bebas), maka kita harus membuat file baru (misalnya barang2.txt) untuk memindahkan file yang tidak ingin dihapus di barang.txt ke file barang2.txt. Kemudian kita menghapus file barang.txt dan mengganti nama barang2.txt menjadi barang.txt.
Bingung? Download saja programnya di sini.
Kode:
CLS
TYPE barang
kode AS STRING * 5
nama AS STRING * 15
jenis AS STRING * 10
harga AS LONG
stok AS INTEGER
END TYPE
DIM kodecr AS STRING * 5
DIM SHARED brg AS barang
DIM SHARED panrec, jumrec AS INTEGER
CLOSE #1, #2
panrec = LEN(brg)
OPEN "d:\barang.txt" FOR RANDOM AS #1 LEN = panrec
OPEN "d:\barang2.txt" FOR RANDOM AS #2 LEN = panrec
jumrec = LOF(1) / panrec
COLOR 14
LOCATE 2, 10: PRINT "HAPUS DATA BARANG"
LOCATE 4, 2: INPUT "Masukkan Kode : ", kodecr
FOR i = 1 TO jumrec
GET #1, i, brg
IF UCASE$(brg.kode) = UCASE$(kodecr) THEN
CLS
LOCATE 2, 2: PRINT "KODE : "; brg.kode
LOCATE 3, 2: PRINT "NAMA : "; brg.nama
LOCATE 4, 2: PRINT "JENIS : "; brg.jenis
LOCATE 5, 2: PRINT "HARGA : "; brg.harga
LOCATE 6, 2: PRINT "NAMA : "; brg.stok
LOCATE 8, 2: INPUT "Hapus Data?(Y/T)", jawab$
IF UCASE$(jawab$) = "Y" THEN
FOR i = 1 TO jumrec
GET #1, i, brg
IF UCASE$(brg.kode) <> UCASE$(kodecr) THEN
PUT #2, , brg
END IF
NEXT
CLOSE #1, #2
KILL "d:\barang.txt"
NAME "d:\barang2.txt" AS "d:\barang.txt"
CLS
LOCATE 2, 2: PRINT "Data terhapus"
ELSE
CLS
LOCATE 2, 2: PRINT "Data tidak jadi dihapus"
END IF
EXIT FOR
ELSEIF i = jumrec THEN
CLS
LOCATE 2, 2: PRINT "Data tidak ditemukan"
END IF
NEXT
Semoga bermanfaat
Kalau Edit data kira-kira gimana logikanya ya?
ReplyDeletethanks
Untuk edit kita lakukan pencarian terlebih dahulu untuk data yang ingin diedit, jika ketemu maka ditampilkan data yang dicari beserta konfirmasi apakah mau diedit, jika memilih iya maka isikan kode untuk input, perbedaannya pas menyimpan jangan pake PUT #1, jumrec + 1, brg, tapi pake PUT #1, i, brg supaya tidak menambah record baru melainkan mereplace record ke i(yang diedit). . .
ReplyDelete