Tuesday, December 20, 2011

q-basic


DECLARE SUB pass ()
DECLARE SUB ANIM ()
DECLARE SUB LAPBAYAR ()
DECLARE SUB pembayaran ()
DECLARE SUB settinghrg ()
DECLARE SUB EDITPEL ()
DECLARE SUB DELPEL ()
DECLARE SUB CARIPEL ()
DECLARE SUB TAMPIL ()
DECLARE SUB GRSBAWAH ()
DECLARE SUB ADDPEL ()
DECLARE SUB MENUS ()
DECLARE SUB MENUT ()
DECLARE SUB KOTAK (A1 AS INTEGER, A2 AS INTEGER, B1 AS INTEGER, b2 AS INTEGER, W AS INTEGER)
DECLARE SUB GH (A1 AS INTEGER, A2 AS INTEGER, B1 AS INTEGER, W AS INTEGER)
DECLARE SUB DESAIN ()

DECLARE SUB SIMPANDATA ()
DECLARE SUB TENGAH (baris AS INTEGER, teks AS STRING)
DECLARE SUB MENU ()

TYPE LANGGAN
NO AS STRING * 5
NAMA AS STRING * 15
ALAMAT AS STRING * 20
TLP AS STRING * 12
END TYPE

TYPE seting
HARGA AS STRING * 10

END TYPE

TYPE PMBYR
NO AS STRING * 5
NAMA AS STRING * 15
BULAN AS STRING * 2
TAHUN AS STRING * 4
JMLPAKAI AS STRING * 5
TOTAL AS STRING * 10
END TYPE

DIM SHARED SETT AS seting
DIM SHARED PEL AS LANGGAN
DIM SHARED PEM AS PMBYR
DIM SHARED USER AS STRING


OPEN "C:\PEL.TXT" FOR RANDOM AS #1 LEN = LEN(PEL)
OPEN "C:\SETING.TXT" FOR RANDOM AS #3 LEN = LEN(SETT)
OPEN "C:\BAYAR.TXT" FOR RANDOM AS #4 LEN = LEN(PEM)

CALL pass

SUB ADDPEL
DIM PIL AS INTEGER
DIM KODE AS STRING
DIM JMLREC AS INTEGER
DIM JWB(2) AS STRING
DIM LOP AS INTEGER
DIM cmd AS STRING
JWB(1) = ""
JWB(2) = ""
PIL = 1

LOCATE 5, 21: COLOR 14, 2: PRINT " INPUT DATA PELANGGAN BARU "
LOCATE 7, 21: COLOR 2, 0: PRINT "NO PENDAFTAR : "
LOCATE 8, 21: COLOR 2, 0: PRINT "NAMA PENDAFTAR : "
LOCATE 9, 21: COLOR 2, 0: PRINT "ALAMAT PENDAFTAR : "
LOCATE 10, 21: COLOR 2, 0: PRINT "TELPON PENDAFTAR : "

JMLREC = LOF(1) / LEN(PEL)
IF JMLREC = 0 THEN
KODE = "P0001"
ELSE
GET #1, JMLREC, PEL
KODE = LTRIM$(STR$(VAL(RIGHT$(PEL.NO, 4)) + 1))
SELECT CASE LEN(KODE)
CASE 1
KODE = "P000" + KODE
CASE 2
KODE = "P00" + KODE
CASE 3
KODE = "P0" + KODE
CASE 4
KODE = "P" + KODE

END SELECT

END IF


LOCATE 7, 40: COLOR 2, 14: PRINT KODE
PEL.NO = KODE
A:
LOCATE 8, 40: COLOR 2, 14: INPUT "", PEL.NAMA
IF PEL.NAMA = " " THEN
LOCATE 8, 40: COLOR 4, 7: PRINT "ISIKAN NAMA DAHULU..TEKAN ENTER"
INPUT "", X
LOCATE 8, 40: COLOR 2, 0: PRINT " "
GOTO A
END IF

B:
LOCATE 9, 40: COLOR 2, 14: INPUT "", PEL.ALAMAT
IF PEL.ALAMAT = " " THEN
LOCATE 9, 40: COLOR 4, 7: PRINT "ISIKAN ALAMAT DAHULU..TEKAN ENTER"
INPUT "", X
LOCATE 9, 40: COLOR 2, 0: PRINT " "
GOTO B
END IF

C:
LOCATE 10, 40: COLOR 2, 14: INPUT "", PEL.TLP
IF PEL.TLP = " " THEN
LOCATE 10, 40: COLOR 4, 7: PRINT "ISIKAN TELPON DAHULU..TEKAN ENTER"
INPUT "", X
LOCATE 10, 40: COLOR 2, 0: PRINT " "
GOTO C
END IF

LOCATE 12, 21: COLOR 2, 0: PRINT "APAKAH AKAN DISIMPAN ? "
LOCATE 12, 45: COLOR 4, 7: PRINT JWB(1)
LOCATE 12, 52: COLOR 14, 2: PRINT JWB(2)

LOP = 0
DO WHILE LOP <> 1
cmd = INKEY$
SELECT CASE cmd
CASE CHR$(0) + CHR$(77)
LOCATE 12, 45: COLOR 14, 2: PRINT JWB(1)
LOCATE 12, 52: COLOR 4, 7: PRINT JWB(2)
PIL = 2

CASE CHR$(0) + CHR$(75)
LOCATE 12, 45: COLOR 4, 7: PRINT JWB(1)
LOCATE 12, 52: COLOR 14, 2: PRINT JWB(2)
PIL = 1

CASE CHR$(13)
SELECT CASE PIL
CASE 1
JMLREC = LOF(1) / LEN(PEL)
PUT #1, JMLREC + 1, PEL
LOCATE 22, 21: COLOR 2, 7: PRINT "SIMPAN DATA BARU SUKSES"
INPUT "", XX

LOP = 1
CALL MENUS

CASE 2
LOP = 1
CALL MENUS

END SELECT



END SELECT

LOOP

END SUB

SUB ANIM
DIM A AS STRING
DIM BRS AS INTEGER
DIM KOL AS INTEGER
DIM X AS INTEGER
DIM cmd AS INTEGER

FOR I = 1 TO 100
RANDOMIZE TIMER
BRS = INT(RND * 17)
KOL = INT(RND * 78)
IF BRS > 6 AND KOL > 20 THEN
LOCATE BRS, KOL: PRINT "*"
FOR J = 1 TO 100000
NEXT
END IF

NEXT

END SUB

SUB CARIPEL
DIM CARI AS STRING
DIM JLMREC AS INTEGER
DIM KETEMU AS INTEGER

LOCATE 5, 21: COLOR 14, 2: PRINT " CARI DATA PELANGGAN "
LOCATE 7, 21: COLOR 2, 0: PRINT "NO PENDAFTAR : "
CARI:
LOCATE 7, 40: COLOR 2, 14: INPUT "", CARI
IF CARI = "" THEN
LOCATE 7, 40: COLOR 2, 14: PRINT "INPUTKAN NO PENDAFTARAN DAHULU."
INPUT "", XX
LOCATE 7, 40: COLOR 2, 0: PRINT " "
GOTO CARI
ELSE
KETEMU = 0
JMLREC = LOF(1) / LEN(PEL)
FOR I = 1 TO JMLREC
GET #1, I, PEL
IF RTRIM$(LTRIM$(UCASE$(CARI))) = RTRIM$(LTRIM$(UCASE$(PEL.NO))) THEN
KETEMU = I
EXIT FOR
END IF
NEXT

IF KETEMU > 0 THEN
GET #1, KETEMU, PEL
LOCATE 7, 21: COLOR 2, 0: PRINT "NO PENDAFTAR : "
LOCATE 8, 21: COLOR 2, 0: PRINT "NAMA PENDAFTAR : "
LOCATE 9, 21: COLOR 2, 0: PRINT "ALAMAT PENDAFTAR : "
LOCATE 10, 21: COLOR 2, 0: PRINT "TELPON PENDAFTAR : "
LOCATE 7, 40: COLOR 2, 14: PRINT PEL.NO
LOCATE 8, 40: COLOR 2, 14: PRINT PEL.NAMA
LOCATE 9, 40: COLOR 2, 14: PRINT PEL.ALAMAT
LOCATE 10, 40: COLOR 2, 14: PRINT PEL.TLP
INPUT "", XX
CALL MENUS

ELSE
LOCATE 10, 21: COLOR 4, 7: PRINT "DATA : "; UCASE$(CARI); " TIDAK DITEMUKAN"
INPUT "", XX
CALL MENUS
END IF


END IF

END SUB

SUB cetak (n AS INTEGER)

FOR I = 1 TO n
PRINT "wearnes"
NEXT

END SUB

SUB DELPEL
DIM CARI AS STRING
DIM JLMREC AS INTEGER
DIM KETEMU AS INTEGER
DIM PIL AS INTEGER
DIM JWB(2) AS STRING
DIM LOP AS INTEGER
DIM cmd AS STRING
JWB(1) = ""
JWB(2) = ""
PIL = 1



LOCATE 5, 21: COLOR 14, 2: PRINT " CARI DATA PELANGGAN "
LOCATE 7, 21: COLOR 2, 0: PRINT "NO PENDAFTAR : "
CARIDEL:
LOCATE 7, 40: COLOR 2, 14: INPUT "", CARI
IF CARI = "" THEN
LOCATE 7, 40: COLOR 2, 14: PRINT "INPUTKAN NO PENDAFTARAN DAHULU"
INPUT "", XX
LOCATE 7, 40: COLOR 2, 0: PRINT " "
GOTO CARIDEL
ELSE
KETEMU = 0
JMLREC = LOF(1) / LEN(PEL)
FOR I = 1 TO JMLREC
GET #1, I, PEL
IF RTRIM$(LTRIM$(UCASE$(CARI))) = RTRIM$(LTRIM$(UCASE$(PEL.NO))) THEN
KETEMU = I
EXIT FOR
END IF
NEXT

IF KETEMU > 0 THEN
GET #1, KETEMU, PEL
LOCATE 7, 21: COLOR 2, 0: PRINT "NO PENDAFTAR : "
LOCATE 8, 21: COLOR 2, 0: PRINT "NAMA PENDAFTAR : "
LOCATE 9, 21: COLOR 2, 0: PRINT "ALAMAT PENDAFTAR : "
LOCATE 10, 21: COLOR 2, 0: PRINT "TELPON PENDAFTAR : "
LOCATE 7, 40: COLOR 2, 14: PRINT PEL.NO
LOCATE 8, 40: COLOR 2, 14: PRINT PEL.NAMA
LOCATE 9, 40: COLOR 2, 14: PRINT PEL.ALAMAT
LOCATE 10, 40: COLOR 2, 14: PRINT PEL.TLP
LOCATE 11, 21: COLOR 2, 0: PRINT "-------------------------------------------"



LOCATE 12, 21: COLOR 2, 0: PRINT "APAKAH AKAN DIHAPUS ? "
LOCATE 12, 45: COLOR 4, 7: PRINT JWB(1)
LOCATE 12, 52: COLOR 14, 2: PRINT JWB(2)

LOP = 0
DO WHILE LOP <> 1
cmd = INKEY$
SELECT CASE cmd
CASE CHR$(0) + CHR$(77)
LOCATE 12, 45: COLOR 14, 2: PRINT JWB(1)
LOCATE 12, 52: COLOR 4, 7: PRINT JWB(2)
PIL = 2

CASE CHR$(0) + CHR$(75)
LOCATE 12, 45: COLOR 4, 7: PRINT JWB(1)
LOCATE 12, 52: COLOR 14, 2: PRINT JWB(2)
PIL = 1

CASE CHR$(13)
SELECT CASE PIL
CASE 1
DIM PEL2 AS LANGGAN
DIM JMLREC2 AS INTEGER
OPEN "C:\TMP.TXT" FOR RANDOM AS #2 LEN = LEN(PEL2)
FOR I = 1 TO JMLREC
GET #1, I, PEL
IF UCASE$(PEL.NO) <> UCASE$(CARI) THEN
JMLREC2 = LOF(2) / LEN(PEL2)
PUT #2, JMLREC2 + 1, PEL
END IF
NEXT

CLOSE #1, #2
KILL "C:\PEL.TXT"
NAME "C:\TMP.TXT" AS "C:\PEL.TXT"
OPEN "C:\PEL.TXT" FOR RANDOM AS #1 LEN = LEN(PEL)

LOCATE 15, 21: COLOR 4, 7: PRINT "HAPUS DATA SUKSES."
INPUT "", XX
CALL MENUS


CASE 2
LOP = 1
CALL MENUS

END SELECT

END SELECT

LOOP
'----------------
ELSE
LOCATE 10, 21: COLOR 4, 7: PRINT "DATA : "; UCASE$(CARI); " TIDAK DITEMUKAN"
INPUT "", XX
CALL MENUS
END IF


END IF


END SUB

SUB DESAIN
COLOR 2, 0
CLS
CALL KOTAK(1, 2, 3, 78, 2)
CALL KOTAK(4, 2, 23, 78, 2)
CALL GH(4, 20, 23, 2)

END SUB

SUB EDITPEL
DIM CARI AS STRING
DIM JLMREC AS INTEGER
DIM KETEMU AS INTEGER
DIM PIL AS INTEGER
DIM JWB(2) AS STRING
DIM LOP AS INTEGER
DIM cmd AS STRING
JWB(1) = ""
JWB(2) = ""
PIL = 1



LOCATE 5, 21: COLOR 14, 2: PRINT " CARI DATA PELANGGAN "
LOCATE 7, 21: COLOR 2, 0: PRINT "NO PENDAFTAR : "
CARIEDIT:
LOCATE 7, 40: COLOR 2, 14: INPUT "", CARI
IF CARI = "" THEN
LOCATE 7, 40: COLOR 2, 14: PRINT "INPUTKAN NO PENDAFTARAN DAHULU."
INPUT "", XX
LOCATE 7, 40: COLOR 2, 0: PRINT " "
GOTO CARIEDIT
ELSE
KETEMU = 0
JMLREC = LOF(1) / LEN(PEL)
FOR I = 1 TO JMLREC
GET #1, I, PEL
IF RTRIM$(LTRIM$(UCASE$(CARI))) = RTRIM$(LTRIM$(UCASE$(PEL.NO))) THEN
KETEMU = I
EXIT FOR
END IF
NEXT

IF KETEMU > 0 THEN
GET #1, KETEMU, PEL
LOCATE 7, 21: COLOR 2, 0: PRINT "NO PENDAFTAR : "
LOCATE 8, 21: COLOR 2, 0: PRINT "NAMA PENDAFTAR : "
LOCATE 9, 21: COLOR 2, 0: PRINT "ALAMAT PENDAFTAR : "
LOCATE 10, 21: COLOR 2, 0: PRINT "TELPON PENDAFTAR : "
LOCATE 7, 40: COLOR 2, 14: PRINT PEL.NO
LOCATE 8, 40: COLOR 2, 14: PRINT PEL.NAMA
LOCATE 9, 40: COLOR 2, 14: PRINT PEL.ALAMAT
LOCATE 10, 40: COLOR 2, 14: PRINT PEL.TLP
LOCATE 11, 21: COLOR 2, 0: PRINT "-------------------------------------------"
'----------------

LOCATE 12, 21: COLOR 2, 0: PRINT "NAMA PENDAFTAR : "
LOCATE 13, 21: COLOR 2, 0: PRINT "ALAMAT PENDAFTAR : "
LOCATE 14, 21: COLOR 2, 0: PRINT "TELPON PENDAFTAR : "
PEL.NO = UCASE$(CARI)
D:
LOCATE 12, 40: COLOR 2, 14: INPUT "", PEL.NAMA
IF PEL.NAMA = " " THEN
LOCATE 12, 40: COLOR 4, 7: PRINT "ISIKAN NAMA DAHULU..TEKAN ENTER"
INPUT "", X
LOCATE 12, 40: COLOR 2, 0: PRINT " "
GOTO D
END IF

E:
LOCATE 13, 40: COLOR 2, 14: INPUT "", PEL.ALAMAT
IF PEL.ALAMAT = " " THEN
LOCATE 13, 40: COLOR 4, 7: PRINT "ISIKAN ALAMAT DAHULU..TEKAN ENTER"
INPUT "", X
LOCATE 13, 40: COLOR 2, 0: PRINT " "
GOTO E
END IF

F:
LOCATE 14, 40: COLOR 2, 14: INPUT "", PEL.TLP
IF PEL.TLP = " " THEN
LOCATE 14, 40: COLOR 4, 7: PRINT "ISIKAN TELPON DAHULU..TEKAN ENTER"
INPUT "", X
LOCATE 14, 40: COLOR 2, 0: PRINT " "
GOTO F
END IF

LOCATE 16, 21: COLOR 2, 0: PRINT "APAKAH AKAN DISIMPAN ? "
LOCATE 16, 45: COLOR 4, 7: PRINT JWB(1)
LOCATE 16, 52: COLOR 14, 2: PRINT JWB(2)

LOP = 0
DO WHILE LOP <> 1
cmd = INKEY$
SELECT CASE cmd
CASE CHR$(0) + CHR$(77)
LOCATE 16, 45: COLOR 14, 2: PRINT JWB(1)
LOCATE 16, 52: COLOR 4, 7: PRINT JWB(2)
PIL = 2

CASE CHR$(0) + CHR$(75)
LOCATE 16, 45: COLOR 4, 7: PRINT JWB(1)
LOCATE 16, 52: COLOR 14, 2: PRINT JWB(2)
PIL = 1

CASE CHR$(13)
SELECT CASE PIL
CASE 1
JMLREC = LOF(1) / LEN(PEL)
PUT #1, KETEMU, PEL
LOCATE 22, 21: COLOR 2, 7: PRINT "UPDATE DATA BARU SUKSES"
INPUT "", XX

LOP = 1
CALL MENUS

CASE 2
LOP = 1
CALL MENUS

END SELECT



END SELECT

LOOP
'----------------



ELSE
LOCATE 10, 21: COLOR 4, 7: PRINT "DATA : "; UCASE$(CARI); " TIDAK DITEMUKAN"
INPUT "", XX
CALL MENUS
END IF


END IF



END SUB

SUB GH (A1 AS INTEGER, A2 AS INTEGER, B1 AS INTEGER, W AS INTEGER)
COLOR 7
LOCATE A1, A2: PRINT "Ë"
LOCATE B1, A2: PRINT "Ê"
FOR I = A1 + 1 TO B1 - 1
COLOR W
LOCATE I, A2: PRINT "³"
NEXT
END SUB

SUB GRSBAWAH
CALL GH(5, 3, 23, 2)
CALL GH(5, 14, 23, 2)
CALL GH(5, 33, 23, 2)
CALL GH(5, 63, 23, 2)

CALL GH(5, 77, 23, 2)

END SUB

SUB KOTAK (A1 AS INTEGER, A2 AS INTEGER, B1 AS INTEGER, b2 AS INTEGER, W AS INTEGER)
COLOR 7
LOCATE A1, A2: PRINT "É"
LOCATE B1, A2: PRINT "È"
LOCATE A1, b2: PRINT "»"
LOCATE B1, b2: PRINT "¼"

FOR I = A2 + 1 TO b2 - 1
COLOR W
LOCATE A1, I: PRINT "Ä"
NEXT
FOR I = A2 + 1 TO b2 - 1
COLOR W
LOCATE B1, I: PRINT "Ä"
NEXT

FOR I = A1 + 1 TO B1 - 1
COLOR W
LOCATE I, A2: PRINT "³"
NEXT
FOR I = A1 + 1 TO B1 - 1
COLOR W
LOCATE I, b2: PRINT "³"
NEXT



END SUB

SUB LAPBAYAR
DIM JMLREC AS INTEGER
DIM BLN AS STRING


COLOR 2, 0
CLS
CALL KOTAK(1, 2, 3, 78, 2)
CALL KOTAK(4, 2, 23, 78, 2)

COLOR 7
CALL TENGAH(2, "MANAJEMEN DATA PEMBAYARAN PDAM")


JMLREC = LOF(4) / LEN(PEM)
LOCATE 5, 3: COLOR , 7: PRINT " "
LOCATE 5, 4: COLOR 2, 7: PRINT "NO DAFTAR"
LOCATE 5, 16: COLOR 2, 7: PRINT "NAMA PELANGGAN"
LOCATE 5, 35: COLOR 2, 7: PRINT "BULAN"
LOCATE 5, 48: COLOR 2, 7: PRINT "TAHUN"
LOCATE 5, 55: COLOR 2, 7: PRINT "JUMLAH"
LOCATE 5, 63: COLOR 2, 7: PRINT "TOTAL"

COLOR , 0
IF JMLREC > 0 THEN
'-GARIS BAWAH
CALL GH(5, 3, 23, 2)
CALL GH(5, 14, 23, 2)
CALL GH(5, 34, 23, 2)
CALL GH(5, 47, 23, 2)
CALL GH(5, 54, 23, 2)
CALL GH(5, 62, 23, 2)



IF JMLREC > 17 THEN
LOCATE 10, 25: COLOR 4, 7: PRINT "HANYA MAMPU 17 RECORD PERTAMA SAJA"
INPUT "", XX
CALL MENUT

ELSE
FOR I = 1 TO JMLREC
GET #4, I, PEM
LOCATE 5 + I, 4: COLOR 2, 0: PRINT PEM.NO
LOCATE 5 + I, 16: COLOR 2, 0: PRINT UCASE$(PEM.NAMA)
SELECT CASE LTRIM$(RTRIM$(PEM.BULAN))
CASE "1"
BLN = "JANUARI"
CASE "2"
BLN = "FEBRUARI"
CASE "3"
BLN = "MARET"
CASE "4"
BLN = "APRIL"
CASE "5"
BLN = "MEI"
CASE "6"
BLN = "JUNI"
CASE "7"
BLN = "JULI"
CASE "8"
BLN = "AGUSTUS"
CASE "9"
BLN = "SEPTEMBER"
CASE "10"
BLN = "OKTOBER"
CASE "11"
BLN = "NOVEMBER"
CASE "12"
BLN = "DESEMBER"
END SELECT

LOCATE 5 + I, 35: COLOR 2, 0: PRINT BLN
LOCATE 5 + I, 48: COLOR 2, 0: PRINT UCASE$(PEM.TAHUN)
LOCATE 5 + I, 55: COLOR 2, 0: PRINT UCASE$(PEM.JMLPAKAI); " M"
LOCATE 5 + I, 63: COLOR 2, 0: PRINT USING "Rp #,###,###"; VAL(PEM.TOTAL)

NEXT

INPUT "", XX
CALL MENUT

END IF
ELSE
LOCATE 10, 25: COLOR 4, 7: PRINT "TIDAK ADA DATA YANG DITAMPILKAN"
INPUT "", XX
CALL MENUT
END IF


END SUB

SUB MENU

CALL MENUT
END SUB

SUB MENUS
CALL DESAIN
COLOR 7
CALL TENGAH(2, "MANAJEMEN DATA PEMBAYARAN PDAM")
LOCATE 5, 3: COLOR 14, 10: PRINT " SUB MENU "
COLOR 2, 0

'-------------------


DIM MSUB(6) AS STRING
DIM X AS INTEGER
DIM PIL AS INTEGER
DIM cmd AS STRING


MSUB(1) = "1. INPUT DATA "
MSUB(2) = "2. CARI DATA "
MSUB(3) = "3. UPDATE DATA "
MSUB(4) = "4. DELETE DATA "
MSUB(5) = "5. LAPORAN DATA "
MSUB(6) = "6. MENU UTAMA "

FOR I = 1 TO 6
LOCATE 6 + I, 3: COLOR 14, 2: PRINT MSUB(I)
NEXT
LOCATE 7, 3: COLOR 4, 7: PRINT MSUB(1)

Y = 0
PIL = 1
DO WHILE Y <> 1

cmd = INKEY$
SELECT CASE cmd
CASE CHR$(0) + CHR$(80)
LOCATE 6 + PIL, 3: COLOR 14, 2: PRINT MSUB(PIL)
IF PIL < 6 THEN
PIL = PIL + 1
ELSE
PIL = 1
END IF
LOCATE 6 + PIL, 3: COLOR 4, 7: PRINT MSUB(PIL)
CASE CHR$(0) + CHR$(72)
LOCATE 6 + PIL, 3: COLOR 14, 2: PRINT MSUB(PIL)
IF PIL > 1 THEN
PIL = PIL - 1
ELSE
PIL = 6
END IF

LOCATE 6 + PIL, 3: COLOR 4, 7: PRINT MSUB(PIL)
CASE CHR$(13)
SELECT CASE PIL
CASE 1
Y = 1

CALL ADDPEL
CASE 2
Y = 1
CALL CARIPEL
CASE 3
Y = 1
CALL EDITPEL
CASE 4
Y = 1
CALL DELPEL

CASE 5
Y = 1
CALL TAMPIL
CASE 6
Y = 1

CALL MENUT
END SELECT
END SELECT




LOOP




'-------------------

END SUB

SUB MENUT
CLS
CALL DESAIN
COLOR 7
CALL TENGAH(2, "MANAJEMEN DATA PEMBAYARAN PDAM")


LOCATE 5, 3: COLOR 14, 10: PRINT " MENU UTAMA "
COLOR 2, 0
'-------------------
DIM MUTAMA(5) AS STRING
DIM X AS INTEGER
DIM PIL AS INTEGER
DIM cmd AS STRING


MUTAMA(1) = "1. DATA PELANGGAN"
MUTAMA(2) = "2. SETTING HARGA "
MUTAMA(3) = "3. PEMBAYARAN "
MUTAMA(4) = "4. LAPORAN "
MUTAMA(5) = "5. KELUAR "

FOR I = 1 TO 5
LOCATE 6 + I, 3: COLOR 14, 2: PRINT MUTAMA(I)
NEXT
LOCATE 7, 3: COLOR 4, 7: PRINT MUTAMA(1)



X = 0
PIL = 1
DO WHILE X <> 1
'CALL ANIM
cmd = INKEY$
SELECT CASE cmd
CASE CHR$(0) + CHR$(80)
LOCATE 6 + PIL, 3: COLOR 14, 2: PRINT MUTAMA(PIL)
IF PIL < 5 THEN
PIL = PIL + 1
ELSE
PIL = 1
END IF
LOCATE 6 + PIL, 3: COLOR 4, 7: PRINT MUTAMA(PIL)
CASE CHR$(0) + CHR$(72)
LOCATE 6 + PIL, 3: COLOR 14, 2: PRINT MUTAMA(PIL)
IF PIL > 1 THEN
PIL = PIL - 1
ELSE
PIL = 5
END IF

LOCATE 6 + PIL, 3: COLOR 4, 7: PRINT MUTAMA(PIL)
CASE CHR$(13)
SELECT CASE PIL
CASE 1
X = 1
CALL MENUS
CASE 2
X = 1
CALL settinghrg
CASE 3
X = 1
CALL pembayaran
CASE 4
X = 1
CALL LAPBAYAR
CASE 5
X = 1
CLOSE #1, #2, #3, #4
END SELECT
END SELECT
LOOP
'-------------------
END SUB

SUB pass
CLS
DIM KATA AS STRING
DIM cmd AS STRING
AWAL:
CALL KOTAK(1, 2, 4, 78, 2)
CALL KOTAK(5, 2, 23, 78, 2)
CALL TENGAH(2, "TOKO MAJU JAYA ABADI")
CALL TENGAH(3, "JL Majapahit no 407 Semarang")

COLOR 7, 0: LOCATE 7, 30: PRINT " LOGIN AREA "
LOCATE 8, 25: PRINT "-----------------------------------"
LOCATE 8, 25: PRINT "ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ"
CALL KOTAK(6, 25, 13, 60, 2)

IF LEN(USER) <> 0 THEN
FOR I = 1 TO LEN(USER)
LOCATE 9, 39 + I: PRINT " "
NEXT
END IF
IF LEN(KATA) <> 0 THEN
FOR I = 1 TO LEN(KATA)
LOCATE 10, 39 + I: PRINT " "
NEXT
END IF


USER = ""
KATA = ""
LOCATE 9, 30: PRINT "USER : "
LOCATE 10, 30: PRINT "PASSWORD: "
LOCATE 9, 40: INPUT "", USER


X = 0
DO WHILE X <> 1
cmd = INKEY$
' IF LEN(kata) <> 0 THEN
SELECT CASE cmd
CASE CHR$(13)
'PRINT kata
X = 1
CASE CHR$(8)
FOR I = 1 TO LEN(KATA)
LOCATE 10, 39 + I: PRINT " "
NEXT
IF LEN(KATA) <> 0 THEN
KATA = LEFT$(KATA, LEN(KATA) - 1)
FOR I = 1 TO LEN(KATA)
LOCATE 10, 39 + I: PRINT "*"
NEXT
'ELSE
' LOCATE 10, 30: PRINT " "
END IF


CASE ELSE
KATA = KATA + cmd
FOR I = 1 TO LEN(KATA)
LOCATE 10, 39 + I: PRINT "*"
NEXT

END SELECT
' END IF
LOOP

IF USER = "AGUNG VIBI" AND KATA = "GEREH KUCING" THEN
LOCATE 12, 30: COLOR 4, 0: PRINT "SELAMAT BEKERJA "; USER
INPUT "", X
CALL MENU
ELSE
'COLOR 4, 7
LOCATE 12, 30: COLOR 4, 0: PRINT "USER ATAU PASSWORD SALAH"

INPUT "", XX
LOCATE 12, 30: PRINT " "

GOTO AWAL
END IF



END SUB

SUB pembayaran

DIM CARI AS STRING
DIM JLMREC AS INTEGER
DIM JMLRECPEM AS INTEGER
DIM KETEMU AS INTEGER
DIM JMLPAKAI AS INTEGER
DIM HARGA AS DOUBLE
DIM TOTAL AS DOUBLE
DIM BULAN AS STRING
DIM TAHUN AS STRING
DIM JWB(2) AS STRING
DIM LOP AS INTEGER
DIM cmd AS STRING
DIM PIL AS INTEGER

JWB(1) = ""
JWB(2) = ""
PIL = 1




GET #3, 1, SETT
HARGA = VAL(SETT.HARGA)

KETEMU = 0

LOCATE 5, 21: COLOR 14, 2: PRINT " PEMBAYARAN TAGIHAN PDAM "
LOCATE 7, 21: COLOR 2, 0: PRINT "NO PENDAFTAR : "
CARIP:
LOCATE 7, 40: COLOR 2, 14: INPUT "", CARI
IF CARI = "" THEN
LOCATE 7, 40: COLOR 2, 14: PRINT "INPUTKAN NO PENDAFTARAN DAHULU."
INPUT "", XX
LOCATE 7, 40: COLOR 2, 0: PRINT " "
GOTO CARIP
ELSE
KETEMU = 0
JMLREC = LOF(1) / LEN(PEL)
FOR I = 1 TO JMLREC
GET #1, I, PEL
IF RTRIM$(LTRIM$(UCASE$(CARI))) = RTRIM$(LTRIM$(UCASE$(PEL.NO))) THEN
KETEMU = I
EXIT FOR
END IF
NEXT

IF KETEMU > 0 THEN
GET #1, KETEMU, PEL
LOCATE 7, 21: COLOR 2, 0: PRINT "NO PENDAFTAR : "
LOCATE 8, 21: COLOR 2, 0: PRINT "NAMA PENDAFTAR : "
LOCATE 9, 21: COLOR 2, 0: PRINT "ALAMAT PENDAFTAR : "
LOCATE 10, 21: COLOR 2, 0: PRINT "TELPON PENDAFTAR : "
LOCATE 7, 40: COLOR 2, 14: PRINT PEL.NO
LOCATE 8, 40: COLOR 2, 14: PRINT PEL.NAMA
LOCATE 9, 40: COLOR 2, 14: PRINT PEL.ALAMAT
LOCATE 10, 40: COLOR 2, 14: PRINT PEL.TLP
LOCATE 11, 21: COLOR 2, 0: PRINT "---------------------------------------------------------"
LOCATE 12, 21: COLOR 2, 0: PRINT "BULAN TAGIHAN : "
LOCATE 13, 21: COLOR 2, 0: PRINT "TAHUN TAGIHAN : "
H:
LOCATE 12, 40: COLOR 2, 14: INPUT "", BULAN
IF BULAN = "" THEN
LOCATE 12, 40: COLOR 4, 7: PRINT "MASUKAN BULAN DAHULU"
INPUT "", XX
LOCATE 12, 40: COLOR , 0: PRINT " "
GOTO H
END IF
I:
LOCATE 13, 40: COLOR 2, 14: INPUT "", TAHUN
IF TAHUN = "" THEN
LOCATE 13, 40: COLOR 4, 7: PRINT "MASUKAN TAHUN DAHULU"
INPUT "", XX
LOCATE 13, 40: COLOR , 0: PRINT " "
GOTO I
END IF

JMLRECPEM = LOF(4) / LEN(PEM)
KETEMU = 0
FOR I = 1 TO JMLRECPEM
GET #4, I, PEM
'PRINT PEM.NO
'PRINT PEL.NO
'PRINT LTRIM$(RTRIM$(PEM.BULAN))
'PRINT LTRIM$(RTRIM$(BULAN))

IF PEM.NO = PEL.NO AND LTRIM$(RTRIM$(PEM.BULAN)) = LTRIM$(RTRIM$(BULAN)) AND LTRIM$(RTRIM$(PEM.TAHUN)) = LTRIM$(RTRIM$(TAHUN)) THEN
KETEMU = I
EXIT FOR
ELSE
KETEMU = 0
END IF
NEXT


IF KETEMU <> 0 THEN
LOCATE 22, 21: COLOR 4, 7: PRINT "BULAN "; BULAN; " TAHUN "; TAHUN; " SUDAH TERBAYAR"
INPUT "", XX
LOCATE 22, 21: COLOR 4, 7: PRINT " "
CALL MENUT
ELSE
LOCATE 14, 21: COLOR 2, 0: PRINT "JUMLAH PAKAI (METER) : "
LOCATE 15, 21: COLOR 2, 0: PRINT "TOTAL TAGIHAN : "
J:
LOCATE 14, 45: COLOR 2, 14: INPUT "", JMLPAKAI
IF JMLPAKAI = 0 THEN
LOCATE 14, 45: COLOR 4, 7: PRINT "MASUKAN JUMLAH PAKAI DAHULU"
INPUT "", XX
LOCATE 14, 45: COLOR , 0: PRINT " "
GOTO J

END IF

TOTAL = JMLPAKAI * HARGA
LOCATE 15, 45: COLOR 2, 14: PRINT LTRIM$(STR$(TOTAL))

LOCATE 17, 21: COLOR 2, 0: PRINT "APAKAH AKAN DISIMPAN ? "
LOCATE 17, 45: COLOR 4, 7: PRINT JWB(1)
LOCATE 17, 52: COLOR 14, 2: PRINT JWB(2)


LOP = 0
DO WHILE LOP <> 1
cmd = INKEY$
SELECT CASE cmd
CASE CHR$(0) + CHR$(77)
LOCATE 17, 45: COLOR 14, 2: PRINT JWB(1)
LOCATE 17, 52: COLOR 4, 7: PRINT JWB(2)
PIL = 2

CASE CHR$(0) + CHR$(75)
LOCATE 17, 45: COLOR 4, 7: PRINT JWB(1)
LOCATE 17, 52: COLOR 14, 2: PRINT JWB(2)
PIL = 1

CASE CHR$(13)
SELECT CASE PIL
CASE 1
JMLRECPEM = LOF(4) / LEN(PEM)

PEM.NO = PEL.NO
PEM.NAMA = PEL.NAMA
PEM.BULAN = BULAN
PEM.TAHUN = TAHUN
PEM.JMLPAKAI = LTRIM$(STR$(JMLPAKAI))
PEM.TOTAL = LTRIM$(STR$(TOTAL))

PUT #4, JMLRECPEM + 1, PEM
LOCATE 22, 21: COLOR 2, 7: PRINT "SIMPAN DATA BARU SUKSES"
INPUT "", XX

LOP = 1
CALL MENUT

CASE 2
LOP = 1
CALL MENUT

END SELECT

END SELECT

LOOP




END IF




ELSE
LOCATE 10, 21: COLOR 4, 7: PRINT "DATA : "; UCASE$(CARI); " TIDAK DITEMUKAN"
INPUT "", XX
CALL MENUT
END IF


END IF


END SUB

SUB settinghrg
DIM CEK AS STRING
DIM PIL AS INTEGER
DIM JMLREC AS INTEGER
DIM JWB(2) AS STRING
DIM LOP AS INTEGER
DIM cmd AS STRING
JWB(1) = ""
JWB(2) = ""
PIL = 1




LOCATE 5, 21: COLOR 14, 2: PRINT " SETTING HARGA TAGIHAN/METER "
JMLREC = LOF(3) / LEN(SETT)
LOCATE 7, 21: COLOR 2, 0: PRINT "HARGA PER METER Rp : "
IF JMLREC = 0 THEN
LOCATE 7, 42: COLOR 2, 14: PRINT "BELUM TERSETTING"
ELSE
GET #3, 1, SETT
LOCATE 7, 42: COLOR 2, 14: PRINT SETT.HARGA
END IF
LOCATE 8, 21: COLOR 2, 0: PRINT "UPDATE HARGA Rp : "
G:
LOCATE 8, 42: COLOR 2, 14: INPUT "", SETT.HARGA
IF SETT.HARGA = " " THEN
LOCATE 8, 42: COLOR 4, 7: PRINT "INPUTKAN NOMINAL DAHULU"
INPUT "", XX
LOCATE 8, 42: COLOR 4, 0: PRINT " "
GOTO G
ELSE
FOR I = 1 TO LEN(RTRIM$(LTRIM$(SETT.HARGA)))

CEK = MID$(SETT.HARGA, I, 1)

IF CEK <> "0" AND CEK <> "1" AND CEK <> "2" AND CEK <> "3" AND CEK <> "4" AND CEK <> "5" AND CEK <> "6" AND CEK <> "7" AND CEK <> "8" AND CEK <> "9" THEN
LOCATE 8, 42: COLOR 4, 7: PRINT "INPUTAN HARUS BERUPA ANGKA"
INPUT "", XX
LOCATE 8, 42: COLOR 4, 0: PRINT " "
GOTO G
END IF
NEXT

END IF

LOCATE 12, 21: COLOR 2, 0: PRINT "APAKAH AKAN DISIMPAN ? "
LOCATE 12, 45: COLOR 4, 7: PRINT JWB(1)
LOCATE 12, 52: COLOR 14, 2: PRINT JWB(2)


LOP = 0
DO WHILE LOP <> 1
cmd = INKEY$
SELECT CASE cmd
CASE CHR$(0) + CHR$(77)
LOCATE 12, 45: COLOR 14, 2: PRINT JWB(1)
LOCATE 12, 52: COLOR 4, 7: PRINT JWB(2)
PIL = 2

CASE CHR$(0) + CHR$(75)
LOCATE 12, 45: COLOR 4, 7: PRINT JWB(1)
LOCATE 12, 52: COLOR 14, 2: PRINT JWB(2)
PIL = 1

CASE CHR$(13)
SELECT CASE PIL
CASE 1

PUT #3, 1, SETT
LOCATE 22, 21: COLOR 2, 7: PRINT "SIMPAN DATA BARU SUKSES"
INPUT "", XX

LOP = 1
CALL MENUT

CASE 2
LOP = 1
CALL MENUT

END SELECT



END SELECT

LOOP



END SUB

SUB TAMPIL
DIM JMLREC AS INTEGER


COLOR 2, 0
CLS
CALL KOTAK(1, 2, 3, 78, 2)
CALL KOTAK(4, 2, 23, 78, 2)
COLOR 7
CALL TENGAH(2, "MANAJEMEN DATA PEMBAYARAN PDAM")


JMLREC = LOF(1) / LEN(PEL)
LOCATE 5, 3: COLOR , 7: PRINT " "
LOCATE 5, 4: COLOR 2, 7: PRINT "NO DAFTAR"
LOCATE 5, 16: COLOR 2, 7: PRINT "NAMA PELANGGAN"
LOCATE 5, 35: COLOR 2, 7: PRINT "ALAMAT"
LOCATE 5, 65: COLOR 2, 7: PRINT "NO TELPON"

COLOR , 0
IF JMLREC > 0 THEN
CALL GRSBAWAH
IF JMLREC > 17 THEN
LOCATE 10, 25: COLOR 4, 7: PRINT "HANYA MAMPU 17 RECORD PERTAMA"
INPUT "", XX
CALL MENUS

ELSE
FOR I = 1 TO JMLREC
GET #1, I, PEL
LOCATE 5 + I, 4: COLOR 2, 0: PRINT PEL.NO
LOCATE 5 + I, 16: COLOR 2, 0: PRINT UCASE$(PEL.NAMA)
LOCATE 5 + I, 35: COLOR 2, 0: PRINT UCASE$(PEL.ALAMAT)
LOCATE 5 + I, 65: COLOR 2, 0: PRINT UCASE$(PEL.TLP)
NEXT

INPUT "", XX
CALL MENUS

END IF
ELSE
LOCATE 10, 25: COLOR 4, 7: PRINT "TIDAK ADA DATA YANG DITAMPILKAN"
INPUT "", XX
CALL MENUS
END IF


END SUB

SUB TENGAH (baris AS INTEGER, teks AS STRING)
LOCATE baris, (80 - LEN(teks)) \ 2: PRINT teks
END SUB


0 comments:

Post a Comment