Kamis, 22 Maret 2012

PEMBUATAN APLIKASI DAN DATABASE FIREBIRD DISTRIBUSI



Setelah kita membuat Aplikasi menggunakan Visual Foxpro dan database Firebird, tentu saja kita ingin membuat file instalasi dan kita  distibusikan kepada client kita. Pertama kita pisahkan antara folder Aplikasi dan Folder Database. Sebagai contoh kita telah membuat aplikasi perhitungan pajak. Kita letakkan folder Aplikasi kita di C:\AplikasiPajak, dan database nya di dalam folder C:\DBPajak\

  •  File yang harus dipersiapkan untuk Folder Aplikasi (C:\AplikasiPajak\) adalah :
·         File exe untuk aplikasi foxpro beserta file dll nya : vfp9r.dll, VFP9RENU.DLL, msvcr71.dll
·         File-file library dari firebird, ada beberapa file yang harus disertakan :
1.       fbclient.dll
2.       firebird.conf
3.       GDS32.DLL
4.       ib_util.dll
5.       icudt30.dll
6.       icuin30.dll
7.       icuuc30.dll

  •  File dan folder yang harus dipersiapkan untuk Folder Database (C:\DBPAJAK\) adalah :
1.       Folder DB : berisi file database *.FDB/GDB
2.       Folder Bin
3.       Folder Intl
4.       Folder Lib
5.       Folder UDF
6.       Folder Misc
7.       aliases.conf
8.       firebird.conf
9.       firebird.msg
10.   GDS32.DLL
11.   security2.fdb

Membuat file untuk menyalakan/mematikan Service Firebird database

Database Firebird itu berjalan di dalam service  Windows, jadi database ini hidup terus walaupun aplikasi kita tutup. Nah untuk mematikan dan menghidupkannya secara manual kita bisa langsung menggunakan  service di windows, caranya masuk  ke menu Start > Control Paneh > Administrative Tools > Service. Cari Firebird Guardian dan Firebird Server, klik tombol Kanan lalu pilih STOP/START.

Alangkah repotnya kita menggunakan cara manual ini hanya untuk sekedar menghidupkan dan memamtikan database Firebird. Nah kali ini kita akan membuat sebuah file yang bisa menghidupkan database dan mematikan secara otomatis.

File untuk menghidupkan database

Buka notepad lalu copykan tulisan berikut :

@echo off
netsh firewall add allowedprogram c:\DBPajak\bin\fbguard.exe DBPAJAK
netsh firewall add allowedprogram c:\DBPajak\bin\fbserver.exe DBPAJAK
netsh advfirewall firewall add rule name=DBPAJAK dir=in action=allow program=c:\DBPajak\bin\fbguard.exe enable=yes
netsh advfirewall firewall add rule name=DBPAJAK dir=in action=allow program=c:\DBPajak\bin\fbserver.exe enable=yes
c:\DBPajak\bin\instsvc.exe stop
c:\DBPajak\bin\instsvc.exe Remove
c:\DBPajak\bin\instsvc.exe install -g
c:\DBPajak\bin\instsvc.exe start 

Simpan notepad diatas dengan nama hidupkanDB.bat.

Penjelasan :
  • Empat baris diatas digunakan untuk melewatkan firewall  di windows XP/Vista/Seven
  • Baris ke 5 s.d. 8 digunakan untuk menyalakan service firebird 

File untuk mematikan database

Buka notepad lalu copykan tulisan berikut :

@echo off
c:\DBPajak\bin\instsvc.exe stop
c:\DBPajak\bin\instsvc.exe Remove

save us file notepad diatas dengan nama matikanDB.bat
Copykan 2 file diatas yaitu file hidupkanDB.bat dan matikanDB.bat ke dalam folder C:\DBPAJAK\.

Pembuatan File Instalasi

Langkah terakhir adalah pembuatan file instalasi untuk kedua folder kita yaitu C:\AplikasiPajak dan folder C:\DBPajak\. Anda dapat menggunakan software berikut :

  1. InnoSetup : software instalasi gratis, anda dapat mendownload nay di  http://www.jrsoftware.org/isdl.php
  2. Winrar : software kompresi yang gratis juga
 setelah Database terinstall, anda dapat langsung menjalankan otomatis file hidupkanDB.bat, sehingga service database Firebird langsung menyala...

Ok sementara sampai disini ya pembahasan pembuatan file instalasi menggunakan Visual Foxpro dan Firebird, untuk artikel selanjutnya adalah menyalakan file Log SQL database firebird dalam development aplikasi

Sabtu, 10 Maret 2012


PENGENALAN DATABASE FIREBIRD 

KENALAN DULU 

     Database firebird? Database apaan lagi nih? Itu mungkin yang jadi pertanyaan di benak kita, kita biasa mengenal jenis database lain yang sangat populer yaitu MySQL, PostgreSQL dan Oracle. Nah Firebird ini adalah salah satu database favorit saya, karena apa? ini dia alasannya :
  1. Sifatnya yang OpenSource
  2. Lisensinya gratis 
  3. Sangat kecil dan ringan. 


     Firebird adalah versi open source nya dari database Interbase. Saat ini versi yang terakhir adalah versi 2.5.1, untuk mendownload nya anda dapat menuju situs nya di http://www.firebirdsql.org. Biasanya pengguna database firebird ini adalah programer Delphi. Programer lain jarang yang menggunakannya. Padahal di Firebird tersedia ODBC, jadi kita bisa mengaksesnya menggunakan bahasa program apapun.  Contoh aplikasi terkenal yang menggunakan database Firebird adalah Zahir Accounting dan Accurate Accounting, lagi-lagi aplikasi itu dibuat menggunakan Delphi. Karena saya biasa menggunakan visual foxpro maka contoh disini saya gunakan koding visual foxpro ya, programer lain jangan sirik. Hehehehe 

DOWNLOAD DAN INSTAL

Tanpa banyak cing cong langsung mulai saja yah....
  1.   Download Database Firebird dan ODBC dari situsnya di www.firebirdsql.org
  2.   Instal database firebird
  3.  Instal ODBC Firebird
    Database firebird itu hanya terdiri dari satu file saja, yaitu file *.FDB/*.GDB, walaupun anda membuat 1000 tabel didalamnya maka tetap saja file databasenya hanya satu. Mirip sekali dengan file database Microsoft Access. Selain itu ekstension file bebas, sehingga kita bisa menyamarkan database aplikasi kita. Misalkan ekstension kita ganti menjadi *.AKU, *.KAU dll juga tidak masalah.

SOFTWARE UNTUK BROWSING 

Untuk browsing database firebird kita bisa menggunakan EMS SQL Manager 2010 lite, software ini gratis dan lebih enak digunakan dibandingkan software browsing yang lain, saya rekomendasikan ini kepada anda. Untuk mendapatkannya Anda dapat mendownloadnya disini.

Untuk koneksi ke dalam database firebird langkah-langkahnya adalah :
  •       Membuat koneksi host terlebih dahulu :

Lalu masukkan :

  1.  User : SYSDBA
  2.  Password : masterkey
  3.  Client Library : kita isi Fbclient.dll letaknya ada di dalam installer database firebird \ bin

  • Membuat database dan meregistrasi database. Klik tombol kanan file lalu pilih create database :



  • Buat file database lalu arahkan ke folder bebas, nama file bebas dan ekstension juga bebas. misalkan kita membuat database di folder C:\FBDB dengan nama db1.xxx. tekan tombol Save. Lalu Klik next dan finish

  • Langkah selanjutnya adalah membuat tabel-tabel di dalam database yang telah dibuat. pembahasan pembuatan tabel tidak saya bahas disini, karena anda dapat mencobanya sendiri dengan menggunakan menu pembuatan tabel yang ada. Percayalah sama saya gampang sekali...

  KELAS KONEKSI MENGGUNAKAN VISUAL FOXPRO

Setelah kita selesai membuat database dan tabelnya, selanjutnya mulailah kita membuat koneksi ke dalam database dengan menggunakan visual foxpro. Tata caranya adalah sbb :
  1. Bikin Project Baru
  2. Buka tab code
  3. Buat satu file PRG, yang akan kita isikan kelas koneksi ke dalam database Firebird.
  4. Simpan PRG ini dengan nama database.prg
DEFINE CLASS KelasDatabase as Custom

     
property property untuk method koneksi

      setip='127.0.0.1'
      setnmdb=''
      setuserid=''
      setpassword=''
      setport=0

*METHODE KONEKSI DATABASE

PROCEDURE p_koneksi()        
           
CKoneksi="Driver=Firebird/InterBase(r)driver;Uid="+this.setuserid+";
Pwd="+this.setpassword+";
DbName="+this.setip+"/"+STR(this.setport)+":"+this.setnmdb+";"

            STORE SQLSTRINGCONNECT(CKoneksi) TO Con
            IF con< 1
                  aerror(laErr)
                  messageb(laErr(2), 64, "Connection Fail")
            ELSE
                  =MESSAGEBOX("Koneksi berhasil")    
            ENDIF
      ENDPROC
ENPROC   

ENDDEFINE

MEMBUAT OBYEK KELAS KONEKSI

Untuk memanggil Kelas Koneksi diatas kita perlu membuat obyek nya terlebih dahulu. caranya : 
  1. Deklarasi Variabel misalnya : Public OCon. Variabel Ocon ini adalah obyek nya.
  2. Isikan Property-property koneksi
  3. Panggil methode koneksi
OCon.setip=127.0.0.1
OCon.setnmdb='C:\FBDB\db1.XXX'
OCon.setuserid='SYSDBA'
OCon.setpassword='masterkey'
OCon.setport=3050
OCon.p_koneksi()

Jika tidak ada permasahan, maka akan keluar messsagebox bahwa koneksi telah berhasil. 

Untuk query selanjutnya kita dapat menggunakan SQL Pass Through menggunakan SQLEXEC(con,perintah SQL,Cursor) dan seterusnya.

Untuk pengenalan dan koneksi database Firebird sekian dulu ya. nanti akan kita bahas tata cara pembuatan file instal database yang akan kita distribusikan bersama aplikasi kita untuk client.




   



DOKUMENTASI PROGRAM


       Kelemahan kita sebagai programer selama ini khususnya di Indonesia adalah tidak adanya dokumentasi/catatan kecil dalam pengembangan aplikasi, kalaupun ada hanya sekedarnya. Alasan yang paling utama adalah rasa  malas. Padahal dengan adanya dokumentasi, aplikasi yang kita kembangkan akan lebih rapi dan lebih mudah untuk pengembangan selanjutnya. Secara jujur kita selama ini tidak pernah mendokumentasikan aplikasi kita, jangankan koding punya orang lain , bahkan koding aplikasi kita sendiri yang kita buat 1-2 bulan yang lalu saja ketika akan kita ubah, kita pusing membaca koding kita sendiri, karena kita lupa. Oleh karena itu supaya lebih mempermudah kita memahami koding yang kita buat dan mempermudah orang lain, maka diperlukan dokumentasi yang bagus.

           Dokumentasi memang secara umum ada standarnya, namun sebenernya kalau boleh dibilang tata cara dokumentasi itu bebas, yang paling penting adalah mudah untuk dibaca kembali oleh kita maupun programer lain. Sistem dokumentasi yang paling ideal adalah menggunakan UML (Unified Modeling Language) dimana didalamnya banyak sekali diagram-diagram yang harus dibuat. Namun kita tidak akan mengadopsi seluruh diagram yang ada di dalam UML,kita akan gunakan 1,2 diagram saja. Yaitu Class Diagram dan Activity Diagram. 

           Untuk activity diagram bentuknya sama dengan SOP sebenernya, nanti akan kita gunakan jika ada kasus saja. Yang paling wajib kita gunakakan adalah Class Diagram, jika tata cara programing kita sudah mengadopsi OOP (Object Oriented Programming)

Software yang akan kita gunakan untuk membuat 2 diagram ini adalah :
  1. StarUML : bersifat free dan opensource, tata cara penggunaannya juga mudah, untuk mendownloadnya anda dapat menuju link ini.
  2. Microsoft Word : untuk penjelasan diagram-diagram yang kita buat.
1.      ACTIVITY DIAGRAM

Activity diagram sebenernya sangat mirip dengan diagram SOP. Didalamnya menjelaskan siapa saja yang berperan dan aktivitas apa yang dilakukan. Contohnya adalah perekaman customer baru.


   Diagram diatas menjelaskan tentang adanya 2 orang yang terlibat yaitu Customer dan Administrator. Sedangkan aktivitas yang dilakukan Cutomer adalah menyerahkan KTP ke Administrator lalu Administrator merekam datanya ke dalam aplikasi, selanjutnya mencetak kartu anggota dan menyerahkan kartu tersebut ke customer.

     2.  CLASS DIAGRAM
   
Kita tentu mengenal konsep ERD (Entity Relationship Diagram) yang isinya adalah relasi antar tabel. Class Diagram adalah penggambaran relasi/ hubungan antar kelas. Apakah kelas itu sejajar atau merupakan turunan dari kelas induknya. Diusahakan tiap tabel yang kita gunakan di dalam aplikasi memiliki kelas yang kita gunakan untuk mengakses data.

Contoh kita membuat 2 kelas yang mewakili 2 tabel, yaitu tabel departemen, dan tabel unit.


DEFINE CLASS KelasDep as Custom
      kddept=''        
      nmdept=''
     
      PROCEDURE p_caridept(ckd)
     
      ENDDEFINE

ENDDEFINE

DEFINE CLASS KelasUnit as KelasDep
     
      kdunit=''        
      nmunit=''
     
      PROCEDURE p_cariunit(ckddept,ckdunit)
           
      ENDDEFINE

ENDDEFINE

Gambar class diagramnya adalah :


Terlihat bahwa kelas unit tidak perlu kita definisikan lagi property kddept, sebab di kelas induk nya (KelasDepartemen) property kddept sudah di ada. Kelas Unit meliki panah keatas yaitu ke KelasDepartemen, hal ini menunjukkan bahwa KelasUnit adalah turunan dari Kelas Departemen. 










OBJECT ORIENTED PROGRAMMING (OOP) DI VISUAL
FOXPRO PART 4

ENCAPSULATION

            Dalam mendeklarasikan property dan method di dalam class terkadang kita perlu menyembunyikan informasinya (encapsulation), supaya tidak digunakan oleh programer lain secara sembarangan, bahkan terhadap diri kita sendiri yang membuat kelas tersebut. Tujuannya adalah mengurangi kesalahan koding dalam menggunakan kelas tersebut. Jenis encapsulation di Visual Foxpro ada 2 jenis yaitu  HIDDEN dan PROTECTED. Ini berlaku untuk Propery dan Method.

  •   HIDDEN : property/method tersebut hanya bisa digunakan dalam  kelas tersebut. Tidak bisa diakses menggunakan obyek.
  •   PROTECTED : property/ method tersebut bisa digunakan dalam kelas tersebut dan kelas turunannya, namun tetap tidak bisa diakses menggunakan obyek.

Syntax :

      HIDDEN/PROTECTED <<property>>
      HIDDEN/PROTECTED PROCEDURE <<method>>()
      ENDPROC

Pertanyaannya kapan kita menggunakan encapsulation? Jika property/method tersebut TIDAK BOLEH kita ubah dari luar menggunakan obyek. Contoh :
Kita membuat Kelas rumus perhitungan lembur. Dimana tarif lembur sudah fix yaitu 1000 per jam (tidak boleh diubah-ubah), Sedangkan jumlah maksimum jam yang diijinkan adalah 5 jam. Jika ada pegawai yang lembur diatas 5 jam maka yang dibayar tetap 5 jam saja.

DEFINE CLASS KelasLembur as Custom
     
      HIDDEN tariflembur
     
      tariflembur=1000
      jam=0
      hasil=0
     
      HIDDEN PROCEDURE maxlembur()
            IF this.jam>5
                  this.jam=5
            ENDIF
      ENDPROC
     
      PROCEDURE hitunglembur()

            this.maxlembur() && method pembatasan jam lembur dijalankan

            this.hasil=this.jam * this.tariflembur

      ENDPROC
ENDDEFINE


   Hidden Property : tariflembur. Property ini tidak boleh diubah dari luar, sehingga ketika kita hendak mengakses menggunakan obyek akan terkunci, dan akan eror ketika akan diisi dengan nilai yang lain misalkan menjadi 5.000 atau 10.000. Property yang boleh diakes hanyalah jam dan hasil saja.


Terlihat property diatas terdapat gambar grendel/kunci. Misalkan akan kita ubah isinya menjadi 50.000 maka akan keluar eror sbb :

      Hidden Method : maxlembur(). Method ini akan membatasi jumlah jam lembur yang dibayar, misalkan ada pegawai yang lembur diatas 5 jam, maka yang dibayar tetap 5 jam. Method  ini tidak boleh diubah dari luar, sehingga ketika kita hendak mengakses menggunakan obyek akan terkunci.


             Terlihat method diatas terdapat gambar grendel/kunci. Misalkan akan kita panggil menggunakan obyek, akan keluar eror.Method hitunglembur() saja yang bisa dipanggil dari obyek.
            
       Untuk yang jenis PROTECTED sebenarnya sama dengan HIDDEN, bedanya untuk kelas turunannya dapat memanggil nilai property dan method kelas induknya, namun tetap saja tidak bisa dipanggil dari obyek.  


Kesimpulan : Encapsulation digunakan untuk mencegah pengaksesan propery/method dari luar (dari Obyek) untuk menghindari kesalahan kita dalam memanggil property/method. 










OBJECT ORIENTED PROGRAMMING (OOP) DI VISUAL FOXPRO PART 3



INHERITANCE (PEWARISAN)

      Salah satu kehebatan terbesar OOP adalah inheritance atau pewarisan dimana suatu kelas  bisa mewarisi seluruh property dan method kelas-kelas diatasnya, sehingga dalam membuat kelas baru kita tidak perlu mendefinisikan ulang propery dan method nya. Contoh :

DEFINE CLASS KelasTambah AS Custom
      nilai1=0
      nilai2=0
      hasil=0
     
      PROCEDURE tambah()
            this.hasil=this.nilai1+this.nilai2
      ENDPROC
ENDDEFINE

DEFINE CLASS KelasKurang AS KelasTambah
     
      PROCEDURE kurang()
            this.hasil=this.nilai1-this.nilai2
      ENDPROC
     
ENDDEFINE

KelasKurang adalah anak (sub class), sedangkan KelasTambah adalah bapaknya (super class). Sintax nya adalah penggunaan AS + KELAS BAPAK di dalam define class. Maka ketika menjadi obyek, KelasKurang akan memiliki property nilai1,nilai2 dan hasil dan juga memiliki procedure tambah(), sehingga kita tidak perlu mendefinisikan ulang property dan method nya. Cara pemanggilannya adalah 

  1. Kita buat obyek dengan nama Okurang
  2. Panggil Kelas Kurang dan dimasukkan ke obyek Okurang

oKurang=NEWOBJECT('KelasKurang','referensi.prg')
okurang.nilai1=10
okurang.nilai2=7
okurang.tambah()
okurang.kurang()

MESSAGEBOX(okurang.hasil)

Nilai property Okurang.hasil akan didapatkan dengan pemanggilan tambah() ataupun kurang(). Lihatlah di dalam kelas Kurang kita hanya membuat methode baru kurang() saja, namun obyek yang dibuat berdasarkan kelas ini akan memiliki property nilai1,nilai2 dan hasil dan methode tambah().




Gimana enak kan? jadi kita tidak perlu repot-repot deklarasi variabel dan procedure/function baru lagi.


Kesimpulan : Dengan konsep inheritance ini kita hanya perlu mendeklarasikan property dan methode baru saja yang belum ada di kelas induknya, sehingga akan lebih cepat dalam membuat program.












I


OBJECT ORIENTED PROGRAMMING (OOP) DI VISUAL FOXPRO PART 2



Membuat Object 


Kelas yang telah dibuat sebelumnya tidak bisa berjalan sendiri, namun harus dimasukkan ke dalam object (obyek) ketika akan digunakan. Yang harus dilakukan untuk membuat obyek adalah :

1.      Deklarasi variabel 

PUBLIC oSatker

2.      Pemanggilan kelas

oSatker=NEWOBJECT('KelasSatker','referensi.prg')

KelasSatker adalah nama kelas di define class, sedangkan referensi.prg adalah tempat kita meletakkan KelasSatker.
     
3.      Mengakses property/method dengan menyebutkan :
NAMA OBYEK + . (titik) + PROPERTY/METHOD

oSatker.p_carisatker(‘527010’)
osatker.nmsatker=’’
osatker.kddept=’’

4.  Property-property nmsatker,kddept, dan kdkppn itu otomatis menjadi variabel, sehingga di dalam file report kita tidak perlu lagi membuat variabelnya, cukup obyek+property itu kita letakkan di dalam file report maka nilainya akan muncul.




Bandingkan dengan pemprograman prosedural dimana kita mendeklarasikan variabel-variabel lagi untuk dipasang di report. Gimana kalau yang membuat aplikasi itu ada 5 orang, bisa dipastikan deklarasi variabel akan berbeda-beda untuk tiap orang yang mereka letakkan di Form/report mereka.

Kesimpulan : Dengan membuat obyek yang di dalamnya sudah kita pasang property (variabel) dan methode (procedure). Pembuat program tidak perlu lagi mendeklarasikan variabel dan membuat procedure/function  ber-ulang-ulang. sebab sudah disediakan semua di dalam class.

Untuk tulisan selanjutnya akan kita bahas tentang Inheritance atau penurunan sifat di dalam kelas..


Senin, 05 Maret 2012

OBJECT ORIENTED PROGRAMMING (OOP) DI VISUAL FOXPRO PART 1


Membuat class di file PRG

Setelah kita mengetahui OOP di dalam Visual foxpro secara umum. Selanjutnya adalah kita mencoba mempraktekan pembuatan Class. Perumpamaan  Class itu seperti Cetakan Kue yang bisa digunakan untuk membuat Kue apa saja. Sintax untuk membuat class adalah :



DEFINE CLASS <<namakelas>> AS <<Kelas Induk/CUSTOM>> OF <<file asal.prg>>


      <<property>>

     

      PROCEDURE <<method>>

      ENDPROC


      ENDDEFINE
  1. Nama kelas kita definisikan dengan Kelas+Nama : misalkan KelasSatker,KelasPejabat dll
  2. AS Kelas Induk/Custom. Kelas induk adalah kelas bapak yang akan kita warisi sifat-sifatnya, atau Custom adalah kelas umum yang kita pilih.
  3. OF file asal.prg : jika Kelas Induknya itu berada di file PRG yang lain
  4. Property : adalah variabel-variabel yang akan kita isi nilainya
  5. Procedure: adalah method yang kita panggil untuk melakukan fungsi tertentu.
Contoh : saya mempunyai tabel bernama t_satker. di dalamnya ada beberapa kolom yaitu : nama satker(nmsatker), kode departemen (kddept), kode unit (kdunit), kode KPPN (kdkppn). kemudian kita buat class :

  1. Nama Class : KelasSatker
  2. Type Class : Custom
  3. Property : nmsatker,kddept,kdunit,kdkppn
  4. Method : p_carisatker(ckd) : digunakan untuk mencari satker dengan memasukkan paramter kode satker

DEFINE CLASS KelasSatker AS Custom
            nmsatker=''
            kddept=''
            kdunit=’’
            kdkppn=''
     
            PROCEDURE p_carisatker(ckd)
                  TEXT TO psql NOSHOW
                        SELECT * FROM t_satker WHERE kdsatker='<<ckd>>'
                  ENDTEXT
                  SQLEXEC(con,psql,'t_satker')
                  this.nmsatker=t_satker.nmsatker
                  this.kddept=t_satker.kddept
                  this.kdunit=t_satker.kdunit
                  this.kdkppn=t_satker.kdkppn
            ENDPROC
      ENDDEFINE



Simpan class diatas dengan nama referensi.prg

Pemanggilan property dan method menggunakan perintah THIS. (this titik).Seperti contoh diatas, untuk mengisikan nilai pada property-property nmsatker,kddept dll menggunakan this.nmsatker,this.kddept dst...
Untuk parameter seperti : ckd, tidak digunakan awalan THIS, sebab dia bukan anggota dari class, hanya sekedar parameter.


Dengan pembuatan procedure/method p_carisatker() maka kita akan mendapatkan 4 RETURN sekaligus, bandingkan dengan metode procedural yang hanya mampu menghasilkan 1 RETURN saja. Contoh pembuatan procedure menggunakan function biasa :

Setelah file class telah dibuat, tahap selanjutnya adalah pembuatan obyek class atau Kue-nya dari cetakan kue, kita bahas di tulisan berikutnya ya...




PEMPROGRAMAN VISUAL FOXPRO DENGAN PENDEKATAN OOP (OBJECT ORIENTED PROGRAMMING)


         Kita selama ini terbiasa menggunakan metode prosedural ketika mengembangkan aplikasi dengan Visual Foxpro. Buku-buku visual foxpro yang ada di toko buku pun hanya melulu menampilkan metode prosedural yaitu dengan variabel dan function. Oleh sebab itu untuk melangkah ke metode OOP diperlukan sedikit perubahan paradigma. Misal kita biasa menggunakan public variabel dan PRG, kita ubah menjadi Propery dan Methode di dalam Class. 

        Kita selalu mendeklarasikan variabel di FORM.LOAD, kita pindahkan variabel itu menjadi property di dalam class, lalu PRG-PRG yang kita gunakan, kita pindahkan sebagai method di dalam class, sehingga kita tidak perlu melakukan deklarasi variabel berulang-ulang di dalam berbagai form, cukup kita pasang class nya saja


         Pertanyaan...Kenapa OOP? disebabkan secara alamiah Visual Foxpro adalah adalah bahasa pemprograman berorientasi obyek. Syntax THISFORM. (thisform titik) adalah obyek, sedangkan syntax selanjutnya adalah property dan method. Kita terbiasa menggunakan perintah thisform.tampil, thisform.simpan, thisform.cetak. dsb. Yang mana  itu adalah syntax OOP yang selama ini kita tidak sadari.

            Pemprograman prosedural di dalam visual foxpro memiliki ciri-cirinya sbb :
  • Banyak menggunakan deklarasi variabel,
  • Banyak menggunakan procedure/function di dalam PRG atau method di dalam FORM
  • Melakukan perulangan koding di berbagai form. 
             Contohnya adalah pencarian nama  referensi untuk reporting, setiap form pencetakan akan melakukan perintah SEEK/LOCATE FOR untuk tabel referensi , kemudian nama variabelnya pun berbeda-beda untuk setiap report.

Keuntungan menggunakan metode OOP adalah :
  1. Mengurangi deklarasi variabel,PRG dan method di dalam form. Karena kita sudah mendeklarasikan di dalam class yang akan dipanggil di berbagai form/prg maupun report.
  2. Class yang digunakan oleh seorang programer bisa digunakan oleh programer yang lain, sehingga mengurangi perulangan koding.
  3. Dengan menggunakan class maka Standarasisasi pemprograman akan terjadi disebabkan penggunaan variabel, property dan method yang sama.
  4. Kumpulan class akan membentuk framework (kumpulan library), sehingga pengembangan Aplikasi akan lebih cepat di masa mendatang.