BAGIAN I - Encep Supriatna | Don’t Wait Tomorrow What ... · A. BAHAN PRAKTEK I 1.1 Membuat...

63
1 AMIK Al Ma’soem BAGIAN I Tujuan : 1. Membuat Project File 2. Membuat menu program 3. Menguji Menu Program A. BAHAN PRAKTEK I 1.1 Membuat Project File SKA 1. Buka Program Microsoft Visual FoxPro 9.0 2. Klik Menu File pada Menu Bar 3. Pilih New pada Sub Menu File 4. Pilih Type File Project 5. Klik Tombol New File 6. Pada kotak dialog Save in Pindahkan folder ke Forder PRG di Folder Anda, Jika belum ada silahkan anda buatkan dulu: O:\SKA\KARB\NamaAnda\PRG 7. Isi baris Enter Project File dengan SKA (Nama File Project) 8. Klik tombol Save 1.2 Membuat Menu Program 1. Klik Page Other pada Project File SKA 2. Pilih Menu 3. Klik tombol New

Transcript of BAGIAN I - Encep Supriatna | Don’t Wait Tomorrow What ... · A. BAHAN PRAKTEK I 1.1 Membuat...

1

AMIK Al Ma’soem

BAGIAN I Tujuan :

1. Membuat Project File 2. Membuat menu program 3. Menguji Menu Program

A. BAHAN PRAKTEK I 1.1 Membuat Project File SKA

1. Buka Program Microsoft Visual FoxPro 9.0 2. Klik Menu File pada Menu Bar 3. Pilih New pada Sub Menu File

4. Pilih Type File Project 5. Klik Tombol New File

6. Pada kotak dialog Save in Pindahkan folder ke Forder PRG di Folder Anda, Jika belum ada silahkan anda buatkan dulu: O:\SKA\KARB\NamaAnda\PRG

7. Isi baris Enter Project File dengan SKA (Nama File Project) 8. Klik tombol Save

1.2 Membuat Menu Program

1. Klik Page Other pada Project File SKA 2. Pilih Menu 3. Klik tombol New

2

AMIK Al Ma’soem

4. Klik Tombol Menu 1.3 Membuat Menu Bar

Ketik Menu Bar di atas seperti berikut ini :

1.4 Sub Menu File

1. Klik pada prompt File 2. Pilih Result Submenu, kemudian Klik tombol Create sebelah kanan Submenu 3. Ketik submenu berikut :

3

AMIK Al Ma’soem

4. Untuk memasukan perintah CTRL+W, klik pada tombol Option, kemudian klik pada textbox (press

the key) tekan CTRL+W. Lalu tekan tombol Ok untuk mengakhiri. 5. Pada prompt Logout, ganti result dengan Procedure, kemudian ketik prosedur berikut :

IF TYPE("MENUTAMA1")#"0"

DO O:\ska\MINR\NAMA\prg\MENUTAMA1.MPR

ENDIF

1.5 Sub Menu Master

1. Pindahkan Menu Level ke Menu Bar 2. Klik Prompt Master 3. Pilih Result Submenu, kemudian klik tombol Create sebelah kanan Submenu 4. Ketik submenu berikut :

1.6 Sub Menu Transaksi Lakukan perintah seperti di atas, untuk membuat submenu dari Transaksi berikut ini :

1.7 Sub Menu Laporan Buatkan lagi submenu Laporan berikut dengan cara seperti membuat submenu Master.

1.8 Sub Menu BackUp Lakukan perintan yang sama untuk membuat submenu Backup berikut :

4

AMIK Al Ma’soem

1.9 Sub Menu Utility Lakukan pula perintah seperti di atas untuk membuat submenu Utility berikut :

1.10 Menyimpan Menu Program 1. Klik Menu File pada Menu Bar 2. Pilih Save

3. Pada kotak dialog Save in, pindahkan ke folder PRG di folder Anda 4. Ketik nama file Menutama pada baris Save Menu As, kemudian Klik tombol Save

1.11 Menguji Menu Program

1. Klik tanda + di sebelah kiri Menus pada page Other 2. Klik File Menutama, kemudian Klik tombol Run

B. LATIHAN I Buatkan Menu Program Beikut, dan simpan dengan nama Menutama1 : 1. Sub menu File

5

AMIK Al Ma’soem

2. Sub menu Master

3. Sub menu Transaksi

4. Sub menu Laporan

5. Sub menu BackUp

6. Sub menu Utility

C. TUGAS I Buatkan Menu Program berikut, dan simpan dengen nama Menutama2 : 1. Sub menu File dan BackUp sama dengan Menutama

6

AMIK Al Ma’soem

2. Sub menu Master adalah sbb :

3. Sub menu Transaksi adalah sbb :

4. Sub menu Laporan adalah sbb :

5. Sub menu Utility adalah sbb :

7

AMIK Al Ma’soem

BAGIAN II Tujuan :

1. Membuat Database DATASKA 2. Membuat Tabel USER 3. Membuat Free Table TMPUSER 4. Membuat Form Login 5. Connection File Form 6. Menguji Form dan Menu Program

A. BAHAN PRAKTEK II 2.1 Membuat Database DATASKA dan Tabel USER, serta Free Tabel TMPUSER 1. Buatkan Database DATASKA pada folder DATA di folder Anda (O:\SKA\KARA\NAMA\DATA) 2. Buatkan Tabel USER pada database DATASKA dengan struktur sbb :

3. Berikan Primary Key pada field NMID 4. Simpan dengan nama file USER 5. Buatkan lagi Tabel TMPUSER pada Free Tabel dengan struktur file yang sama dengan Tabel USER 2.2 Membuat Form LOGIN 1. Buatkan Form Login sbb :

2. Isikan Procedure berikut pada form Login a. Object Form1 Procedure ACTIVATE

set exact on

set defa to O:\SKA\KELAS\NAMA\DATA

if used('user')

8

AMIK Al Ma’soem

use in user

endif

if used('tmpuser')

use in tmpuser

endif

SELECT a

USE tmpuser

SELECT b

use user

set order to tag nmid

set order to tag pswd

thisform.nmid.value=""

thisform.pswd.value=""

RETURN

b. Object Form1 Procedure UNLOAD close data

close index

RETURN

c. Object LOGIN Procedure CLICK

IF EMPTY(thisform.nmid.value)

messagebox("User Id tidak boleh kosong...!",;

0,"Perhatian...")

thisform.nmid.setfocus

RETURN

ELSE

IF EMPTY(thisform.PSWD.value)

messagebox("Password tidak boleh kosong...!",;

0,"Perhatian...")

thisform.pswd.setfocus

RETURN

else

use user

set order to tag nmid

LOCATE FOR NMID=TRIM(thisform.nmid.value)

if ! found()

messagebox("Maaf User Id Anda Belum Terdaftar...!",;

0,"Perhatian...")

thisform.nmid.setfocus()

retu

else

set order to tag pswd

LOCATE for nmid=TRIM(thisform.nmid.value) .and.;

pswd=TRIM(thisform.pswd.value)

if ! found()

messagebox("Maaf Password Tidak Dikenal...!",;

0,"Perhatian...")

thisform.pswd.setfocus()

retu

ELSE

9

AMIK Al Ma’soem

SELECT tmpuser

DELETE ALL

SET DELETED OFF

PACK

APPEND BLANK

REPLACE nmid WITH thisform.nmid.Value

REPLACE pswd WITH thisform.pswd.Value

IF user.jabat=1

DO o:\ska\kelas\nama\prg\MENUTAMA2.MPR

ELSE

IF user.jabat=2

DO o:\ska\kelas\nama\prg\MENUTAMA.MPR

ENDIF

ENDIF

ENDIF

thisform.release()

endif

endif

ENDIF

ENDIF

d. Object BATAL Procedure CLICK

thisform.release()

retu 2.3 Connection Form LOGIN ke Menutama1 1. Buka Menu Program Menutama1 2. Klik Prompt File pada Menu Level MenuBar 3. Pilih Result Submenu, kemudian Klik Edit 4. Klik Prompt Login pada Submenu File 5. Pilih Result Procedure, kemudian klik Create 6. Isikan procedure berikut :

IF TYPE("FORMLOGIN")#"0"

DO FORM o:\ska\kelas\nama\prg\FormLogin.SCX

ENDIF 7. Simpan MenuUtama1 8. Klik Tombol RUN, untuk menguji MenuUtama1

B. LATIHAN II 1. Buatkan Form Kelola Data USER dengan LayOut sbb :

10

AMIK Al Ma’soem

2. Procedure Form Kelola Data USER : a. Object Form1 Procedure LOAD

close data

close index

set exact on

set defa to o:\ska\kelas\nama\data

if USED("user")

USE IN user

endif

SELECT A

USE user

set order to tag nmid

RETURN b. Object Form1 Procedure UNLOAD

CLOSE DATABASES

CLOSE INDEXES

RETURN c. Object Form1 Procedure Aktifkan

PARAMETERS x

thisform.pswd.Enabled=x

thisform.jabat.Enabled=x

RETURN

d. Object Form1 Procedure Kendali

PARAMETERS y

thisform.pertama.Enabled=y

thisform.sebelumnya.Enabled=y

thisform.berikutnya.Enabled=y

thisform.terakhir.Enabled=y

RETURN

11

AMIK Al Ma’soem

e. Object Form1 Procedure Kosongkan thisform.pswd.value=""

thisform.jabat.value=0

retu f. Object Form1 Procedure Tampilkan

thisform.nmid.value=user.nmid

thisform.pswd.value=user.pswd

thisform.jabat.value=user.jabat

retu

g. Object Form1 Procedure Activate

thisform.nmid.enabled=.f.

thisform.aktifkan(.f.)

thisform.kendali(.t.)

thisform.baru.enabled=.t.

thisform.keluar.enabled=.t.

thisform.hapus.enabled=.f.

thisform.simpan.enabled=.f.

thisform.batal.enabled=.f.

thisform.perbaiki.enabled=.f.

thisform.ud.enabled=.f.

thisform.kosongkan()

thisform.baru.setfocus()

thisform.grid1.readonly=.t.

thisform.grid1.enabled=.t.

return

h. Object NMID Procedure LOSTFOCUS

if empty(thisform.nmid.value)

messagebox("Nama Id Harus Diisi !",0,"Perhatian...!")

thisform.nmid.setfocus()

return

endif

IF len(trim(thisform.nmid.Value))<4

messagebox("User Id tidak boleh kurang dari 5 digit !",;

0,"Perhatian...")

thisform.nmid.setfocus

RETURN

ENDIF

SELECT user

SET ORDER TO TAG nmid

SET EXACT ON

if seek(thisform.nmid.value)

thisform.grid1.setfocus()

thisform.refresh()

MESSAGEBOX("Data tersebut sudah ada..",;

0+48,"Perhatian...")

else

thisform.perbaiki.enabled=.f.

thisform.ud.enabled=.f.

12

AMIK Al Ma’soem

thisform.batal.enabled=.t.

thisform.baru.enabled=.f.

thisform.simpan.enabled=.t.

thisform.keluar.enabled=.f.

thisform.hapus.enabled=.f.

thisform.nmid.enabled=.f.

thisform.aktifkan(.t.)

thisform.kendali(.f.)

thisform.kosongkan()

thisform.pswd.setfocus()

thisform.grid1.readonly=.t.

thisform.grid1.enabled=.f.

endif

return

i. Oject PSWD Procedure LOSTFOCUS IF len(trim(thisform.pswd.Value))<4

messagebox("Password tidak boleh kurang dari 5 digit !",; 0,"Perhatian...")

thisform.pswd.setfocus

RETURN

ENDIF

j. Oject CARI Procedure CLICK

if empty(thisform.nmid.value)

messagebox("User Id Harus Diisi !",0,"Perhatian...!")

thisform.nmid.setfocus()

return

endif

SELECT user

SET ORDER TO TAG nmid

SET EXACT OFF

LOCATE FOR nmid=TRIM(thisform.nmid.value)

if FOUND()

thisform.grid1.setfocus()

thisform.refresh()

ELSE

MESSAGEBOX("Data tidak ditemukan...",0,"Perhatian...")

thisform.perbaiki.enabled=.f.

thisform.ud.enabled=.f.

thisform.batal.enabled=.t.

thisform.baru.enabled=.f.

thisform.simpan.enabled=.f.

thisform.keluar.enabled=.f.

thisform.hapus.enabled=.f.

thisform.nmid.enabled=.f.

thisform.aktifkan(.f.)

thisform.kendali(.f.)

thisform.kosongkan

thisform.pswd.enabled=.t.

thisform.nmid.value=""

13

AMIK Al Ma’soem

thisform.pswd.setfocus

thisform.grid1.readonly=.t.

thisform.grid1.enabled=.f.

endif

return

k. Oject CARI Procedure RIGHTCLICK

thisform.nmid.Enabled=.t.

thisform.nmid.setfocus

return

l. Oject TAMBAH Procedure CLICK

thisform.nmid.enabled=.t.

thisform.aktifkan(.f.)

thisform.kendali(.f.)

thisform.baru.enabled=.f.

thisform.keluar.enabled=.f.

thisform.hapus.enabled=.f.

thisform.simpan.enabled=.f.

thisform.batal.enabled=.t.

thisform.perbaiki.enabled=.f.

thisform.ud.enabled=.f.

thisform.grid1.readonly=.t.

thisform.grid1.enabled=.f.

thisform.kosongkan()

thisform.nmid.setfocus()

return

m. Oject SIMPAN Procedure CLICK IF EMPTY(thisform.nmid.value)

messagebox("Isi dulu User Id-nya !",0,"Perhatian...")

thisform.nmid.setfocus

RETURN

ELSE

IF EMPTY(thisform.pswd.value)

messagebox("Isi dulu Password-nya !",0,"Perhatian...")

thisform.pswd.setfocus

RETURN

ELSE

IF EMPTY(thisform.pswd.value)

messagebox("Isi dulu Status-nya !",0,"Perhatian...")

thisform.pswd.setfocus

RETURN

ELSE

IF len(thisform.NMID.value)<4

messagebox("User Id minimal 4 Character...!",0,;

"Perhatian...")

thisform.nmid.setfocus

RETURN

ELSE

IF len(thisform.PSWD.value)<4

14

AMIK Al Ma’soem

messagebox("Password minimal 4 Character...!",0,;

"Perhatian...")

thisform.pswd.setfocus

RETURN

ELSE

SELECT user

locate for nmid=trim(thisform.nmid.value)

if found()

messagebox("User Id ada yang sama !",0,;

"Penyimpanan tidak bisa dilakukan")

thisform.nmid.setfocus()

RETURN

endif

locate for pswd=trim(thisform.pswd.value)

if found()

messagebox("Password ada yang sama !",0,;

"Penyimpanan tidak bisa dilakukan")

thisform.pswd.setfocus()

return

ENDIF

IF ! EMPTY(thisform.jabat.Value)

locate for nmid=space(14)

if ! found()

append blank

endif

repl nmid with thisform.nmid.value

repl pswd with thisform.pswd.value

repl jabat with thisform.jabat.value

thisform.grid1.setfocus()

thisform.Refresh()

messagebox("Penyimpanan data sudah dilakukan !",0,;

"Perhatian...")

thisform.perbaiki.enabled=.t.

thisform.ud.enabled=.f.

thisform.batal.enabled=.f.

thisform.baru.enabled=.t.

thisform.simpan.enabled=.f.

thisform.keluar.enabled=.t.

thisform.hapus.enabled=.t.

thisform.nmid.enabled=.f.

thisform.aktifkan(.f.)

thisform.kendali(.t.)

thisform.grid1.readonly=.t.

thisform.grid1.enabled=.t.

return

ELSE

messagebox("Isi dulu Status-nya !",0,"Perhatian...")

ENDIF

ENDIF

ENDIF

ENDIF

15

AMIK Al Ma’soem

ENDIF

Endif

n. Oject BATAL Procedure CLICK thisform.nmid.enabled=.f.

thisform.aktifkan(.f.)

thisform.kendali(.t.)

thisform.baru.enabled=.t.

thisform.keluar.enabled=.t.

thisform.hapus.enabled=.f.

thisform.simpan.enabled=.f.

thisform.batal.enabled=.f.

thisform.perbaiki.enabled=.f.

thisform.ud.enabled=.f.

thisform.grid1.readonly=.t.

thisform.grid1.enabled=.t.

thisform.kosongkan()

thisform.nmid.setfocus()

return

o. Oject HAPUS Procedure CLICK

SELECT user

LOCATE FOR nmid=TRIM(THISFORM.nmid.Value)

ln=RECNO()

ljawab=messagebox("Anda Yakin ?",4+32+256,;

"Record ini mau dihapus !")

if ljawab=6

DELETE FOR nmid=TRIM(THISFORM.nmid.Value)

set dele on

ENDIF

goto ln

thisform.grid1.setfocus()

thisform.refresh()

thisform.perbaiki.enabled=.t.

thisform.ud.enabled=.f.

thisform.batal.enabled=.f.

thisform.baru.enabled=.t.

thisform.simpan.enabled=.f.

thisform.keluar.enabled=.t.

thisform.hapus.enabled=.t.

thisform.nmid.enabled=.f.

thisform.aktifkan(.f.)

thisform.kendali(.t.)

thisform.grid1.readonly=.t.

thisform.grid1.enabled=.t.

return

p. Oject KELUAR Procedure CLICK set order to

set dele off

SELECT user

16

AMIK Al Ma’soem

pack

thisform.release()

return

q. Oject PERBAIKI Procedure CLICK

thisform.perbaiki.enabled=.f.

thisform.ud.enabled=.t.

thisform.batal.enabled=.t.

thisform.baru.enabled=.f.

thisform.simpan.enabled=.f.

thisform.keluar.enabled=.f.

thisform.hapus.enabled=.f.

thisform.aktifkan(.t.)

thisform.kendali(.f.)

thisform.nmid.enabled=.f.

thisform.pswd.setfocus()

thisform.grid1.readonly=.t.

thisform.grid1.enabled=.f.

return

r. Oject PERTAMA Procedure CLICK SELECT user

go top

if eof()

messagebox("Tidak ada record...",0,"Perhatian...!")

return

ENDIF

thisform.grid1.setfocus

thisform.refresh

return

s. Oject SEBELUMNYA Procedure CLICK SELECT user

skip -1

if bof()

go top

ENDIF

thisform.grid1.setfocus

thisform.refresh

return

t. Oject BERIKUTNYA Procedure CLICK SELECT user

skip

if bof()

go bottom

ENDIF

thisform.grid1.setfocus

thisform.refresh

return

u. Oject TERAKHIR Procedure CLICK

17

AMIK Al Ma’soem

SELECT user

go bottom

if eof()

messagebox("Tidak ada record...",0,"Perhatian...!")

return

ENDIF

thisform.grid1.setfocus

thisform.refresh

return

v. Oject GRID1 Procedure AfterRowColChange

LPARAMETERS nColIndex

thisform.perbaiki.enabled=.t.

thisform.hapus.enabled=.t.

thisform.batal.enabled=.f.

thisform.nmid.enabled=.f.

thisform.aktifkan(.f.)

thisform.kendali(.t.)

thisform.baru.enabled=.t.

thisform.simpan.enabled=.f.

thisform.keluar.enabled=.t.

thisform.grid1.enabled=.t.

thisform.grid1.readonly=.t.

thisform.tampilkan()

retu

C. TUGAS II Buatkan Form Mengganti Password dengan LayOut sbb :

18

AMIK Al Ma’soem

BAGIAN III Tujuan :

1. Membuat Table Perkiraan 2. Membuat Table Jurnal 3. Membuat Form untuk mengelola data Perkiraan

A. BAHAN PRAKTEK III 3.1 Table Perkiraan Nama Table : Perkiraan Primary Key : Noper

3.2 Table Jurnal Nama Table : Jurnal Primary Key : -

1.3 Form Kelola Data Perkiraan Nama Form : Perkiraan

19

AMIK Al Ma’soem

3.4 Procedure Program

*Object FORM1 Procedure LOAD

SET DEFAULT TO O:\SKA\KELAS\NAMA\DATA

CLOSE DATABASES

CLOSE INDEXES

IF USED("PERKIRAAN")

USE IN PERKIRAAN

ENDIF

IF USED("JURNAL")

USE IN JURNAL

ENDIF

SELECT A

USE PERKIRAAN

SET ORDER TO TAG NOPER

SELECT B

USE JURNAL

RETU

*Object FORM1 Procedure UNLOAD

CLOSE DATABASES

CLOSE INDEXES

20

AMIK Al Ma’soem

USE IN perkiraan

RETURN

*Object FORM1 Procedure AKTIFKAN

PARAMETERS X

THISFORM.noper.Enabled=X

THISFORM.namaper.Enabled=X

THISFORM.saldoa.Enabled=X

RETU

*Object FORM1 Procedure KENDALI

PARAMETERS Y

THISFORM.PERTAMA.Enabled=Y

THISFORM.SEBELUMNYA.Enabled=Y

THISFORM.BERIKUTNYA.Enabled=Y

THISFORM.TERAKHIR.Enabled=Y

RETU

*Object FORM1 Procedure KOSONGKAN

THISFORM.noper.Value=""

THISFORM.namaper.Value=""

THISFORM.saldoa.Value=0

RETU

*Object FORM1 Procedure TAMPILKAN

THISFORM.noac.Value=PERKIRAAN.noac+"-"

THISFORM.noper.Value=RIGHT(PERKIRAAN.NOPER,4)

THISFORM.namaper.Value=PERKIRAAN.NAMAPER

THISFORM.saldoa.Value=PERKIRAAN.SALDOJ

RETU

*Object FORM1 Procedure ACTIVATE

thisform.perkiraan.ActivePage =1

SELECT perkiraan

SET FILTER TO NOAC="1"

thisform.refresh

THISFORM.KOSONGKAN

THISFORM.KENDALI(.T.)

THISFORM.AKTIFKAN(.F.)

THISFORM.tambah.Enabled=.T.

THISFORM.batal.Enabled=.f.

THISFORM.simpan.Enabled=.f.

THISFORM.hapus.Enabled=.f.

THISFORM.perbaiki.Enabled=.f.

THISFORM.ud.Enabled=.f.

THISFORM.keluar.Enabled=.T.

RETU

*Object PERKIRAAN Procedure CLICK

SELECT perkiraan

IF thisform.perkiraan.activepage=1

21

AMIK Al Ma’soem

thisform.kosongkan

thisform.noac.value="1-"

SET FILTER TO LEFT(perkiraan.noper,1)="1"

thisform.refresh

else

IF thisform.perkiraan.activepage=2

thisform.kosongkan

thisform.noac.value="2-"

SET FILTER TO LEFT(perkiraan.noper,1)="2"

thisform.refresh

else

IF thisform.perkiraan.activepage=3

thisform.kosongkan

thisform.noac.value="3-"

SET FILTER TO LEFT(perkiraan.noper,1)="3"

thisform.refresh

ELSE

IF thisform.perkiraan.activepage=4

thisform.kosongkan

thisform.noac.value="4-"

SET FILTER TO LEFT(perkiraan.noper,1)="4"

thisform.refresh

ELSE

IF thisform.perkiraan.activepage=5

thisform.kosongkan

thisform.noac.value="5-"

SET FILTER TO LEFT(perkiraan.noper,1)="5"

thisform.refresh

ELSE

thisform.kosongkan

thisform.noac.value="6-"

SET FILTER TO LEFT(perkiraan.noper,1)="6"

thisform.refresh

endif

endif

ENDIF

endif

endif

*Object TAMBAH Procedure CLICK

IF EMPTY(thisform.noac.Value)

MESSAGEBOX("Pilih dulu Account yang akan diisi...",0,;

"Perhatian...!")

RETURN

ENDIF

THISFORM.KOSONGKAN

THISFORM.KENDALI(.f.)

THISFORM.AKTIFKAN(.t.)

THISFORM.tambah.Enabled=.f.

THISFORM.simpan.Enabled=.t.

THISFORM.batal.Enabled=.T.

22

AMIK Al Ma’soem

THISFORM.hapus.Enabled=.f.

THISFORM.perbaiki.Enabled=.f.

THISFORM.ud.Enabled=.f.

THISFORM.cetak.Enabled=.f.

THISFORM.keluar.Enabled=.f.

thisform.noper.setfocus

RETU

*Object SIMPAN Procedure CLICK

IF EMPTY(thisform.noper.Value) .or. EMPTY(thisform.namaper.Value)

MESSAGEBOX("Nomor & Nama Perkiraan harus diisi !",0,;

"perhatian..!")

thisform.noper.SetFocus

RETURN

ENDIF

SELECT perkiraan

vnoper=TRIM(thisform.noac.Value)+thisform.noper.Value

LOCATE FOR NOPER=vNOPER

IF FOUND()

thisform.grid1.setfocus()

thisform.refresh()

messagebox("Perkiraan tsb sudah tercatat...!",0,;

"Perhatian...")

THISFORM.KENDALI(.t.)

THISFORM.AKTIFKAN(.f.)

THISFORM.tambah.Enabled=.t.

THISFORM.batal.Enabled=.f.

THISFORM.simpan.Enabled=.f.

THISFORM.hapus.Enabled=.f.

THISFORM.perbaiki.Enabled=.f.

THISFORM.ud.Enabled=.f.

THISFORM.keluar.Enabled=.t.

return

ENDIF

SET FILTER TO

LOCATE FOR perkiraan.noper=SPACE(6)

IF .not. FOUND()

APPEND BLANK

ENDIF

vnoper=TRIM(thisform.noac.Value)+thisform.noper.Value

REPLACE Noper WITH vNoper

REPLACE noac WITH LEFT(Thisform.noac.Value,1)

REPLACE namaper WITH thisform.namaper.Value

REPLACE saldoa WITH thisform.saldoa.Value

REPLACE saldoj WITH thisform.saldoa.Value

SET FILTER TO noac=LEFT(Thisform.noac.Value,1)

thisform.grid1.SetFocus

thisform.Refresh

THISFORM.KENDALI(.t.)

THISFORM.AKTIFKAN(.f.)

THISFORM.tambah.Enabled=.t.

23

AMIK Al Ma’soem

THISFORM.batal.Enabled=.f.

THISFORM.simpan.Enabled=.f.

THISFORM.hapus.Enabled=.f.

THISFORM.perbaiki.Enabled=.f.

THISFORM.ud.Enabled=.f.

THISFORM.keluar.Enabled=.t.

RETURN

*Object BATAL Procedure CLICK

THISFORM.KOSONGKAN

THISFORM.KENDALI(.t.)

THISFORM.AKTIFKAN(.f.)

THISFORM.tambah.Enabled=.t.

THISFORM.batal.Enabled=.f.

THISFORM.simpan.Enabled=.f.

THISFORM.hapus.Enabled=.f.

THISFORM.perbaiki.Enabled=.f.

THISFORM.ud.Enabled=.f.

THISFORM.keluar.Enabled=.t.

RETURN

*Object HAPUS Procedure CLICK

vnoper=TRIM(thisform.noac.Value)+thisform.noper.Value

* IF vnoper="1-1100" .or. vnoper="1-2000" .or. vnoper="2-1000"

* MESSAGEBOX("Maaf nomor ini tidak bisa dihapus...",0,;

"Perhatian...")

* RETURN

*endif

SELECT jurnal

LOCATE FOR NOPER=vnoper

IF FOUND()

MESSAGEBOX("Maaf nomor perkiraan ini tidak bisa dihapus..."+;

CHR(13)+"karena sudah digunakan dalam transaksi...",0,;

"Perhatian...")

thisform.Refresh()

RETURN

ENDIF

SELECT perkiraan

LOCATE FOR NOPER=vnoper

jawab=MESSAGEBOX("Anda Yakin Record ini mau dihapus...?",;

4+32+256,"Pehatian...")

IF jawab=6

DELETE &&FOR noper=vnoper

SET DELETED ON

thisform.refresh

ENDIF

*Object KELUAR Procedure CLICK

thisform.Release

SELECT perkiraan

24

AMIK Al Ma’soem

SET DELETED OFF

pack

RETURN

*Object CETAK Procedure CLICK

SELECT perkiraan

SET FILTER TO

REPORT FORM O:\SKA\KELAS\NAMA\PRG\perkiraan preview

Return

*Object PERBAIKI Procedure CLICK

vnoper=TRIM(thisform.noac.Value)+thisform.noper.Value

SELECT jurnal

LOCATE FOR NOPER=vnoper

IF FOUND()

MESSAGEBOX("Maaf Perkiraan tersebut tidak bisa diperbaiki"+;

CHR(13)+"karena sudah digunakan dalam transaksi...",;

0,"Perhatian...")

thisform.Refresh

RETURN

ENDIF

SELECT perkiraan

LOCATE FOR NOPER=vnoper

* IF vnoper="1-1100" .or. vnoper="1-2000" .or. vnoper="2-1000"

* MESSAGEBOX("Maaf nomor perkiraan ini tidak bisa diperbaiki...",;

0,"Perhatian...")

* RETURN

*endif

THISFORM.KENDALI(.f.)

THISFORM.AKTIFKAN(.t.)

THISFORM.tambah.Enabled=.f.

THISFORM.simpan.Enabled=.f.

THISFORM.batal.Enabled=.T.

THISFORM.hapus.Enabled=.f.

THISFORM.perbaiki.Enabled=.f.

THISFORM.ud.Enabled=.f.

THISFORM.cetak.Enabled=.f.

THISFORM.keluar.Enabled=.f.

thisform.namaper.setfocus

return

*Object UD Procedure CLICK

vnoper=TRIM(thisform.noac.Value)+thisform.noper.Value

jawab=MESSAGEBOX("Anda Yakin Mau Memperbaiki data Sebelumnya ?",;

4+32+512,"Perhatian...")

IF jawab=6

* REPLACE Noper WITH vNoper

REPLACE namaper WITH thisform.namaper.Value

REPLACE saldoa WITH thisform.saldoa.Value

REPLACE saldoj WITH thisform.saldoa.Value

ENDIF

25

AMIK Al Ma’soem

thisform.grid1.SetFocus

thisform.refresh

THISFORM.KENDALI(.t.)

THISFORM.AKTIFKAN(.f.)

THISFORM.tambah.Enabled=.t.

THISFORM.simpan.Enabled=.f.

THISFORM.batal.Enabled=.f.

THISFORM.hapus.Enabled=.t.

THISFORM.perbaiki.Enabled=.f.

THISFORM.ud.Enabled=.f.

THISFORM.keluar.Enabled=.t.

thisform.namaper.setfocus

return

*Object PERTAMA Procedure CLICK

SELECT perkiraan

GO top

IF EOF()

MESSAGEBOX("Tidak ada data...",0,"Perhatian...")

RETURN

ENDIF

thisform.grid1.SetFocus()

thisform.Refresh()

RETURN

*Object SEBELUMNYA Procedure CLICK

SELECT perkiraan

SKIP -1

IF EOF()

GO top

ENDIF

thisform.grid1.SetFocus()

thisform.Refresh()

RETURN

*Object BERIKUTNYA Procedure CLICK

SELECT perkiraan

SKIP 1

IF EOF()

GO bottom

ENDIF

thisform.grid1.SetFocus()

thisform.Refresh()

RETURN

*Object TERAKHIR Procedure CLICK

SELECT perkiraan

GO bottom

IF EOF()

MESSAGEBOX("Tidak ada data...",0,"Perhatian...")

RETURN

26

AMIK Al Ma’soem

ENDIF

thisform.grid1.SetFocus()

thisform.Refresh()

RETURN

*Object GRID1 Procedure AfterRowCollChenge

LPARAMETERS nColIndex

thisform.tampilkan

THISFORM.KENDALI(.t.)

THISFORM.AKTIFKAN(.f.)

THISFORM.tambah.Enabled=.t.

THISFORM.simpan.Enabled=.f.

THISFORM.batal.Enabled=.f.

THISFORM.hapus.Enabled=.t.

THISFORM.perbaiki.Enabled=.t.

THISFORM.ud.Enabled=.f.

THISFORM.keluar.Enabled=.t.

thisform.namaper.setfocus

return

B. TUGAS III : 1. Lakukan survey ke perusahaan UKM, untuk mengetahui : Harta Kekayaan Perusahaan (Kas,

Perlengkapan, Peralatan, dll), Utang, Modal, Jenis-jenis pendapatan, dan Biaya-biaya (beban) yang dikeluarkan perusahaan.

2. Buat Form perkiraannya.

27

AMIK Al Ma’soem

BAGIAN IV

Tujuan : 1. Membuat Report Saldo Perkiraan 2. Filter 3. Grouping

A. BAHAN PRAKTEK IV

Formula : Per : cmonth(date())+" "+str(year(date()),4) Nomor Perkiraan : Perkiraan.noper Nama Perkiraan : Perkiraan.namaper Saldo Berjalan : Perkiraan.saldoj (Format Exp : 999,999,999,999 ; Alignment : Right ) Total : iif(Perkiraan.noac="1","Aktiva",iif(Perkiraan.noac="2","Utang",iif(Perkiraan.noac="3","Modal", iif(perkiraan.noac="4","Pendapatan",iif(Perkiraan.noac="5","Harga Pokok",iif(perkiraan.noac="6", ”Biaya”, iif(Perkiraan.noac="7","Pend.Jasa",""))))))) Perkiraan.saldoj (Format exp : 999,999,999,999 ; Alignment : Right ; Calculate type : Sum & Reset based on : Group Perkiraan.noac)

B. TUGAS IV Buatkan Report Daftar/Saldo Perkiraan dari Tugas III di atas.

28

AMIK Al Ma’soem

BAGIAN V Tujuan :

1. Transaksi Jurnal Umum 2. Link File 3. Relasi File

A. BAHAN PRAKTEK V: 5.1 Free Table Temporary Jurnal Nama Free Table : TMPJURNAL Primary Key : -

5.2 Free Table Temporary Total Jurnal Nama Free Table : TMPJ Primary Key : -

5.3 Free Table Nomor Bukti Nama Free Table : NoBukti Primary Key : -

29

AMIK Al Ma’soem

5.4 Form Jurnal

* Object FORM1 Procedure LOAD SET DEFAULT TO O:\SKA\KELAS\NAMA\DATA

CLOSE DATABASES

CLOSE INDEXES

SET DATE BRITISH

SET EXACT ON

IF USED("perkiraan")

USE IN perkiraan

ENDIF

IF USED("jurnal")

USE IN jurnal

ENDIF

IF USED("tmpjurnal")

USE IN tmpjurnal

ENDIF

IF USED("NoBukti")

USE IN NoBukti

ENDIF

SELECT 1

USE perkiraan

SET ORDER TO tag Noper

SELECT 2

USE jurnal

SET ORDER TO TAG NOBUKTI

SELECT 3

USE tmpjurnal

SET ORDER TO TAG NoBukti

SELECT 4

USE NoBukti

SELECT 5

USE tmpj

RETURN

30

AMIK Al Ma’soem

* Object FORM1 Procedure UNLOAD CLOSE DATABASES

CLOSE INDEXES

RETURN

* Object FORM1 Procedure AKTIFKAN PARAMETERS x

thisform.tgltran.enabled=x

thisform.catatan.enabled=x

thisform.noper.enabled=x

thisform.namaper.enabled=x

thisform.debet.enabled=x

thisform.kredit.enabled=x

RETURN

* Object FORM1 Procedure KENDALI PARAMETERS Y

thisform.pertama.Enabled=Y

thisform.berikutnya.Enabled=Y

thisform.sebelumnya.Enabled=Y

thisform.terakhir.Enabled=Y

RETURN

* Object FORM1 Procedure KOSONGKAN thisform.noper.Value=""

thisform.debet.Value=0

thisform.kredit.Value=0

thisform.namaper.Value=""

RETURN

* Object FORM1 Procedure TAMPIL thisform.namaper.value=tmpjurnal.namaper

thisform.noper.value=tmpjurnal.noper

thisform.debet.value=tmpjurnal.debet

thisform.kredit.value=tmpjurnal.kredit

RETURN

* Object FORM1 Procedure TAMPILKAN SELECT jurnal

thisform.nobukti.value=jurnal.noBukti

thisform.tgltran.value=jurnal.tgltran

thisform.catatan.value=jurnal.catatan

thisform.noper.value=jurnal.noper

thisform.debet.value=jurnal.debet

thisform.kredit.value=jurnal.kredit

SELECT perkiraan

SEEK thisform.noper.Value

thisform.namaper.Value=perkiraan.namaper

SELECT tmpjurnal

31

AMIK Al Ma’soem

DELETE ALL

SET DELETED ON

APPEND FROM jurnal FOR NoBukti=TRIM(thisform.nobukti.Value)

GO top

vjd=0

vjk=0

DO WHILE ! EOF()

SELECT perkiraan

LOCATE FOR NOPER=tmpjurnal.noper

IF FOUND()

vnamaper=perkiraan.namaper

ELSE

vnamaper=""

ENDIF

SELECT tmpjurnal

REPLACE namaper WITH vnamaper

vjd=vjd+tmpjurnal.debet

vjk=vjk+tmpjurnal.kredit

skip

ENDDO

SELECT tmpj

GO bottom

REPLACE NoBukti WITH thisform.nobukti.Value

REPLACE Jdebet WITH vJD

REPLACE Jkredit WITH vJK

SELECT tmpjurnal

GO top

thisform.lihat.enabled=.t.

thisform.grid1.SetFocus

thisform.Refresh

RETURN

* Object FORM1 Procedure ACTIVATE thisform.aktifkan(.f.)

SELECT TMPJURNAL

DELETE ALL

SET DELETED ON

thisform.nobukti.Value=""

thisform.kosongkan

thisform.tgltran.Value=DATE()

thisform.kendali(.t.)

thisform.ok.enabled=.f.

thisform.tambah.enabled=.t.

thisform.simpan.enabled=.f.

thisform.batal.enabled=.f.

thisform.keluar.enabled=.t.

thisform.tambah.setfocus

RETURN

32

AMIK Al Ma’soem

* Object TAMBAH Procedure CLICK PUBLIC vNo

thisform.noper.Value=""

thisform.kosongkan

SELECT tmpjurnal

SET DELETED ON

DELETE ALL

SELECT tmpj

DELETE ALL

PACK

thisform.refresh

thisform.aktifkan(.t.)

SELECT NoBukti

GO BOTTOM

IF YEAR(NoBukti.Tanggal)<>YEAR(DATE())

DELETE ALL

PACK

APPEND BLANK

Vno=1

ELSE

Vno=NoBukti.No+1

ENDIF

IF vNo<10

VNoBukti="GL0000000"+STR(Vno,1)

else

IF vNo<100

VNoBukti="GL000000"+STR(Vno,2)

ELSE

IF vNo<1000

VNoBukti="GL00000"+STR(Vno,3)

ELSE

IF vNo<10000

VNoBukti="GL0000"+STR(Vno,4)

ELSE

IF vNo<100000

VNoBukti="GL000"+STR(Vno,5)

ELSE

IF vNo<1000000

VNoBukti="GL00"+STR(Vno,6)

ELSE

IF vNo<10000000

VNoBukti="GL0"+STR(Vno,7)

ELSE

vNoBukti="GL"+STR(VNo,8)

ENDIF

ENDIF

ENDIF

ENDIF

ENDIF

ENDIF

endif

33

AMIK Al Ma’soem

thisform.nobukti.Value=vNoBukti

thisform.tgltran.Value=DATE()

thisform.kendali(.f.)

thisform.ok.enabled=.t.

thisform.tambah.enabled=.f.

thisform.simpan.enabled=.f.

thisform.batal.enabled=.t.

thisform.keluar.enabled=.f.

thisform.lihat.enabled=.f.

thisform.tgltran.setfocus

RETURN

* Object NAMAPER Procedure InteractiveChange SELECT Perkiraan

LOCATE FOR namaper=thisform.namaper.Value

thisform.noper.Value=Noper

thisform.debet.Value=0

thisform.kredit.Value=0

thisform.ok.Enabled=.t.

RETURN

* Object NOPER Procedure LOSTFOCUS SELECT perkiraan

LOCATE FOR NOPER=TRIM(thisform.noper.Value)

IF FOUND()

thisform.namaper.Value=perkiraan.namaper

ELSE

thisform.namaper.Value=""

ENDIF

thisform.ok.Enabled=.t.

RETURN

* Object NOPER Procedure Click SELECT Perkiraan

LOCATE FOR noper=thisform.noper.Value

thisform.namaper.Value=Namaper

thisform.debet.Value=0

thisform.kredit.Value=0

thisform.ok.Enabled=.t.

RETURN

* Object KREDIT Procedure Click SELECT tmpjurnal

thisform.kredit.Value=tmpj.jdebet-tmpj.jkredit

RETURN

* Object OK Procedure Click IF thisform.debet.Value=thisform.kredit.Value

MESSAGEBOX("Lakukan proses jurnal dengan benar...",0,"Perhatian...")

thisform.kredit.SetFocus

34

AMIK Al Ma’soem

RETURN

ENDIF

SELECT tmpjurnal

LOCATE FOR Noper=thisform.noper.Value

IF FOUND()

MESSAGEBOX("Nomor perkiraan yang anda masukan duplikasi..."+;

CHR(13)+"Coba anda periksa lagi jurnalnya...!",0,;

"Perhatian...")

thisform.noper.SetFocus

RETURN

ENDIF

SELECT perkiraan

LOCATE FOR Noper=thisform.noper.Value

IF thisform.kredit.Value>0

IF perkiraan.saldoj<thisform.kredit.Value .and.;

LEFT(thisform.noper.Value,1)="1"

MESSAGEBOX("Jumlah Transaksi melebihi Saldo perkiraan",0,;

"Perhatian...")

thisform.kredit.value=perkiraan.saldoJ

thisform.kredit.SetFocus

RETURN

ENDIF

ENDIF

IF LEFT(thisform.noper.Value,1)="1" .or.;

LEFT(thisform.noper.Value,1)="6"

REPLACE saldoj WITH saldoj+thisform.debet.Value-thisform.kredit.value

ELSE

REPLACE saldoj WITH saldoj-thisform.debet.Value+thisform.kredit.value

ENDIF

SELECT jurnal

LOCATE FOR noBukti=space(10)

IF ! FOUND()

APPEND BLANK

ENDIF

REPLACE NoBukti WITH thisform.nobukti.value

REPLACE tgltran WITH thisform.tgltran.value

REPLACE Catatan WITH thisform.catatan.value

REPLACE Noper WITH thisform.noper.value

REPLACE debet WITH thisform.debet.value

REPLACE kredit WITH thisform.kredit.value

SELECT tmpjurnal

APPEND BLANK

REPLACE NoBukti WITH thisform.nobukti.value

REPLACE tgltran WITH thisform.tgltran.value

REPLACE Catatan WITH thisform.catatan.value

REPLACE Noper WITH thisform.noper.value

REPLACE debet WITH thisform.debet.value

REPLACE kredit WITH thisform.kredit.value

REPLACE namaper WITH thisform.namaper.value

SELECT tmpj

GO bottom

35

AMIK Al Ma’soem

IF EOF()

APPEND BLANK

ENDIF

REPLACE NoBukti WITH thisform.nobukti.value

REPLACE jdebet WITH jdebet+thisform.debet.Value

REPLACE jkredit WITH jkredit+thisform.kredit.Value

thisform.grid1.setfocus

thisform.refresh

thisform.kendali(.f.)

thisform.ok.enabled=.f.

thisform.tambah.enabled=.f.

thisform.simpan.enabled=.t.

thisform.batal.enabled=.t.

thisform.keluar.enabled=.f.

RETURN

* Object SIMPAN Procedure Click SELECT tmpj

SET FILTER TO NoBUkti=thisform.nobukti.value

IF jdebet<>Jkredit

MESSAGEBOX("Soory Transaksi tidak bisa disimpan"+CHR(13)+;

"Periksa lagi sisi Debet dan Kreditnya...",0,"Perhatian...")

RETURN

ENDIF

SELECT NoBukti

GO bottom

REPLACE No WITH Vno

REPLACE tanggal WITH thisform.tgltran.value

thisform.kendali(.t.)

thisform.ok.enabled=.f.

thisform.tambah.enabled=.t.

thisform.simpan.enabled=.f.

thisform.batal.enabled=.f.

thisform.keluar.enabled=.t.

thisform.lihat.enabled=.t.

thisform.tambah.setfocus

RETURN

* Object BATAL Procedure Click SELECT perkiraan

LOCATE FOR NOPER=TRIM(thisform.noper.Value)

IF noac="1" .or. noac="6"

IF thisform.debet.Value>0

REPLACE perkiraan.saldoj WITH perkiraan.saldoj - thisform.debet.Value

ELSE

IF thisform.kredit.Value>0

REPLACE perkiraan.saldoj WITH perkiraan.saldoj + thisform.kredit.Value

ENDIF

ENDIF

ELSE

IF thisform.debet.Value>0

36

AMIK Al Ma’soem

REPLACE perkiraan.saldoj WITH perkiraan.saldoj + thisform.debet.Value

ELSE

IF thisform.kredit.Value>0

REPLACE perkiraan.saldoj WITH perkiraan.saldoj - thisform.kredit.Value

ENDIF

ENDIF

ENDIF

SELECT jurnal

DELETE FOR noper=TRIM(thisform.noper.Value) .and.;

NoBukti=TRIM(thisform.nobukti.Value)

PACK

thisform.aktifkan(.f.)

SELECT TMPJURNAL

DELETE FOR noper=TRIM(thisform.noper.Value) .and.;

NoBukti=TRIM(thisform.nobukti.Value)

SET DELETED ON

thisform.noper.Value=""

thisform.kosongkan

thisform.tgltran.Value=DATE()

thisform.kendali(.t.)

thisform.ok.enabled=.f.

thisform.tambah.enabled=.t.

thisform.simpan.enabled=.f.

thisform.batal.enabled=.f.

thisform.keluar.enabled=.t.

thisform.refresh

thisform.tambah.setfocus

RETURN

* Object LIHAT Procedure Click SELECT Jurnal

SET RELATION TO Noper INTO Perkiraan

SET FILTER TO MONTH(tgltran)=MONTH(thisform.tgltran.Value)

REPORT FORM d:\SKA\KELAS\NAMA\PRG\Jurnal PREVIEW

RETURN

* Object PERK Procedure Click do form d:\ska\prg\perk.scx

return

* Object PERTAMA Procedure Click SELECT jurnal

GO top

IF EOF()

MESSAGEBOX("Record Kosong...",0,"Perhatian...")

RETURN

ENDIF

thisform.tampilkan

thisform.kendali(.t.)

thisform.ok.enabled=.f.

thisform.tambah.enabled=.t.

37

AMIK Al Ma’soem

thisform.simpan.enabled=.f.

thisform.batal.enabled=.f.

thisform.keluar.enabled=.t.

thisform.grid1.SetFocus()

thisform.Refresh

RETURN

* Object SEBELUMNYA Procedure Click SELECT jurnal

SKIP -1

IF EOF()

GO bottom

ENDIF

thisform.tampilkan

thisform.kendali(.t.)

thisform.ok.enabled=.f.

thisform.tambah.enabled=.t.

thisform.simpan.enabled=.f.

thisform.batal.enabled=.f.

thisform.keluar.enabled=.t.

thisform.grid1.SetFocus()

thisform.Refresh

RETURN

* Object BERIKUTNYA Procedure Click SELECT jurnal

SKIP

IF EOF()

GO bottom

ENDIF

thisform.tampilkan

thisform.kendali(.t.)

thisform.ok.enabled=.f.

thisform.tambah.enabled=.t.

thisform.simpan.enabled=.f.

thisform.batal.enabled=.f.

thisform.keluar.enabled=.t.

thisform.grid1.SetFocus()

thisform.Refresh

RETURN

* Object TERAKHIR Procedure Click SELECT jurnal

GO Bottom

IF EOF()

MESSAGEBOX("Record Kosong...",0,"Perhatian...")

RETURN

ENDIF

thisform.tampilkan

thisform.kendali(.t.)

thisform.ok.enabled=.f.

38

AMIK Al Ma’soem

thisform.tambah.enabled=.t.

thisform.simpan.enabled=.f.

thisform.batal.enabled=.f.

thisform.keluar.enabled=.t.

thisform.grid1.SetFocus()

thisform.Refresh

RETURN

* Object GRID1 Procedure AfterRowCollChenge LPARAMETERS nColIndex

thisform.tampil

RETURN

* Object KELUAR Procedure Click SELECT tmpjurnal

SET DELETED OFF

PACK

thisform.Release

RETURN

B. TUGAS V: Buatkan Form Jurnal dari Tugas III di atas.

39

AMIK Al Ma’soem

BAGIAN VI Tujuan :

1. Membuat Report Jurnal Umum 2. Grouping

A. BAHAN PRAKTEK VI 6.1 Membuat Report Laporan Jurnal

Formula : Data Grouping : Jurnal.nobukti Nomor Bukti : Jurnal.NoBukti Tanggal Transaksi : Jurnal.tanggal Nomor Perkiraan : Jurnal.noper Nama Perkiraan : Perkiraan.namaper Debet : Jurnal.debet Kredit : Jurnal.kredit

40

AMIK Al Ma’soem

6.2 Membuat Form Laporan Jurnal

* Object FORM1 Procedure LOAD SET DEFAULT TO O:\SKA\KELAS\NAMA\DATA

CLOSE DATABASES

CLOSE INDEXES

SET DATE BRITISH

SET EXACT ON

IF USED("perkiraan")

USE IN perkiraan

ENDIF

IF USED("jurnal")

USE IN jurnal

ENDIF

SELECT 1

USE perkiraan

SET ORDER TO tag Noper

SELECT 2

USE jurnal

SET ORDER TO TAG NOBUKTI

SET RELATION TO NOPER INTO PERKIRAAN

RETURN * Object FORM1 Procedure UNLOAD CLOSE DATABASE CLOSE INDEX USE IN JURNAL * Object FORM1 Procedure ACTIVATE thisform.t1.year=YEAR(DATE())

thisform.t2.day=day(DATE())

thisform.t2.month=month(DATE())

thisform.t2.year=YEAR(DATE())

return * Object CETAK Procedure CLICK ta=thisform.t1.day

41

AMIK Al Ma’soem

ma=thisform.t1.month

ya=thisform.t1.year

tb=thisform.t2.day

mb=thisform.t2.month

yb=thisform.t2.year

tgl1=STR(ta)+"/"+STR(ma)+"/"+STR(ya)

tgl2=STR(tb)+"/"+STR(mb)+"/"+STR(yb)

SELECT jurnal

SET FILTER TO tgltran>=CTOD(tgl1) .and.;

tgltran<=CTOD(tgl2)

REPORT FORM d:\SKA\prg\jurnal preview

RETURN

* Object KELUAR Procedure CLICK thisform.release

RETURN

B. TUGAS VI Buatkan Laporan Jurnal untuk Tugas V di atas.

42

AMIK Al Ma’soem

BAGIAN VII Tujuan :

1. Membuat Report Neraca Saldo 2. Penggunaan File Mirror

A. BAHAN PRAKTEK VII 7.1 Table Temporary (Miror) dibuat pada Free Table Nama Table : TMPPER Primary Key : -

7.2 Report Neraca Saldo

43

AMIK Al Ma’soem

Formula : Per : cmonth(tmpper.tanggal)+" "+str(year(tmpper.tanggal),4) Header : IIF( Tmpper.noac="1","AKTIVA",IIF( Tmpper.noac="2","UTANG","MODAL")) Nama Perkiraan : tmpper.namaper Saldo : tmpper.saldoj (Format exp : 999,999,999,999 ; alignment : right) Total : iif(left(tmpper.noper,1)="1","Aktiva",iif(left(tmpper.noper,1)="2","Utang","Modal")) Tmpper.saldoj (Format exp : 999,999,999,999 ; alignment : right ; calculation type : sum ; reset based

on : Group tmpper.noac) Laba berjalan : tmpper.laba Selisih : tmpper.selisih Total Pasiva : tmpper.pasiva 7.3 Form Laporan Neraca Saldo

44

AMIK Al Ma’soem

* Object FORM1 Procedure LOAD SET TALK OFF

SET DEFAULT TO O:\ska\kelas\nama\data

SET DATE BRITISH

SET CENTURY ON

CLOSE DATABASES

CLOSE INDEXES

IF USED("Perkiraan")

USE IN perkiraan

ENDIF

IF USED("TMPPER")

USE IN tmpper

ENDIF

SELECT 1

USE PERKIRAAN

SET ORDER TO TAG NOPER

SELECT 2

USE tmpper

SET ORDER TO TAG NOPER

RETURN

* Object FORM1 Procedure UNLOAD CLOSE DATABASE

CLOSE INDEX

RETURN

* Object FORM1 Procedure ACTIVATE thisform.tgl.day=DAY(DATE())

thisform.tgl.month=month(DATE())

thisform.tgl.year=year(DATE())

return * Object CETAK Procedure CLICK d=thisform.tgl.day

m=thisform.tgl.month

y=thisform.tgl.year

tgl1=STR(d,2)+"/"+STR(m,2)+"/"+STR(y,4)

tgl=CTOD(tgl1)

Vaktiva=0

Vutang=0

Vmodal=0

Vpend=0

Vhp=0

Vjasa=0

Vbiaya=0

Vpasiva=0

vselisih=0

vlaba=0

vp=0

45

AMIK Al Ma’soem

SELECT tmpper

SET DELETED OFF

DELETE ALL

PACK

APPEND FROM perkiraan FOR noac="1" .or. noac="2" .or. noac="3"

SELECT perkiraan

SUM saldoj FOR LEFT(noper,1)="1" TO vaktiva

SUM saldoj FOR LEFT(noper,1)="2" TO vutang

SUM saldoj FOR LEFT(noper,1)="3" TO vmodal

SUM saldoj FOR LEFT(noper,1)="4" TO vpend

SUM saldoj FOR LEFT(noper,1)="6" TO vbiaya

SUM saldoj FOR LEFT(noper,1)="5" TO vhp

SELECT TMPPER

DELETE ALL FOR saldoj=0

PACK

GO bottom

REPLACE Aktiva WITH vaktiva

REPLACE UTANG WITH vUTANG

REPLACE modal WITH vmodal

REPLACE pend WITH vpend

REPLACE biaya WITH vbiaya

REPLACE hp WITH vhp

vlaba=vpend-vhp-vbiaya

vp=vmodal+vutang+vlaba

vselisih=vaktiva-vp

vpasiva=vmodal+vutang+vselisih+vlaba

REPLACE LABA WITH vlaba

REPLACE selisih WITH vselisih

REPLACE pasiva WITH vpasiva

REPLACE ALL TGLTRAN WITH TGL

REPORT FORM O:\SKA\KELAS\NAMA\PRG\NERACA PREVIEW

RETURN

* Object KELUAR Procedure CLICK SELECT tmpper

SET DELETED OFF

PACK

thisform.Release

RETURN

B. TUGAS VII Buatkan Neraca Saldo untuk Tugas IV dan V. Buatkan Menu Program untuk kasus pada Tugas III di atas, dan buatkan procedure seperti pada praktek VII untuk menampilkan Neraca Saldo pada Tugas VII.

46

AMIK Al Ma’soem

BAGIAN VIII Tujuan :

1. Membuat Report Buku Besar 2. Form Untuk MemFilter Report

A. BAHAN PRAKTEK VIII 8.1 Report Laporan Buku Besar Nama Report : BukuBesar

Formula : Nama Perkiraan : Tmpjurnal.namaper Saldo Awal : Perkiraan.saldoa (Format exp. : 999,999,999,999 ; Alignment : Right) Tanggal Transaksi : Tmpjurnal.tanggal Catatan : Tmpjurnal.catatan Debet : Tmpjurnal.debet (Format exp. : 999,999,999,999 ; Alignment : Right) Kredit : Tmpjurnal.kredit (Format exp. : 999,999,999,999 ; Alignment : Right) Jumlah Debet : Tmpjurnal.debet (Format exp. : 999,999,999,999 ; Alignment : Right ; Calculate Type : Sum ; Reset Based On : Report) Jumlah Kredit : Tmpjurnal.kredit (Format exp. : 999,999,999,999 ; Alignment : Right ; Calculate Type : Sum ; Reset Based On : Report) Saldo Akhir : Perkiraan.saldoj (Format exp. : 999,999,999,999 ; Alignment : Right)

8.2 Form Laporan Buku Besar Nama Form : BukuBesar

47

AMIK Al Ma’soem

* Object FORM1 Procedure LOAD

SET DEFAULT TO o:\ska\kelas\Nama\data

SET TALK OFF

CLOSE DATABASES

CLOSE INDEXES

SET DATE BRITISH

SET EXACT ON

IF USED("perkiraan")

USE IN perkiraan

ENDIF

IF USED("jurnal")

USE IN jurnal

ENDIF

IF USED("tmpjurnal")

USE IN tmpjurnal

ENDIF

SELECT 1

USE perkiraan

SET ORDER TO tag Noper

SELECT 2

USE jurnal

SET ORDER TO TAG NOBUKTI

SELECT 3

USE tmpjurnal

SET ORDER TO TAG NoBukti

RETURN

* Object FORM1 Procedure ACTIVATE

THISFORM.T.DAY=DAY(DATE())

THISFORM.T.MONTH=MONTH(DATE())

THISFORM.T.YEAR=YEAR(DATE())

* Object CETAK Procedure CLICK

M=thisform.T.month

Y=thisform.T.year

48

AMIK Al Ma’soem

SELECT tmpjurnal

DELETE ALL

SET DELETED OFF

PACK

APPEND FROM jurnal FOR noper=TRIM(thisform.text1.Value) .and. ;

(MONTH(tgltran)=M .and. YEAR(tgltran)=Y)

SELECT perkiraan

LOCATE FOR noper=TRIM(thisform.text1.Value)

IF FOUND()

vsaldoa=perkiraan.saldoa

vsaldoj=perkiraan.saldoj

vnamaper=perkiraan.namaper

ELSE

vsaldoa=0

vsaldoj=0

vnamaper=""

ENDIF

SELECT TMPJURNAL

GO TOP

SUM DEBET TO DB

SUM KREDIT TO KR

IF LEFT(noper,1)="1" .or. LEFT(noper,1)="6"

SELISIH=DB-KR

ELSE

SELISIH=KR-DB

ENDIF

VSALDOJ=VSALDOA+SELISIH

REPLACE ALL SALDOA WITH VSALDOA

REPLACE ALL SALDOJ WITH VSALDOJ

REPLACE ALL NAMAPER WITH VNAMAPER

GO BOTTOM

IF EOF()

SELECT TMPJURNAL

APPEND BLANK

REPLACE SALDOA WITH VSALDOA

REPLACE SALDOJ WITH VSALDOJ

REPLACE NAMAPER WITH VNAMAPER

ENDIF

REPORT FORM o:\ska\kelas\Nama\prg\BukuBesar Preview

RETURN

* Object KELUAR Procedure CLICK

thisform.release

RETURN

* Object COMBO1 Procedure InteractiveChange

thisform.text1.Value=perkiraan.noper

49

AMIK Al Ma’soem

B. TUGAS VIII Buatkan Form dan Report untuk menampilkan Buku Besar dari hasil transaksi pada tugas sebelumnya.

50

AMIK Al Ma’soem

BAGIAN IX Tujuan :

1. Membuat Report Laba Rugi 2. Form Untuk MemFilter Report

A. BAHAN PRAKTEK IX 9.1 Report Laporan Laba Rugi Nama Report : LabaRugi

Formula : Per Bulan : cmonth(tmpper.tgltran)+" "+str(year(tmpper.tgltran),4) NamaPerkiraan : tmpper.namaper SaldoJ pada Group Noper : tmpper.saldoj (Format exp. : 999,999,999 ; Alignment : Right; Calculate

Type : Sum ; Reset Based On : Group TmpPer.Noper) Total : "Total "+iif(left(noper,1)="4","Pendapatan",iif(left(noper,1)="5", "HPP Penjualan",iif(left(noper,1)="6","Biaya",""))) SaldoJ pada Group Left(tmpper.noper,1) : tmpper.saldoj (Format exp. : 999,999,999 ; Alignment :

Right; Calculate Type : Sum ; Reset Based On : Group left(TmpPer.Noper,1)) Laba/Rugi : iif(tmpper.laba>0,"Laba ","Rugi ") Jumlah Laba/Rugi : tmpper.laba (Format exp. : 999,999,999 ; Alignment : Right)

51

AMIK Al Ma’soem

9.2 Form Laporan Laba Rugi Nama Form : LabaRugi

* Object FORM1 Procedure LOAD

SET DEFAULT TO o:\ska\kelas\Nama\data

SET TALK OFF

CLOSE DATABASES

CLOSE INDEXES

IF USED("jurnal")

USE IN jurnal

ENDIF

IF USED("TMPJURNAL")

USE IN tmpjurnal

ENDIF

SELECT 1

USE JURNAL

SET ORDER TO TAG NOPER

SELECT 2

USE perkiraan

SET ORDER TO TAG NOPER

SELECT 3

USE tmpper

SET ORDER TO TAG NOPER

SELECT 4

USE tmpjurnal

SET ORDER TO TAG NOPER

RETURN

* Object FORM1 Procedure ACTIVATE

thisform.tgl.day=DAY(DATE())

thisform.tgl.month=month(DATE())

thisform.tgl.year=year(DATE())

return

* Object CETAK Procedure CLICK

SET DATE BRITISH

SET CENTURY ON

m=thisform.tgl.month

y=thisform.tgl.year

SELECT tmpjurnal

SET DELETED OFF

DELETE ALL

52

AMIK Al Ma’soem

PACK

APPEND FROM jurnal FOR MONTH(tgltran)=m .and. YEAR(tgltran)=y

DELETE FOR LEFT(tmpjurnal.noper,1)="1"

DELETE FOR LEFT(tmpjurnal.noper,1)="2"

DELETE FOR LEFT(tmpjurnal.noper,1)="3"

pack

GO top

DO WHILE ! EOF()

SELECT perkiraan

LOCATE FOR NOPER=tmpjurnal.noper

IF FOUND()

vnamaper=perkiraan.namaper

ELSE

vnamaper=""

ENDIF

SELECT tmpjurnal

REPLACE namaper WITH vnamaper

SKIP

ENDDO

SELECT tmpjurnal

GO top

DO WHILE ! EOF()

IF LEFT(noper,1)="4"

REPLACE saldoj WITH kredit-debet

ELSE

IF LEFT(noper,1)="5"

REPLACE saldoj WITH debet-kredit

ELSE

IF LEFT(noper,1)="6"

REPLACE saldoj WITH debet-kredit

ENDIF

ENDIF

ENDIF

SKIP

enddo

Vpend=0

Vjasa=0

Vbiaya=0

vlaba=0

vhp=0

SELECT tmpper

SET DELETED OFF

DELETE ALL

PACK

APPEND FROM TMPJURNAL

SELECT TMPPER

SUM saldoj FOR LEFT(noper,1)="4" TO vpend

SUM saldoj FOR LEFT(noper,1)="5" TO vhp

SUM saldoj FOR LEFT(noper,1)="6" TO vbiaya

SELECT tmpper

GO bottom

53

AMIK Al Ma’soem

REPLACE pend WITH vpend

REPLACE hp WITH vhp

REPLACE biaya WITH vbiaya

vlaba=vpend-vbiaya-vhp

REPLACE LABA WITH vlaba

SET ORDER TO TAG NOPER

IF EOF()

MESSAGEBOX("Laporan Laba Rugi tidak bisa ditampilkan"+CHR(13)+;

"Karena belum ada transaksi penerimaan dan Pengeluaran",;

0,"Mohon Maaf...")

RETURN

else

REPORT FORM O:\SKA\KELAS\NAMA\PRG\LABARUGI PREVIEW

endif

RETURN

* Object KELUAR Procedure CLICK

THISFORM.Release

RETURN

B. TUGAS IX Buatkan Report dan Form untuk menampilkan Laporan Laba/Rugi Perusahaan

54

AMIK Al Ma’soem

BAGIAN X

Tujuan :

1. Membuat Program Compiler File 2. Mengcopiler file menjadi file EXE

A. BAHAN PRAKTEK X : 1. Buatkan file Program pada Page Code, sbb :

CLOSE DATABASE all

CLEAR ALL

CLOSE ALL

SET TALK OFF

SET STAT OFF

SET AUTOSAVE ON

SET CENTURY ON

SET DATE BRITISH

SET DEFA TO O:\SKA\KELAS\NAMA\DATA

PUSH MENU _MSYSMENU

MODI WINDOWS SCREEN TITLE 'SISTEM INFORMASI KEUANGAN'

WITH _SCREEN

.VISIBLE=.T.

.WINDOWSTATE=2

.picture='D:\SKA\KELAS\NAMA\Gb\LATAR1.JPG'

ENDWITH

RELEASE ALL

DO o:\SKA\KELAS\NAMA\prg\menutama1.mpr

READ EVENTS

QUIT

2. Simpan dengan nama SKA.PRG 3. Klik kanan File SKA.PRG tersebut, kemudian pilih Set Main

4. Klik Build 5. Pilih Win32 executable / COM server (exe) 6. Pada kolom Option klik kota CheckBox Recompile All Files dan Display Errors

55

AMIK Al Ma’soem

6. Klik tombol OK

B. TUGAS X Buatkan Program Compiler untuk tugas anda seperti pada praktek ke XIII dan lakukan compiler pada tugas anda.

56

AMIK Al Ma’soem

BAGIAN XI Tujuan : Membackup File

11.1. Membuat Program Backup File Jurnal 1. Membuat Form BackUpJurnal

2. Procedure : * Object FORM1 Procedure ACTIVATE

set defa to o:\SKA\KELAS\NAMA\DATA

close data

close index

if used("jurnal")

use in jurnal

endif

set date BRITISH

set cent on

select a

use jurnal

a=date()

b=alltrim(left(cmont(a),3))

t=alltrim(right(str(year(a),4),2))

ext=".DBF"

e="JUR"

f=e+b+t+ext

thisform.text1.value=f

retu

57

AMIK Al Ma’soem

* Object FORM1 Procedure UNLOAD close data

close inde

retu * Object PROSES Procedure CLICK

thisform.proses.Enabled= .F.

nfp=alltrim(thisform.text1.value)

select jurnal

copy to o:\SKA\KELAS\NAMA\backup\&nfp

messagebox(“Backup File Jurnal sudah dilakukan”,0,;

”Perhatian..”)

thisform.release()

retu

* Object KELUAR Procedure CLICK

thisform.release()

retu

11.2. Membuat Program Backup File PERKIRAAN 1. Membuat Form BackUp Perkiraan

2. Procedure : * Object FORM1 Procedure LOAD

set defa to o:\SKA\KELAS\NAMA\DATA

close data

close index

if used("perkiraan")

use in perkiraan

endif

set date BRITISH

set cent on

select a

use perkiraan

RETURN

* Object FORM1 Procedure ACTIVATE a=date()

b=alltrim(left(cmont(a),3))

t=alltrim(right(str(year(a),4),2))

58

AMIK Al Ma’soem

ext=".DBF"

fp="PERK"

g=fp+b+t+ext

thisform.text1.value=g

retu

* Object FORM1 Procedure UNLOAD close data

close inde

retu

* Object PROSES Procedure CLICK

thisform.PROSES.Enabled=.f.

nfp=alltrim(thisform.text1.value)

select perkiraan

copy to o:\ska\kelas\nama\backup\&nfp

messagebox(“Backup File Perkiraan sudah dilakukan”,0,;

”Perhatian..”)

RETURN

* Object KELUAR Procedure CLICK

thisform.release()

retu

59

AMIK Al Ma’soem

BAGIAN XII Tujuan :

1. Membuat Program Tutup Buku 2. Membuat Program Pemindah Bukuan

12.1. Membuat Program Tutup Buku 1. Buka Menutama 2. Buka submenu Utility 3. Pilih prompt Tutup Buku 4. Ganti Result submenu menjadi Procedure 5. Ketik prosedur berikut : jawab=messagebox("Anda sudah membackup semua file ?",4+32+512,;

"Perhatian...!")

if jawab=6

ljwb=messagebox("Anda yakin mau mengosongkan semua file ?",;

4+32+256,"Perhatian...!")

if ljwb=6

close data

close index

set dele off

if used("jurnal")

use in jurnal

endif

SET DEFAULT TO o:\ska\kelas\nama\data

* Mengosongkan File Jurnal

use jurnal

dele all

PACK

USE

endif

endif

Messagebox(“File jurnal sudah dikosongkan...”,0,”Perhatian...”)

retur

12.2. Membuat Program Pemindah Bukuan 1. Pilih prompt Tutup Buku 2. Ganti Result submenu menjadi Procedure 3. Ketik prosedur berikut :

jawab=messagebox("Anda sudah membackup semua file ?",4+32+512,;

"Perhatian...!")

if jawab=6

ljwb=messagebox("Anda yakin mau memindah bukukan ?",4+32+256,;

"Perhatian...!")

if ljwb=6

close data

close index

60

AMIK Al Ma’soem

set dele off

IF USED("PERKIRAAN")

USE IN PERKIRAAN

ENDIF

SET DEFAULT TO o:\ska\kelas\nama\data

USE perkiraan

GO top

DO WHILE ! EOF()

REPLACE saldos WITH saldoa

REPLACE saldoa WITH saldoj

SKIP

enddo

endif

endif

MESSAGEBOX("Pemindahbukuan sudah dilakukan",0,"Perhatian...")

retur

12.3. Membuat Program Restore File 1. Pilih prompt Restore File 2. Ganti Result submenu menjadi Procedure 3. Ketik prosedur berikut : SET DEFAULT TO o:\ska\kelas\nama\data

jawab=messagebox("Anda sudah membackup semua file

?",4+32+512,"Perhatian...!")

if jawab=6

close data

close index

set dele off

if used("jurnal")

use in jurnal

endif

if used("PERKIRAAN")

use in PERKIRAAN

endif

use jurnal

dele all

PACK

USE

use PERKIRAAN

dele all

PACK

USE

do form o:\SKA\kelas\nama\prg\restfile.scx

endif

retur

61

AMIK Al Ma’soem

4. Buatkan Form RestFile sbb :

5. Procedure : * Object FORM1 Procedure ACTIVATE

set defa to o:\ska\kelas\nama\data

thisform.tgl.day=DAY(DATE())

thisform.tgl.month=MONTH(DATE())

thisform.tgl.year=year(DATE())

* Object FORM1 Procedure UNLOAD

close data

close inde

retu

* Object PROSES Procedure CLICK

tgl =thisform.tgl.day

bulan=thisform.tgl.month

tahun=thisform.tgl.year

do case

case bulan=1

bln="Jan"

case bulan=2

bln="Feb"

case bulan=3

bln="Mar"

case bulan=4

bln="Apr"

case bulan=5

bln="May"

case bulan=6

bln="Jun"

case bulan=7

bln="Jul"

case bulan=8

bln="Aug"

case bulan=9

bln="Sep"

case bulan=10

bln="Oct"

case bulan=11

bln="Nov"

62

AMIK Al Ma’soem

othe

bln="Dec"

endc

thn=right(STR(tahun,4),2)

ext=".DBF"

jur="JUR"

perk="PERK"

ju =jur +bln+thn+ext

per =perk+bln+thn+ext

use jurnal

appe from o:\ska\kelas\nama\backup\&ju

use

use perkiraan

appe from o:\ska\kelas\nama\backup\&per

use

messagebox(“Restore file sudah dilakukan”+chr(13)+;

“Silahkan anda periksa”,0,”Perhatian...”)

thisform.release()

RETURN

* Object KELUAR Procedure CLICK

thisform.release()

retu

63

AMIK Al Ma’soem

DAFTAR PUSTAKA

Asroel Kamal. (2009). “Panduan Laporan Keuangan dengan MYOB”. Media Kita.

Aryanto, S.E., Ak. (2003). “Tip dan Trik Pemrograman Profesional Microsoft Visual

FoxPro 6.0”. PT. Elex Media Komputindo. Jakarta.

Aryanto, S.E., Ak. (2002). “Pengolahan Database dengan Microsoft Visual FoxPro

6.0”. PT. Elex Media Komputindo. Jakarta.

Inge Martina, Ir. (2001). “Visual FoxPro 6.0 ; 36 Jam Belajar Komputer”. PT. Elex

Media Komputindo. Jakarta.

Sugiri – Eni Munarsih. (2008). “Akuntansi & Aplikasinya pada MYOB Accounting”.

Graha Ilmu.

Wahana Komputer. (2007). “Pengembangan Sistem Akuntansi bagi Usaha

Perdagangan Ritel dengan MYOB” Salemba Empat.