5
BAB II LANDASAN TEORI
2.1
Pengertian Bisnis Logik Menurut Whil Hentzen (2007, p2-3) prinsip dari aplikasi client/server
adalah adanya pihak yang bertindak sebagai server dan sebagai client. Server adalah bagian dari suatu aplikasi (komponen) yang bertugas menyediakan fungsifungsi bagi komponen yang lain dalam aplikasi tersebut. Sedangkan client adalah komponen yang menggunakan fungsi-fungsi yang telah disediakan oleh server tersebut. Pada aplikasi database dengan sistem client/server, aplikasi dapat dibagi menjadi 3 bagian utama, yaitu : a.
Presentation Logic : merupakan user interface, menampilkan data kepada user, menerima input dari user.
b.
Business Logic : berisi pengecekan data, dari dan ke database.
c.
Data Access Logic : berisi komunikasi dengan database misalnya pengaksesan tabel.
Aplikasi database dangan sistem client/server ini mempunyai beberapa macam arsitektur, yaitu : a.
Arsitektur Two-Tier.
b.
Arsitektur Three-Tier.
c.
Arsitektur N-Tier/multitier
5
6
2.1.1
Arsitektur Two-Tier.
Pada arsitektur Two-Tier ini dibagi menjadi 2 bagian utama yaitu data layer yang berisi data acces logic, dan sebuah layer yang berisi presentation logic dan business logic. Layer ini biasanya diletakkan pada aplikasi client. Sehingga ketika business logic berubah, aplikasi client harus dibuat kembali dan didistribusikan lagi ke semua client desktop. Selain itu kode yang tidak diperlukan (redundant code) pada business logic yang sama akan tersebar pada beberapa aplikasi client. Hal ini menimbulkan masalah dalam pemeliharaan (maintenance)
dan
consistencydari business logic dari sistem. Kedua masalah tersebut merupakan kelemahan umum dari sistem Two-Tier.
Gambar 2.1. Arsitektur Two-Tier. (www.tonymarston.net/uniface/3tiers2modelsXMLstreams.html)
2.1.2
Arsitektur Three-Tier.
Pada bagian arsitektur Three-Tier bagian presentation logic dan business logic sudah terpisah dalam 2 layer yang berbeda, yaitu presentation layer dan business layer. Sehingga bila diperlukan perubahan terhadap business logic, maka cukup dilakukan perubahan pada business layer saja. Hal ini dapat menghindari pendistribusian ulang aplikasi client ke semua client desktop.
7
Gambar 2.2. Arsitek ktur Three-T Tier. Sumber : www.tonymarstonn.net/uniface/3tiers2moodelsXMLsttreams.htmll)
2.1.3
Arrsitektur N--Tier/multitiier.
Pada arsiteektur N-Tieer atau multiitier terdapaat 1 atau lebbih businesss logic atau u data access loggic. Hal inii dapat terjjadi jika bu usiness logiic dibagi m menjadi beb berapa bagian, misalnya m bussiness logiic untuk maasing-masinng departem men dalam suatu perusahaaan. Demikiaan juga denngan datab base yang digunakan, d m ini pada sistem dapat diguunakan lebiih dari 1 daatabase. Keeuntungan dari d sistem iini adalah beban b dari businness logic dan data access a logicc dapat dibbagi ke beberapa komp puter. Selain itu dapat diguunakan sebaagai sistem cadangan, jadi j apabilaa business logic s mengaalami kerussakan maka dapat diipakai atau data access loogic yang satu l atau data d acces loogic yang laain. business logic
Gambaar 2.3. Arsittektur N-Tieer. Sumber : http://www h .tonymarsto on.net/unifaace/3Tier(2)).html Arsitekturr N-Tier attau multitieer dapat dikembangkaan menjadi arsitektur yang lebih besaar kegunaaannya, yaituu dengan menyediaka m an suatu m mekanisme yang
8
memungkinkan bagi presentation layer, business layer, dan juga data layer untuk tetap dapat berkomunikasi meskipun layer-layer tersebut dikembangkan dengan bahasa pemrograman dan sistem operasi yang berbeda. Hal ini dapat diwujudkan dengan menyediakan suatu komponen/object yang dapat menjadi perantara atau standard bagi layer-layer tersebut untuk saling berkomunikasi. Salah satunya adalah COM+.
2.2
Pengertian COM+ COM (Component Object Model) merupakan spesifikasi untuk menulis
software yang dapat digunakan kembali (reusable). COM juga merupakan model yang didasarkan pada binary reuse,
artinya bahwa komponen ini tidak
bergantung pada bahasa pemrograman untuk membuatnya. Di samping itu COM sendiri memakai sistem object-oriented.
2.2.1
Cara mengakses COM
Dalam mengakses COM ada dua cara yaitu a.
Early Binding. Cara ini melakukan pengikatan ke COM server dengan cara memberikan reference ke dalam aplikasi.
b.
Late Binding. Cara ini melakukan pengikatan ke COM server secara run time dengan menggunakan perintah CreateObject.
9
2.2.2
Arsitektur COM
COM terdiri dari dua macam yaitu a.
COM DLL
b.
COM EXE
Komponen ini dapat dijalankan pada komputer lain melalui remote, sebagian besar aplikasi client tidak peduli dimana lokasi file COM server berada. Gambar 2.1.4. berikut ini merupakan gambar sederhana yang menggambarkan hubungan antara COM Server dan COM Client untuk COM DLL.
Server DLL
Client Process
Server
Client
Gambar 2.4. Arsitektur COM DLL Sumber : Agus Kurniawan, Pemrograman COM, DCOM dan COM+ dengan Visual Basic 6.0
Sistem COM DLL menerapkan in-process yang mana DLL Server akan dibawa masuk ke dalam proses dari aplikasi client. Aplikasi client juga tidak dapat memproteksi proses penulisan yang dilakukan oleh DLL server sehingga hal ini terkadang membuat aplikasi menjadi crash.
10
Untuk COM EXE, kita dapat melihat struktur prosesnya pada gambar 2.1.5. Sistem windows akan mengijinkan COM EXE Server untuk memproteksi dirinya sendiri sehingga disediakan alokasi memori di lokasi tertentu.
Client Process
Client
Proxy Object
Server Process
DLL
DLL
Interface Proxy
Interface Stub
Interface Proxy
Interface Stub
Server
Gambar 2.5. Arsitektur COM EXE Sumber : Agus Kurniawan, Pemrograman COM, DCOM dan COM+ dengan Visual Basic 6.0
Proses yang terjadi di
COM EXE adalah out-process.
Hal inilah yang
menyebabkan performance-nya lebih rendah dibandingkan dengan COM DLL, karena ada cross-process antara EXE server dan aplikasi client. Komunikasi antara COM EXE server dan aplikasi client melalui proxy-stub DLL. Ketika COM EXE Server sedang running, EXE server akan menciptakan Interface Stub, sedangkan di sisi aplikasi client akan diciptakan interface proxy sehingga melalui interface inilah mereka berkomunikasi. Baik COM DLL maupun COM EXE masing – masing mempunyai kelebihan dan kekurangan. Semua tergantung pada kebutuhan yang kita inginkan.
11
2.2.3
Perbedaan COM DLL dan COM EXE
Perbedaan antara COM DLL dan COM EXE adalah COM DLL : a.
COM DLL tidak dapat melakukan inisialisasi untuk dirinya sendiri yang melakukannya ada di sisi client.
b.
Tidak mempunyai kemampuan untuk mengatur lifetime dari object yang dibuat client.
c.
Sangat efisien ketika kita menggunakan interface di sisi server.
d.
COM DLL mempunyai risiko yang berbahaya karena memori DLL server masuk ke proses aplikasi client sehingga dapat mengakses memori client. Ini yang membuat aplikasi client menjadi crash jika tidak berhati-hati dalam menanganinya.
e.
DLL server berjalan pada konteks security client. Ini artinya bahwa komponen DLL server mempunyai security dan identitas yang sama dengan aplikasi client.
COM EXE : a.
Berjalan dan melakukan inisialisasi diri sendiri
b.
Dapat mengontrol lifetime dirinya sendiri
c.
EXE Server menghasilkan class object ketika proses diinisialisasi dan diregister pada sistem sehingga aplikasi client cukup mengakses pointer interface dari COM EXE server.
d.
COM EXE umumnya kurang efisien dibandingkan dengan COM DLL karena COM EXE melakukan komunikasinya melalui proxy stub.
12
e.
COM EXE Server menerapkan proteksi pada aplikasi client, misalkan EXE Server menyediakan memori sendiri sehingga EXE Server tidak dapat menulis ke memori client.
f.
COM EXE Server mempunyai sistem security sendiri yang terpisah dari aplikasi client.
2.3
Pengertian Sistem Basis Data Menurut Connoly dan Begg (2002, p7), “ File-Based System adalah suatu
kumpulan dari program-program aplikasi yang menyediakan kegunaan tertentu kepada
users
seperti
pembuatan
laporan-laporan
”.
Setiap
program
mendefinisikan dan mengelola data-datanya sendiri. Namun penggunaan File Based System ini memiliki keterbatasan seperti : a.
Terjadi pemisahan dan isolasi data.
b.
Terjadi duplikasi data.
c.
Terjadi ketergantungan data kepada fungsi.
d.
Dapat menyebabkan bentuk file yang tidak cocok untuk suatu fungsi dengan fungsi lainnya (tidak kompatibel).
e.
Sulit mengembangkan fungsi-fungsi program aplikasinya
f.
Untuk mengatasi keterbatasan itu, digunakanlah pendekatan dengan
g.
menggunakan basis data dan DBMS (Database Management System).
2.3.1 Basis data Menurut Connoly dan Begg (2002, p14), “ Basis data didefinisikan sebagai sekumpulan data yang saling terhubung secara logikal, yang dirancang dalam
13
rangka memenuhi kebutuhan informasi dalam suatu organisasi ”. Tujuan utama pengelolaan data dalam basis data adalah agar kita dapat memperoleh data yang kita cari dengan mudah dan cepat. Pemanfaatan basis data dilakukan untuk memenuhi sejumlah tujuan seperti berikut ini : a.
Kecepatan dan kemudahan (speed)
b.
Efisiensi ruang penyimpanan (space)
c.
Keakuratan (accuracy)
d.
Ketersediaan (availability)
e.
Kelengkapan (completeness)
f.
Keamanan (security)
g.
Kebersamaan pemakaian (sharability)
Dalam penggunaannya, basis data memiliki beberapa keuntungan yaitu: a.
Mengurangi kesalahan yang disebabkan oleh faktor manusia. Tugas mekanis lebih baik dilaksanakan oleh mesin.
b.
Komputer dapat mengambil dan mengubah data lebih cepat dari manusia.
c.
Akurat dan informasi terbaru selalu tersedia setiap saat.
d.
Menghemat ruangan karena tidak perlu menyediakan ruangan penyimpanan kertas file yang sangat banyak.
2.3.2
Database Management System (DBMS)
Definisi Database Management System (DBMS) menurut Connoly dan Begg (2002, p16) adalah suatu sistem perangkat lunak yang memungkinkan user untuk mendefinisikan (define), membuat (create),
14
memelihara (maintain) basis data, dan menyediakan kendali dalam mengakses basis data. Menurut Connolly (2002, p18) DBMS memiliki 5 komponen, yaitu: a.
Perangkat keras (Hardware) DBMS membutuhkan perangkat keras untuk menjalankannya. Contohnya : single personal computer, single mainframe
b.
Perangkat lunak (Software) Karena seluruh kendali DBMS akan dilakukan oleh program aplikasi maka DBMS harus dapat dihubungkan ke program-program aplikasinya.
c.
Data Data yang digunakan oleh suatu organisasi harus didesain sedemikian rupa sehingga mudah untuk digunakan.
d.
Prosedur (procedures) Perintah-perintah yang harus dilakukan untuk menjalankan DBMS ini.
e.
Faktor manusia (People) Ini adalah masalah keterkaitan perilaku orang yang menggunakan sistem (user) dengan sistem DBMS yang sudah didesain sebelumnya.Manusia yang terlibat dengan sistem, termasuk dalamnya adalah : database administrator, perancang database, pengembang aplikasi dan pemakai akhir.
2.4. Database Design Menurut Connoly dan Begg (2004, p.17) Database design adalah proses menciptakan desain untuk basis data yang akan mendukung operasi dan tujuan perusahaan. Adapun tujuan utama dari konsep basis data adalah meminimumkan
15
pengulangan dan mencapai independensi data. Independensi data adalah kemampuan
untuk membuat perubahan dalam struktur data tanpa membuat
perubahan pada program yang memproses data. Independensi data dicapai dengan menempatkan spesifikasi dalam tabel dan kamus yang terpisah secara fisik dari program.
2.4.1
Conceptual Database Design
Menurut Connoly dan Begg (2002, p.419) “ perancangan basis data konseptual adalah proses membangun sebuah model informasi yang digunakan dalam sebuah perusahaan, bebas dari segala pertimbangan fisik “. Pada tahap ini melibatkan pembuatan dari konseptual data model dari perusahaan. Data model ini dibuat dengan menggunakan informasi yang di dokumentasikan dari spesifikasi kebutuhan user. Rancangan basis data konseptual ini bebas atau tidak terikat dengan detai-detail seperti target perangkat lunak DBMS, program aplikasi, bahasa pemrograman, platform perangkat keras atau dari perangkat fisik lainnya. Melalui tahapan rancangan basis data konseptual ini, model diuji dan divalidasi agar sesuai dengan kebutuhan user. langkah-langkahnya sebagai berikut: a.
Identifikasi tipe entity tipe entity adalah sekumpulan objek yang diindentifikasi oleh sebuah perusahaan atau perorangan yang
mempunyai sifat-sifat yang sama dan
mempunyai keberadaan yang independen b.
Identifikasi tipe relationship tipe relationship adalah sekumpulan hubungan antara satu atau lebih entitas
16
c.
Identifikasi dan asosiasikan atribut dengan entity-entity dan relationship yang telah kita pilih untuk digambarkan dalam database. Atribut adalah sebuah property entity atau sebuah tipe relationship.
d.
Menentukan atribut domain Domain Attribute adalah satuan nilai-nilai untuk satu atau beberapa attribute. Setiap attribute yang dihubungkan dengan sejumlah nilai disebut domain. Domain mendefinisikan nilai-nilai yang dimiliki sebuah attribute dan sama dengan konsep domain pada model relasional.
e.
Menentukan kandidat dan atribut-atribut primary key Menentukan kandidat key untuk setiap tipe entity dan jika ada lebih dari satu kandidat key untuk memilih satu untuk dijadikan primary key.
f.
Pertimbangan menggunakan konsep modeling yang menarik Untuk mempertimbangkan penggunaan konsep enchaned modeling, seperti spesialisasi, generalisasi, agregasi, dan komposisi.
g.
Periksa model untuk redundancy Pada langkah ini kita memeriksa model data konseptual lokal dengan objektif spesifik untuk mengidentifikasi apakah ada terjadi redundancy dan menghapus yang sudah ada.
h.
Validasikan konseptual model lokal yang bertentangan dengan transaksi user. Untuk meyakinkan bahwa model konseptual lokal mendukung transaksi yang dibutuhkan oleh tampilan.
i.
Mengulang model data konseptual lokal dengan user. Untuk mereview model data konseptual lokal dengan user untuk meyakinkan bahwa model adalah representasi yang nyata dari tampilan.
17
2.4.2
Logical Database Design
Menurut Connoly dan Begg (2002, p441) “ perancangan basis data logikal adalah proses membangun suatu model informasi yang digunakan dalam suatu perusahaan berdasarkan suatu model data khusus, tapi tidak tergantung kepada suatu DBMS tertentu dengan pertimbangan fisik lain “. Konseptual data model yang dihasilkan dari tahap sebelumnya diubah ke dalam logical data model. Logical data model dibuat berdasarkan target data model untuk basis data (sebagai contoh, relational data model). langkah-langkah dalam membuat rancangan basis data logikal adalah : a.
b.
Membangun dan memvalidasikan model data logikal untuk setiap view. •
Menghilangkan fitur-fitur yang tidak sesuai dengan model relasional
•
Membuat relations untuk model data logikal local
•
Memvalidasikan relations menggunakan normalisasi
•
Memvalidasikan relations pada transaksi-transaksi user
•
Mendefinisikan integrity constraints
•
Meninjau ulang model data logikal lokal dengan user
Buat dan validasikan model data logikal global •
Menggabungkan model-model data logikal lokal ke dalam model data global
•
Memvalidasikan model data logikal global
•
Mengecek pertumbuhan masa depan
•
Meninjau ulang model data logikal global dengan users
18
2.4.3
Physical Database Design
Adalah proses penjabaran dan penerapan dari basis data pada tempat penyimpanan kedua. Ini menjelaskan tentang pembuatan basis data, organisasi file, dan index yang digunakan untuk mencapai akses efisien data dan tindakan pengamanan.
2.5
Data Flow Diagram (DFD) Data Flow Diagram (DFD) merupakan salah satu alat bantu yang paling
penting bagi seorang analis sistem. Penggunaan DFD sebagai alat bantu dipopulerkan oleh Tom De Marco (1978) dan Gane & Sarson (1979) dengan menggunakan
pendekatan
metode
analisis
sistem
terstruktur.
DFD
menggambarkan aliran ataupun arus data dalam sebuah sistem, yang merupakan masukan maupun keluaran yang diperlukan dari sistem yang sedang dirancang. Dalam DFD terdapat beberapa tingkatan yaitu :
2.5.1
Diagram Konteks
Diagram konteks merupakan level tertinggi dari DFD yang menggambarkan keseluruhan input ke atau output dari sistem, dan hanya terdiri dari satu proses serta external entity yang terlibat. Diagram konteks memberikan gambaran keseluruhan sistem.
2.5.2
Diagram Nol
Diagram nol menggambarkan proses-proses penting yang terdapat pada suatu sistem. Pada diagram nol diperlihatkan data store yang digunakan. Setiap proses
19
yang digambarkan diberi nomor yang terdiri dari satu digit. Proses yang tidak dirinci lagi pada level selanjutnya (functional primitive) diberi tambahan tanda ‘*’ pada akhir nomor proses.
2.5.3 Diagram Rinci Diagram rinci merupakan rincian dari diagram nol atau diagram level di atasnya. Pada diagram rinci, nomor proses menunjukkan tingkat rincinya. DFD terdiri dari sejumlah simbol-simbol yang mewakili komponenkomponen sistem. Komponenkomponen tersebut adalah proses sistem, data yang digunakan dalam proses, eksternal entiti yang berinteraksi dengan sistem, dan aliran informasi dalam sistem. Secara umum simbol-simbol tersebut dapat digambarkan sebagai berikut : a.
Proses
Menggambarkan
apa
yang
dilakukan
oleh
sistem
dan
berfungsi
mentransformasikan satu atau beberapa data masukan menjadi satu atau beberapa keluaran sesuai dengan spesifikasi yang diinginkan.
b.
Eksternal Entity
Merupakan entitas yang berada di luar sistem yang berfungsi untuk memberikan data kepada sistem (source) atau yang menerima informasi dari sistem.
20
c.
Aliran Data
Menggambarkan aliran data dari suatu entiti ke entiti lainnya. Digambarkan dengan menggunakan garis lurus atau melengkung dengan anak panah yang menggambarkan arah aliran data.
d.
Data Store
Menggambarkan tempat penyimpanan atau penampungan data. Data store dapat berupa suatu file atau basis data di sistem komputer, arsip atau catatan manual, tabel acuan manual, agenda / buku, dan suatu kotak tempat data di meja seseorang.
2.6
Entity Relationship Diagram (ERD) Diagram yang digunakan untuk menggambarkan hubungan antara entitas
dalam suatu sistem. Komponen-komponen dalam ERD yaitu : a.
Entity adalah objek yang dapat diidentifikasikan dalam lingkungan pemakai, sesuatu yang penting bagi pemakai dalam konteks sistem yang akan dibuat. Entity disimbolkan dengan persegi panjang. Contoh :
staff staffNo
21
b.
Relationship adalah asosiasi antara satu atau beberapa entitas. Relationship disimbolkan garis Contoh :
POwns
PropertyForRent
ownerNo
propertyNo
c.
PrivateOwner
Cardinality merupakan hubungan antara entity satu dengan entity lainnya.
Contoh : PrivateOwner
POwns
PropertyForRent propertyNo 1..*
0..1
ownerNo
Jenis-jenis cardinality yaitu : 1
One to One
2
One to Many / Many to One
3
Many to Many
2.7
Normalisasi
Suatu desain basis data harus memenuhi kondisi untuk tidak mengandung anomali, yaitu suatu kejanggalan dari suatu penempatan atribut dari suatu obyek data. Untuk membedakan satu record dengan yang lainnya maka perlu dipilih atribut atau kombinasi atribut sebagai primary key. Syarat primary key adalah harus unik, jumlah kombinasi atribut minimum, dan tidak boleh mengandung nilai kosong (null). Tujuan dari normalisasi antara lain : a.
Menghilangkan kumpulan relasi dari insertion, update, dan delete dependency yang tidak diharapkan.
b.
Mengurangi kebutuhan restrukturisasi kumpulan relasi.
22
c.
Membuat model relasional lebih informatif.
Langkah-langkah normalisasi : a.
Normalisasi Pertama (1NF)
Suatu data dikatakan un-normalized, jika didalamnya mengandung kelompok berulang (repeating group), sehingga untuk membentuk normalisasi pertama (1NF) repeating group harus dihilangkan. Untuk menjadi 1stNF maka group yang berulang dihilangkan dengan mengisi pada bagian yang kosong dengan yang seharusnya pada suatu bentuk record. b.
Normalisasi Kedua (2NF)
Dapat dihasilkan dengan melihat apakah ada atribut bukan primary key yang merupakan fungsi dari sebagian primary key (partial dependence). Dalam normalisasi kedua (2NF) setiap atribut yang tergantung parsial ini harus dipisahkan dengan mengikut sertakan determinannya. Bentuk normal diperoleh bila setiap atribut bukan primary key dari suatu tabel sepenuhnya merupakan fungsi (fungsional dependence) dari primary key tersebut. c.
Normalisasi Ketiga (3NF)
Pengujian terhadap 3NF dilakukan dengan cara melihat apakah terdapat atribut bukan key tergantung fungsional terhadap atribut bukan key yanglain (disebut ketergantungan transitif atau transitive dependence). Dengan cara yang sama, maka setiap ketergantungan transitif dipisahkan. 3NF sudah cukup bagus dalam arti bahwa anomali yang dikandungnya sudah sedemikian minimum (hampir tidak ada).
23
d.
Normalisasi Keempat Boyce-Codd Normal Form ( BCNF)
Suatu relasi dikatakan BCNF bila di dalamnya berisi atribut yang berfungsi sebagai candidate key sehingga salah satu dari candidate key tersebut menjadi primary key. e.
Normalisasi MVD (4NF).
Dalam normalisasi ini kita mengenal adanya tipe baru dari ketergantungan (dependency)
yaitu
Multivalued
Dependency
(MVD),
yang
merupakan
generalisasi dari functional dependence. Atau sebaliknya, FD adalah peristiwa khusus dari MVD di mana himpunan nilai dependent berisi satu nilai saja. f.
Normalisasi PROJECT-JOIN NORMAL FORM (PJNF) / (5NF).
Suatu relation dapat terus dilakukan proses nonloss-decomposition sampai semua projection berada pada 5NF. Tetapi hal ini juga ada keterbatasan yaitu join dependency (JD), yaitu bila projection dapat dilakukan sehingga tidak ada nilai yang hilang, apabila di join kembali. JD adalah generalisasi dari MVD.
2.8
Pembuatan COM+ dengan Visual Foxpro 9.0
Session Object Pertama dikenalkan di VFP 6 SP3 Light-weight object Dispesialisasikan untuk COM Server Support Private Data Session Tidak dapat menjadi container object lain hanya bisa dibuat dengan code (non-vcx) Semua methods / properties secara otomatis akan di mark sebagai PROTECTED apabila di deploy sebagai COM SERVER. Class yang dibuat untuk COM Server harus di tandai sebagai OLEPUBLIC dalam UI Designer atau via code:
24
DEF FINE CLAS SS MYCLA ASS AS SES SSION OLE EPUBLIC
Gambar 2.6. 2 OLEPU UBLIC dalaam UI Desiggner
Sekaarang kita lihat bagaiimana mem mbuat COM M+ Compoonent denggan Visual Foxppro 9.0. Perttama kali kiita buat prooject dengan n nama hituung.pjx
Gambbar 2.7. Mem mbuat Projeect VFP 9.00
25
Kemudian buatlah program dengan nama mathclass.prg
Gambar 2.8. Membuat program mathclass.prg
Isi dengan kode program di bawah ini DEFINE CLASS Math AS SESSION OLEPUBLIC nNumber1 = 0 nNumber2 = 0 FUNCTION Add(tnOne AS Integer, tnTwo AS Integer) AS Integer LOCAL loMtx, loContext, lnResult loMtx = CREATEOBJECT("MTXAS.APPSERVER.1") loContext = loMtx.GetObjectContext() WITH This IF PARAMETERS() = 2 .nNumber1 = tnOne .nNumber2 = tnTwo ENDIF lnResult = .nNumber1 + .nNumber2 ENDWITH loContext.SetComplete() loContext = NULL loMtx = NULL RETURN lnResult ENDFUNC ***************** FUNCTION Multiply(tnOne AS Integer, tnTwo AS Integer) AS Integer LOCAL loMtx, loContext, lnResult loMtx = CREATEOBJECT("MTXAS.APPSERVER.1") loContext = loMtx.GetObjectContext() WITH This IF PARAMETERS() = 2 .nNumber1 = tnOne .nNumber2 = tnTwo ENDIF lnResult = .nNumber1 * .nNumber2 ENDWITH loContext.SetComplete() loContext = NULL loMtx = NULL RETURN lnResult ENDFUNC ENDDEFINE
26
Simpan program tersebut dan Build dari Project Manager. Setelah tampil Build Option Form pilihlah Multi-threaded COM server (DLL) kemudian klik OK.
Gambar 2.9. Buil project menjadi .dll Setelah selesai proses build akan menghasilkan dua file yaitu hitung.dll dan hitung.tlb , dua file inilah yang akan
kita
terapkan ke dalam Windows
Component Service (WCS).
2.9
Penerapan COM+ di Windows Component Service (WCS)
2.9.1
Install di Aplikasi Server
Langkah selanjutnya setelah selesai pembuatan komponen COM+ sekarang kita terapkan di dalam windows yang di organisasi didalam Windows Component Service. Langkah – langkahnya adalah sebagai berikut : a.
Bukalah Administrative Tools di dalam Control Panel Windows kemudian klik Component Service
Gambar 2.10. Component Service
27
b.
Bukalah Component Services Æ Computers Æ My Computer Æ COM+ Application.
Gambar 2.11. COM+ Application Klik kanan COM+ Applications Æ New Æ Application
Gambar 2.12. Membuat Application baru
Akan tampil form Application Install Wizard , klik Next untuk ke proses selanjutnya. Di Form Install or Create a New Application, kita pilih Create an empty application
28
Gambar 2.13. Install or Create an empty application
Isilah nama aplikasi kita misalkan My COM+ App. Pastikan klik Server Aplication untuk memilihnya kemudian tekan enter.
Gambar 2.14. Create Empty Application
Berikutnya akan tampil Set Application Identity, pilihlah default Interactive user kemudian klik next dan finish. Maka akan terbentuk sebuah Component Application baru yang kita bentuk tadi. Sekarang kita masukkan komponen
29
yang telah kita buat sebelumnya. Klik kanan component yang terdapat didalam My COM+ App yang kita buat tadi
Gambar 2.15. Membuat Compenent Baru
Klik next kemudian pilih Install new component
Gambar 2.16. Component Install Wizard
30
Kemudian pilihlah dua file yang telah terbentuk tadi untuk kita instal kemudian klik next dan finish
Gambar 2.17. Install new component
Setelah sukses kita instal maka komponen kita sekarang sudah berada dalam COM+ Aplications windows
Gambar 2.18. Aplikasi terinstall
2.9.2
Install proxy aplikasi di komputer client.
Proses diatas adalah proses instal komponen aplikasi kita di server. Untuk saat ini komputer client tidak tahu di server mana komponen kita terinstal. Yang kita
31
butuhkan agar semua komputer client tahu di komputer atau server mana komponen terintall, kita hanya perlu instal proxy informasi di komputer client. Di Component Service Wizard yang ada server dapat membuat paket instalasi proxy ke komputer client. Langkah – langkahnya adlaah sebagai berikut : Klik kanan komponen yang kita buat tadi kemudian klik export – kemudian klik next.
Gambar 2.19. Menu Export Proxy Akan tampil Application Export Information page, Isilah nama dan lokasi file yang di hasilkan. Dan pilihlah Application Proxy.
Gambar 2.20. Application Export Wizard
32
Dan file yang di hasilkan berupa install_com.msi dan install_com.cab. File inilah yang harus di install di masing-masing komputer client.
2.10
Pengertian Pajak PPh 21.
adalah pajak atas penghasilan berupa gaji, upah, honorarium, tunjangan, dan pembayaran lain yang diterima atau diperoleh Wajib Pajak orang pribadi dalam negeri sehubungan dengan pekerjaan atau jabatan, jasa, dan kegiatan.
2.10.1
Pemotong PPh Pasal 21
a.
Pemberi kerja yang terdiri dari orang pribadi dan badan.
b.
Bendaharawan pemerintah baik Pusat maupun Daerah.
c.
Dana pensiun atau badan lain seperti Jaminan Sosial Tenaga Kerja (Jamsostek), PT Taspen, PT ASABRI.
d.
Perusahaan dan bentuk usaha tetap.
e.
Yayasan, lembaga, kepanitia-an, asosiasi, perkumpulan, organisasi massa, organisasi sosial politik dan organisasi lainnya serta organisasi internasional yang telah ditentukan berdasarkan Keputusan Menteri Keuangan.
f.
Penyelenggara kegiatan.
2.10.2
Penerima penghasilan yang dipotong PPh Pasal 21
a.
Pegawai tetap.
b.
Tenaga lepas (seniman, olahragawan, penceramah, pemberi jasa, pengelola proyek, peserta perlombaan, petugas dinas luar asuransi), distributor MLM/direct selling dan kegiatan sejenis.
33
c.
Penerima pensiun, mantan pegawai, termasuk orang pribadi atau ahli warisnya yang menerima Tabungan Hari Tua atau Jaminan Hari Tua.
d.
Penerima honorarium.
e.
Penerima upah.
f.
Tenaga ahli (Pengacara, Akuntan, Arsitek, Dokter, Konsultan, Notaris, Penilai, dan Aktuaris).
2.10.3 a.
Penerima Penghasilan yang tidak dipotong PPh Pasal 21
Pejabat perwakilan diplomatik dan konsulat atau pejabat lain dari negara asing, dan orang-orang yang diperbantukan kepada mereka yang bekerja pada dan bertempat tinggal bersama mereka, dengan syarat: •
Bukan warga negara Indonesia dan
•
di Indonesia tidak menerima atau memperoleh penghasilan lain di luar jabatan atau pekerjaannya tersebut serta negara yang bersangkutan memberikan perlakuan timbal balik;
b.
Pejabat perwakilan organisasi internasional yang ditetapkan oleh Keputusan Menteri Keuangan sepanjang bukan warga negara Indonesia dan tidak menjalankan usaha atau kegiatan atau pekerjaan lain untuk memperoleh penghasilan di Indonesia.
2.10.4 a.
Penghasilan yang dipotong PPh Pasal 21 adalah :
Penghasilan yang diterima atau diperoleh pegawai atau penerima pensiun secara teratur berupa gaji, uang pensiun bulanan, upah, honorarium (termasuk honorarium anggota dewan komisaris atau anggota dewan pengawas), premi
34
bulanan, uang lembur, uang sokongan, uang tunggu, uang ganti rugi, tunjangan isteri, tunjangan anak, tunjangan kemahalan, tunjangan jabatan, tunjangan khusus, tunjangan transpot, tunjangan pajak, tunjangan iuran pensiun, tunjangan pendidikan anak, bea siswa, premi asuransi yang dibayar pemberi kerja, dan penghasilan teratur lainnya dengan nama apapun; b.
Penghasilan yang diterima atau diperoleh pegawai, penerima pensiun atau mantan pegawai secara tidak teratur berupa jasa produksi, tantiem, gratifikasi, tunjangan cuti, tunjangan hari raya, tunjangan tahun baru, bonus, premi tahunan, dan penghasilan sejenis lainnya yang sifatnya tidak tetap;
c.
Upah harian, upah mingguan, upah satuan, dan upah borongan yang diterima atau diperoleh pegawai tidak tetap atau tenaga kerja lepas, serta uang saku harian atau mingguan yang diterima peserta pendidikan, pelatihan atau pemagangan yang merupakan calon pegawai;
d.
Uang tebusan pensiun, uang Tabungan Hari Tua atau Jaminan Hari Tua, uang pesangon dan pembayaran lain sejenis sehubungan dengan pemutusan hubungan kerja;
e.
Honorarium, uang saku, hadiah atau penghargaan dengan nama dan dalam bentuk apapun, komisi, bea siswa, dan pembayaran lain sebagai imbalan sehubungan dengan pekerjaan, jasa, dan kegiatan yang dilakukan oleh Wajib Pajak orang pribadi dalam negeri, terdiri dari : •
Tenaga ahli (Pengacara, Akuntan, Arsitek, Dokter, Konsultan, Notaris, Penilai, dan Aktuaris)
•
Pemain musik, pembawa acara, penyanyi, pelawak, bintang film, bintang sinetron, bintang iklan, sutradara, crew film, foto model, peragawan/
35
peragawati, pemain drama, penari, pemahat, pelukis, dan seniman lainnya; •
Olahragawan;
•
Penasihat, pengajar, pelatih, penceramah, penyuluh, dan moderator;
•
Pengarang, peneliti, dan penerjemah;
•
Pemberi jasa dalam segala bidang termasuk teknik, komputer dan sistem aplikasinya, telekomunikasi, elektronika, fotografi, ekonomi dan sosial;
•
Agen iklan;
•
Pengawas, pengelola proyek, anggota dan pemberi jasa kepada suatu kepanitiaan, dan peserta sidang atau rapat;
•
Pembawa pesanan atau yang menemukan langganan;
•
Peserta perlombaan;
•
Petugas penjaja barang dagangan;
•
Petugas dinas luar asuransi;
•
Peserta pendidikan, pelatihan, dan pemagangan bukan pegawai atau bukan sebagai calon pegawai;
•
Distributor perusahaan multilevel marketing atau direct selling dan kegiatan sejenis lainnya.
f.
Gaji, gaji kehormatan, tunjangan-tunjangan lain yang terkait dengan gaji dan honorarium atau imbalan lain yang bersifat tidak tetap yang diterima oleh Pejabat Negara, Pegawai Negeri Sipil serta uang pensiun dan tunjangantunjangan lain yang sifatnya terkait dengan uang pensiun yang diterima oleh pensiunan termasuk janda atau duda dan atau anak-anaknya.
36
2.10.5 a.
Tidak termasuk penghasilan yang dipotong PPh Pasal 21 adalah :
Pembayaran asuransi dari perusahaan asuransi kesehatan,asuransi kecelakaan, asuransi jiwa, asuransi dwiguna, dan asuransi bea siswa;
b.
Penerimaan dalam bentuk natura dan kenikmatan dalam bentuk apapun yang diberikan oleh Wajib Pajak atau Pemerintah, kecuali diberikan oleh bukan Wajib Pajak selain Pemerintah, atau Wajib Pajak yang dikenakan Pajak Penghasilan yang bersifat final dan yang dikenakan Pajak Penghasilan berdasarkan norma penghitungan khusus (deemed profit).
c.
Iuran pensiun yang dibayarkan kepada dana pensiun yang pendiriannya telah disahkan oleh Menteri Keuangan dan iuran Jaminan Hari Tua kepada badan penyelenggara Jamsostek yang dibayar oleh pemberi kerja;
d.
Zakat yang diterima oleh orang pribadi yang berhak dari badan atau lembaga amil zakat yang dibentuk atau disahkan oleh Pemerintah.
2.10.6
Penghitungan pajak penghasilan pasal 21.
Tarif dan Penerapannya : a.
Pegawai tetap, penerima pensiun bulanan, pegawai tidak tetap, pemagang dan calon pegawai serta distributor MLM/direct selling dan kegiatan sejenis, dikenakan tarif Pasal 17 Undang-undang PPh dikalikan dengan Penghasilan Kena Pajak (PKP). PKP dihitung berdasarkan sebagai berikut: •
Pegawai Tetap; Penghasilan bruto dikurangi biaya jabatan (5% dari penghasilan bruto, maksimum Rp 6.000.000,- setahun atau Rp 500.000,-
37
(sebulan); dikurangi iuran pensiun. Iuran jaminan hari tua, dikurangi Penghasilan Tidak Kena Pajak (PTKP). •
Penerima Pensiun Bulanan; Penghasilan bruto dikurangi biaya pensiun (5% dari penghasilan bruto, maksimum Rp 2.400.000,- setahun atau Rp 200.000,- sebulan); dikurangi PTKP. Pegawai tidak tetap, pemagang, calon pegawai: Penghasilan bruto dikurangi PTKP. (Peraturan Menteri Keuangan Nomor 250/PMK.03/2008 tanggal 31 desember 2008).
•
Pegawai tidak tetap, pemagang, calon pegawai : Penghasilan bruto dikurangi PTKP yang diterima atau diperoleh untuk jumlah yang disetahunkan.
•
Distributor Multi Level Marketing/direct selling dan kegiatan sejenis; penghasilan bruto tiap bulan dikurangi PTKP perbulan.
b.
Penerima honorarium, uang saku, hadiah atau penghargaan, komisi, bea siswa, dan pembayaran lain sebagai imbalan atas jasa dan kegiatan yang jumlahnya dihitung tidak atas dasar banyaknya hari yang diperlukan untuk menyelesaikan jasa atau kegiatan; mantan pegawai yang menerima jasa produksi, tantiem, gratifikasi, bonus; peserta program pensiun yang menarik dananya pada dana pensiun; dikenakan tarif berdasarkan Pasal 17 Undangundang PPh dikalikan dengan penghasilan bruto .
c.
Tenaga Ahli yang melakukan pekerjaan bebas (pengacara, akuntan, arsitek, dokter, konsultan, notaris, penilai dan aktuaris) dikenakan tarif PPh 15% dari perkiraan penghasilan netto.
d.
Pegawai harian, pegawai mingguan, pemagang, dan calon pegawai, serta pegawai tidak tetap lainnya yang menerima upah harian, upah mingguan,
38
upah satuan, upah borongan dan uang saku harian yang besarnya melebihi Rp.150.000 sehari tetapi dalam satu bulan takwim jumlahnya tidak melebihi Rp. 1.320.000,- dan atau tidak di bayarkan secara bulanan, maka PPh Pasal 21 yang terutang dalam sehari adalah dengan menerapkan tarif 5% dari penghasilan bruto setelah dikurangi Rp. 150.000. Bila dalam satu bulan takwim jumlahnya melebihi Rp.1.320.000,- sebulan, maka besarnya PTKP yang dapat dikurangkan untuk satu hari adalah sesuai dengan jumlah PTKP sebenarnya dari penerima penghasilan yang bersangkutan dibagi 360. e.
Penerima pesangon, tebusan pensiun, Tunjangan Hari Tua atau Jaminan Hari Tua yang dibayarkan sekaligus dikenakan tarif PPh final sebagai berikut: •
5% dari penghasilan bruto diatas Rp 25.000.000 s.d. Rp. 50.000.000.
•
10% dari penghasilan bruto diatas Rp. 50.000.000 s.d. Rp. 100.000.000.
•
15% dari penghasilan bruto diatas Rp. 100.000.000 s.d.Rp. 200.000.000.
•
25%
dari
penghasilan
bruto
diatas
Rp.
200.000.000.
Penghasilan bruto sampai dengan Rp. 25.000.000,- dikecualikan dari pemotongan pajak. f.
Pejabat Negara, PNS, anggota TNI/POLRI yang menerima honorarium dan imbalan lain yang sumber dananya berasal dari Keuangan Negara atau Keuangan Daerah dipotong PPh Ps. 21 dengan tarif 15% dari penghasilan bruto dan bersifat final, kecuali yang dibayarkan kepada PNS Gol. lId kebawah, anggota TNI/POLRI Peltu kebawah/ Ajun Insp./Tingkat I Kebawah.
39
g.
PTKP (Penghasilan Tak Kena Pajak) No Keterangan 1 Diri Wajib Pajak Pajak Orang Pribadi 2 Tambahan untuk Wajib Pajak yang kawin 3 Tambahan untuk seorang istri yang penghasilannya digabung dengan penghasilan suami. 4 Tambahan untuk setiap anggota keturunan sedarah semenda dalam garis keturunan lurus serta anak angkat yang diatnggung sepenuhnya , maksimal 3 orang untuk setiap keluarga
Setahun Rp. 15.840.000,Rp. 1.320.000,Rp.
15.840.000,-
Rp.
1.320.000,-
Tabel 2.1. PTKP Sumber : www.pajak.go.id
h.
Tarif Pasal 17 Undang-undang Pajak Penghasilan adalah: Lapisan Penghasilan Kena Pajak Sampai dengan Rp. 50.000.000,Diatas Rp. 50.000.000,- sampai dengan Rp. 250.000.000,Diatas Rp. 250.000.000,- sampai dengan Rp. 500.000.000,Diatas Rp. 500.000.000,-
Tarif Pajak 5% 15 % 25 % 30 %
Tabel 2.2. Tarif Pasal 17 Sumber : www.pajak.go.id
Contoh Penghitungan Pemotongan PPh PasaL 21 Penghasilan Pegawai Tetap yang diterima Bulanan Contoh: Saefudin adalah pegawai tetap di PT Insan Selalu Lestari sejak 1 Januari 2009. la
40
memperoleh gaji sebulan sebesar Rp. 2.000.000,- dan membayar iuran pensiun sebesar Rp. 25.000,- sebulan. Saefudin menikah tetapi belum mempunyai anak (status K/0).
Penghitungan PPh Ps. 21 Penghitungan PPh Ps. 21 terutang Gaji Sebulan = 2.000.000 Pengh. bruto = 2.000.000 Pengurangan Biaya Jabatan:
= 5% x 2.000.000
Iuran pensiun
=
25.000
Total Pengurangan
=
125.000
Pengh netto sebulan
=
1.875.000
Pengh. Netto setahun
12 x 1.875.000
= 100.000
= 22.500.000
PTKP setahun: WP sendiri
= 15.840.000
Tambahan WP kawin
=
Total PTKP
= 17.160.000
PKP setahun
=
PPh Ps. 21
= 5 % x 5.340.000
PPh Ps. 21 sebulan
=
1.320.000
5.340.000
22.250
= 267.000
41
2.11
Analisis Sistem
2.11.1
Pengertian Analisis Sistem Analisis Sistem (System Analysis) dapat didefinisikan sebagai penguraian
dari suatu sistem yang utuh ke dalam bagian-bagian komponennya dengan maksud
untuk
mengidentifikasikan
dan
mengevaluasikan
permasalahan-
permasalahan, kesempatan-kesempatan, hambatan-hambatan yang terjadi dan kebutuhan-kebutuhan yang diharapkan sehingga dapat diusulkan perbaikanperbaikan.
2.11.2
Tahap-tahap Analisis Sistem
Adapun tahap-tahap / langkah-langkah analisis sistem adalah: a.
Identify yaitu mengidentifikasi masalah
b.
Undestand yaitu memahami kerja dari sistem yang ada
c.
Analize yaitu menganalisa Sistem
d.
Report yaitu membuat laporan hasil analisis.
2.11.3
Alat Bantu analisi dan perancangan
Alat bantu yang dipakai adalah Diagram Alir Sistem. Diagram Alir Sistem merupakan diagram alir yang menunjukan arus pekerjaan secara keseluruhan dari sistem. Diagram ini menjelaskan urut-urutan dari prosedur-prosedur yang ada dalam sistem. Diagram ini menunjukkan apa yang dikerjakan di sistem. (Jogiyanto HM. 2001).
42
2.12
Software yang digunakan
Microsoft visual foxpro merupakan salah satu sistem manajemen database (database management system) berorientasi obyek yang memungkinkan pembuatan aplikasi database yang tangguh dengan cepat dan mudah. Microsoft visual foxpro 9.0 menyediakan fasilitas yang dibutuhkan untuk mengelola data atau informasi. Kemudahan pembuatan aplikasi menggunakan visual foxpro antara lain karena pemrograman ini secara prosedural dan sekaligus berorientasi obyek (Object-Oriented Programming atau OOP) yang berjalan seiring dan saling terkait. Pemrograman prosedural dikerjakan bersama-sama dengan pemrograman berorientasi obyek dan dilengkapi sarana desain interaktif menjadikan visual foxpro 9 banyak digunakan oleh para programmer windows saat ini.(Kadir Abdul, Pemrograman Visual Foxpro 9.0, Andi Offset, Yogyakarta, 2005, hal.1) Fasilitas Baru Visual Foxpro 9.0 a.
Perbaikan Bahasa Visual foxpro 9.0 menyediakan sarana baru dengan mengubah dan memperbaiki bahasa pemrograman sebelumnya. Sarana baru tersebut meliputi tambahan konfigurasi, perbaikan perintah, function dan class serta penambahan perintah, function dan class baru.
b.
Feature XBase Visual foxpro terbaru ini berisi perbaikan dan feature baru untuk Xbase yang ditulis dengan bahasa visual itu sendiri. Feature ini meliputi sarana baru seperti Task List Manager, Object Browser, Intellisense Manager, Accessibillity Browser, Automated Test Harness dan Web Services Wizard .
43
c.
Visual Foxpro 9.0 dan XML Extensible Markup Language (XML) adalah bahasa standar untuk mendiskripsikan dan mengirimkan data di web seperti juga Hypertext Markup Language (HTML) yang merupakan bahasa standar untuk pembuatan dan penampilan halaman web. Untuk memungkinkan anda mengimplementasikan pertukaran data melalui pemformatan XML dengan lebih mudah. Komponen Dasar Visual Foxpro 9.0 •
Project Merupakan sebuah file yang memasukkan sekumpulan file program, form, menu, library, reports, label, query dan tipe lainnya yang dibutuhkan untuk membuat sebuah aplikasi dan disimpan dengan ekstensi .PJX.
•
Form Merupakan class container yang merupakan sekumpulan atau beberapa page seperti windows standar atau kotak dialog sebuah form berisi kontrol untuk menampilkan dan mengedit data dengan kata lain form merupakan interface yang dijadikan sebagai sarana user untuk berkomunikasi dengan komputer dan disimpan dengan ekstensi .FRM.
•
Report Merupakan bentuk desain cetakan informasi data yang akan digunakan sebagai penyaji informasi. Report ini memiliki ekstensi .RPT.
44
•
Query Merupakan pendefinisian sebuah informasi dari sebuah database yang pembentukannya menggunakan kriteria untuk mengekstrak record khusus.
•
View Dapat diasumsikan sebagai pendefinisian tabel sementara yang dapat local, remote atau parameterized. View dapat dibentuk dengan sebuah atau beberapa table atau view yang lain. View dapat diupdate dan dapat direferensikan remote table.
•
Class Library Class yang didefinisikan secara visual dimasukkan dalam sebuah class library. File class library ini memiliki ekstensi .VCX.
•
Menu Menu merupakan daftar item seperti perintah yang dimunculkan saat memilih title menu dari menu bar dan disimpan dalam sebuah file ekstensi .MNU
•
Program Merupakan sebuah file yang berisi satu atau beberapa instruksi atau perintah yang tersusun secara terstruktur yang menunjukkan sebuah proses.