Wah, kelihatannya aku bikin rese' ya di milis ? Mungkin aku khilaf karena
gak baca peraturan... hehehe ... Dhani juga manusia kan ... :). Ya udah deh
kalo ada yang merasa dirugikan saya minta maaf, gak ada maksud nyepam
siapapun. It is a good reminder for me. Thank's
 
Untuk menebus dosa, berikut ini aku ulas masalah accounting programming as I
promised. Baca yang lainnya juga di http://dasmaniacool.blogspot.com
<http://dasmaniacool.blogspot.com> 
 
Silahkan direnungi .....
 
Sekali lagi aku bukan lulusan akuntansi / ekonomi, bagi yang ingin
mengoreksi, saya persilahkan. Murni hanya dari baca buku & pengalaman
pribadi.
============================================================================
=====================================
 
Accounting, kalo di-Bahasa Indonesia-kan artinya "meng-akun-kan" (
berdasarkan boso Inggris Jowo by Dhani ...J ) sebenarnya adalah proses
pemilahan pos-pos penampungan nilai ( yang biasanya dinilai dengan uang )
dari suatu badan usaha. Selanjutnya akan saya sebut akuntansi.

Disini saya akan menjelaskan bagaimana desain database untuk pembuatan
master data bagi database untuk accounting. Anda dapat menggunakan database
engine apapun, namun penjelasan saya dibawah ini memakai bahasa2 dalam
Microsoft SQL Server 2000.

Hubungannya dengan programming dapat dihubungkan sebagai berikut :



*       Karena dalam akuntansi ( di dunia pada umumnya dan terutama di
Indonesia ) dikenal ( at least yang aku kenal ) 5 grup akun yaitu AKTIVA (
Asset ), KEWAJIBAN ( Liability ), MODAL ( Equity ), PENDAPATAN ( Revenue ),
dan BIAYA ( Expense ). Maka anda harus membuat 1 ( satu ) table yang
menyimpan data2 tersebut, anjuran desain table :

Nama Tabel : MGrupAkun

Field, Tipe Data, Not Null, Primary Key, Identity, Default Value,
Description
GrupAkunID, int, Yes, Yes, Yes, [EMPTY], Menyimpan ID Grup Akun
GrupAkun, varchar( 25 ), Yes, No, No, [EMPTY], Menyimpan Nama Grup Akun
dalam Bahasa Indonesia
GrupAkunEng, varchar( 25 ), Yes, No, No, [EMPTY] , Menyimpan Nama Grup Akun
dalam Bahasa Inggris
dtCreated, datetime, Yes, No, No, getdate(), tanggal dibuat
dtModified, datetime, Yes, No, No, getdate(), tanggal dimodifikasi
UpdatedBy, varchar( 25 ), Yes, No, No, 'PRGMR', User yang menambahkan /
mengganti data

Catatan : Sekiranya setelah table ini dibuat, segera isikan ke-lima grup
akun yang sudah dibahas diatas. Karena kelima grup tersebut sebenarnya tidak
akan pernah bias ditambah atau diganti ( kecuali kalo memang akan ditemukan
satu Grup Akun lagi yang diakui oleh orang2 accounting di seluruh dunia.
Jadi isinya kurang lebih ( atau pasti ) sbb :

GrupAkunID, GrupAkun, GrupAkunEng, dtCreated, dtModified, UpdatedBy
1, Aktiva, Asset, [automatic], [automatic], 'PRGMR'
2, Kewajiban, Liability, [automatic], [automatic], 'PRGMR'
3, Modal, Equity, [automatic], [automatic], 'PRGMR'
4, Pendapatan, Revenue, [automatic], [automatic], 'PRGMR'
5, Biaya, Expense, [automatic], [automatic], 'PRGMR'



*       Setelah kita membuat table untuk Master Grup Akun, untuk mempermudah
pelaporan di akuntansi, saya sarankan anda membuat 1 ( satu ) table yang
menyimpan data - data JENIS AKUN. Tabel ini sebenarnya bersifat sunnah (
tidak wajib ), namun akan sangat membantu kita dalam pelaporan akuntansi.
Anjuran desain table :

Nama Tabel : MJenisAkun

Field, Tipe Data, Not Null, Primary Key, Identity, Default Value,
Description
JenisAkunID, int, Yes, Yes, Yes, [EMPTY], Menyimpan ID Jenis Akun
GrupAkunID, int, Yes, No, No, [EMPTY], Menyimpan nilai Grup Akun dari Jenis
Akun tersebut
KodeJenisAkun, varchar( 5 ), Yes, No, No, [EMPTY], Menyimpan kode Jenis Akun
JenisAkun, varchar( 50 ), Yes, No, No, [EMPTY], Menyimpan Nama Jenis Akun
dalam Bahasa Indonesia
JenisAkunEng, varchar( 50 ), Yes, No, No, [EMPTY] , Menyimpan Nama Jenis
Akun dalam Bahasa Inggris
dtCreated, datetime, Yes, No, No, getdate(), tanggal dibuat
dtModified, datetime, Yes, No, No, getdate(), tanggal dimodifikasi
UpdatedBy, varchar( 25 ), Yes, No, No, 'PRGMR', User yang menambahkan /
mengganti data

Catatan : Jenis akun sangat bervariasi tergantung bagaimana perusahaan
tersebut ingin mengelompokkan akun-akunnya. Berikut ini contoh Jenis Akun di
dalam database yang dipakai untuk perusahaan retail / restoran / hotel :

JenisAkunID, GrupAkunID, KodeJenisAkun, JenisAkun, JenisAkunEng, dtCreated,
dtModified, UpdatedBy
1, 1, 101, Kas, Cash, [automatic], [automatic], 'PRGMR'
2, 1, 102, Bank, Bank, [automatic], [automatic], 'PRGMR'
3, 1, 103, Aktiva Tetap, Fixed Asset, [automatic], [automatic], 'PRGMR'
4, 1, 104, Aktiva Lain-Lain, Other Asset, [automatic], [automatic], 'PRGMR'
5, 1, 105, Aktiva Lancar lain-lain, Other Current Asset, [automatic],
[automatic], 'PRGMR'
6, 1, 106, Akumulasi Penyusutan, Accumulated Depreciation, [automatic],
[automatic], 'PRGMR'
7, 1, 107, Piutang Giro, Note Receivables, [automatic], [automatic], 'PRGMR'
8, 1, 108, Piutang Usaha, Account Receivables, [automatic], [automatic],
'PRGMR'
9, 1, 109, Piutang Lain - Lain, Other Receivables, [automatic], [automatic],
'PRGMR'
10, 1, 110, Persediaan Barang, Inventories, [automatic], [automatic],
'PRGMR'
11, 2, 201, Hutang Jangka Pendek, Short - Term Loan, [automatic],
[automatic], 'PRGMR'
12, 2, 202, Hutang Pajak, Tax Payables, [automatic], [automatic], 'PRGMR'
13, 2, 203, Hutang Usaha, Account Payables, [automatic], [automatic],
'PRGMR'
14, 2, 204, Hutang Lain - Lain, Other Payables, [automatic], [automatic],
'PRGMR'
15, 3, 301, Modal Dasar, Capital Stock, [automatic], [automatic], 'PRGMR'
16, 3, 302, Laba Ditahan, Retained Earning, [automatic], [automatic],
'PRGMR'
17, 3, 303, Laba Rugi Tahun Berjalan, Profit ( Loss) Current Year,
[automatic], [automatic], 'PRGMR'
18, 4, 401, Penjualan Tunai, Cash Sales, [automatic], [automatic], 'PRGMR'
19, 4, 402, Penjualan Kredit, Credit Sales, [automatic], [automatic],
'PRGMR'
20, 4, 403, Pendapatan Lain - Lain, Other Revenue, [automatic], [automatic],
'PRGMR'
21, 5, 501, Harga Pokok Penjualan, Cost Of Goods Sold, [automatic],
[automatic], 'PRGMR'
22, 5, 502, Biaya Retur Pembelian, Purchasing Return, [automatic],
[automatic], 'PRGMR'
23, 5, 503, Biaya Penjualan, Sales Expenses, [automatic], [automatic],
'PRGMR'
24, 5, 504, Biaya Umum dan Administrasi, General & Administrative Expenses,
[automatic], [automatic], 'PRGMR'
25, 5, 505, Biaya Lain - Lain, Other Expenses, [automatic], [automatic],
'PRGMR'



*       Jika kita akan membuat program multi currency, maka sebaiknya kita
membuat satu table untuk menyimpan data mata - uang apa saja yang dipakai,
anjuran desain table :

Nama Tabel : MMataUang

Field, Tipe Data, Not Null, Primary Key, Identity, Default Value,
Description
MataUangID, int, Yes, Yes, Yes, [EMPTY], Menyimpan ID MataUang
InisialMU, varchar(5), Yes, Yes, Yes, [EMPTY], Menyimpan inisial matauang
NamaMU, varchar(25), Yes, Yes, Yes, [EMPTY], Menyimpan Nama matauang
dtCreated, datetime, Yes, No, No, getdate(), tanggal dibuat
dtModified, datetime, Yes, No, No, getdate(), tanggal dimodifikasi
UpdatedBy, varchar( 25 ), Yes, No, No, 'PRGMR', User yang menambahkan /
mengganti data 

Contoh data mata uang :

MataUangID, InisialMU, NamaMU, dtCreated, dtModified, UpdatedBy
1, IDR, Indonesian Rupiah, [automatic], [automatic], 'PRGMR'
2, USD, American Dollar, [automatic], [automatic], 'PRGMR'
3, SGD, Singapore Dollar, [automatic], [automatic], 'PRGMR'
4, EUR, Euro, [automatic], [automatic], 'PRGMR'
5, JPY, Japan Yen, [automatic], [automatic], 'PRGMR'



*       Di dalam accounting ada yang namanya Laporan Laba Rugi, nah di dalam
laporan itu dikelompokkan menjadi beberapa bagian, sebaiknya anda juga
membuat table untuk menyimpan keoompok2 Laba / Rugi tersebut. Anjuran desain
table :

Nama Tabel : CGrupLR

Field, Tipe Data, Not Null, Primary Key, Identity, Default Value,
Description
GrupLRID, int, Yes, Yes, Yes, [EMPTY], Menyimpan ID Grup Laba Rugi
GrupLR, varchar(50), Yes, Yes, Yes, [EMPTY], Menyimpan Nama Grup Laba / Rugi
dalam Bahasa Indonesia
GrupLREng, varchar(50), Yes, Yes, Yes, [EMPTY], Menyimpan Nama Grup Laba /
Rugi dalam Bahasa Inggris
dtCreated, datetime, Yes, No, No, getdate(), tanggal dibuat
dtModified, datetime, Yes, No, No, getdate(), tanggal dimodifikasi
UpdatedBy, varchar( 25 ), Yes, No, No, 'PRGMR', User yang menambahkan /
mengganti data 

Catatan : sepengetahuan saya, hanya ada 7 ( tujuh ) kelompok Laba / Rugi, di
dalam database bisa anda isi sbb :

GrupLRID, GrupLR, GrupLREng, dtCreated, dtModified, UpdatedBy
1, Biaya Administrasi & Umum, General & Administrative Expenses,
[automatic], [automatic], 'PRGMR'
2, Biaya Lain - Lain, Non - Operating Expenses, [automatic], [automatic],
'PRGMR'
3, Biaya Penjualan, Selling Expenses, [automatic], [automatic], 'PRGMR'
4, Harga Pokok, Cost Of Goods Sold, [automatic], [automatic], 'PRGMR'
5, Pajak Penghasilan, Tax Expense (Income), [automatic], [automatic],
'PRGMR'
6, Pendapatan Lain - Lain, Non- Operating Income, [automatic], [automatic],
'PRGMR'
7, Penjualan, Sales, [automatic], [automatic], 'PRGMR'



*       Sekarang kita masuk ke bagian yang paling "mengasyikkan" di desain
database master akuntansi, yaitu pembuatan akun - akun untuk transaksi yang
terjadi di dalam suatu badan usaha. Anjuran desain table :

Nama Tabel : MAkun

Field, Tipe Data, Not Null, Primary Key, Identity, Default Value,
Description
AkunID, int, Yes, Yes, Yes, [EMPTY], Menyimpan ID Akun
JenisAkunID, int, Yes, No, No, [EMPTY], Menyimpan nilai Jenis Akun dari Akun
tersebut
KodeAkun, varchar( 10 ), Yes, No, No, [EMPTY], Menyimpan Kode Akun
NamaAkun, varchar( 50 ), Yes, No, No, [EMPTY], Menyimpan Nama Akun dalam
Bahasa Indonesia
NamaAkunEng, varchar( 25 ), Yes, No, No, [EMPTY] , Menyimpan Nama Akun dalam
Bahasa Inggris
MataUangID, int, Yes, No, No, [EMPTY], Menyimpan mata uang dari akun
tersebut
GrupLRID, int, No, No, No, [EMPTY], Menyimpan grup Laba / Rugi dari akun
SaldoNormal, varchar( 1 ), Yes, No, No, [EMPTY], Menyimpan sifat akun (
hubungannya dengan debet / kredit )
StsAktif, bit, Yes, No, No, 1, Menyimpan status akun tersebut aktif / tidak
( 1 = aktif, 0 = tidak aktif )
dtCreated, datetime, Yes, No, No, getdate(), tanggal dibuat
dtModified, datetime, Yes, No, No, getdate(), tanggal dimodifikasi
UpdatedBy, varchar( 25 ), Yes, No, No, 'PRGMR', User yang menambahkan /
mengganti data 

Catatan : seperti yang saja uraikan diatas bahwa jenis akun dapat bervariasi
antar satu perusahaan dengan yang lain, kalau akun malah lebih bervariasi
lagi, berdasarkan pengalaman saya, ada 1 perusahaan yang mempunyai akun
sebanyak 1500 akun, tapi ada juga yang hanya 100 - 200 akun. Berikut ini
saya sertakan contoh akun, saya batasi hanya untuk 2 mata uang saja :

AkunID, JenisAkunID, KodeAkun, NamaAkun, NamaAkunEng, MataUangID, GrupLRID,
SaldoNormal, StsAktif, dtCreated, dtModified, UpdatedBy
1, 1, 101001, Kas IDR, Cash IDR, 1, NULL, +, 1, [automatic], [automatic],
'PRGMR'
2, 1, 101002, Kas USD, Cash USD, 2, NULL, +, 1, [automatic], [automatic],
'PRGMR'
3, 2, 102003, Bank Mandiri IDR, Bank Mandiri IDR, 1, NULL, +, 1,
[automatic], [automatic], 'PRGMR'
4, 2, 102004, Bank Mandiri USD, Bank Mandiri USD, 2, NULL, +, 1,
[automatic], [automatic], 'PRGMR'
5, 7, 107005, Piutang Giro IDR, Note Receivables IDR, 1, NULL, +, 1,
[automatic], [automatic], 'PRGMR'
6, 7, 107006, Piutang Giro USD, Note Receivables USD, 2, NULL, +, 1,
[automatic], [automatic], 'PRGMR'
7, 8, 108007, Piutang Usaha IDR, Account Receivables IDR, 1, NULL, +, 1,
[automatic], [automatic], 'PRGMR'
8, 8, 108008, Piutang Usaha USD, Account Receivables USD, 2, NULL, +, 1,
[automatic], [automatic], 'PRGMR'
9, 8, 108009, Piutang Usaha IDR, Account Receivables IDR, 1, NULL, +, 1,
[automatic], [automatic], 'PRGMR'
10, 8, 108010, Piutang Usaha USD, Account Receivables USD, 2, NULL, +, 1,
[automatic], [automatic], 'PRGMR'
11, 8, 108011, Piutang Kartu Kredit IDR, Credit Card Receivables IDR, 1,
NULL, +, 1, [automatic], [automatic], 'PRGMR'
12, 8, 108012, Piutang Kartu Kredit USD, Credit Card Receivables USD, 2,
NULL, +, 1, [automatic], [automatic], 'PRGMR'
13, 9, 109013, Piutang Klaim IDR, Claim Receivables IDR, 1, NULL, +, 1,
[automatic], [automatic], 'PRGMR'
14, 9, 109014, Piutang Klaim USD, Claim Receivables USD, 2, NULL, +, 1,
[automatic], [automatic], 'PRGMR'
15, 9, 109015, Piutang Staff IDR, Staff Receivables IDR, 1, NULL, +, 1,
[automatic], [automatic], 'PRGMR'
16, 9, 109016, Piutang Staff USD, Staff Receivables USD, 2, NULL, +, 1,
[automatic], [automatic], 'PRGMR'
17, 10, 110017, Persediaan Barang Stock IDR, Stocked Inventories IDR, 1,
NULL, +, 1, [automatic], [automatic], 'PRGMR'
18, 10, 110018, Persediaan Barang Stock USD, Stocked Inventories USD, 2,
NULL, +, 1, [automatic], [automatic], 'PRGMR'
19, 10, 110019, Persediaan Barang UnStock IDR, UnStocked Inventories IDR, 1,
NULL, +, 1, [automatic], [automatic], 'PRGMR'
20, 10, 110020, Persediaan Barang UnStock USD, UnStocked Inventories USD, 2,
NULL, +, 1, [automatic], [automatic], 'PRGMR'
21, 16, 116021, Laba Ditahan IDR, Retained Earning IDR, 1, NULL, +, 1,
[automatic], [automatic], 'PRGMR'
22, 16, 116022, Laba Ditahan USD, Retained Earning USD, 2, NULL, +, 1,
[automatic], [automatic], 'PRGMR'
23, 17, 117023, Laba Rugi Tahun Berjalan IDR, Profit ( Loss) Current Year
IDR, 1, NULL, +, 1, [automatic], [automatic], 'PRGMR'
24, 17, 117024, Laba Rugi Tahun Berjalan USD, Profit ( Loss) Current Year
USD, 2, NULL, +, 1, [automatic], [automatic], 'PRGMR'
25, 18, 118025, Penjualan Tunai IDR, Cash Sales IDR, 1, 7, -, 1,
[automatic], [automatic], 'PRGMR'
26, 18, 118026, Penjualan Tunai USD, Cash Sales USD, 2, 7, -, 1,
[automatic], [automatic], 'PRGMR'
27, 19, 119027, Penjualan Kredit IDR, Credit Sales IDR, 1, 7, -, 1,
[automatic], [automatic], 'PRGMR'
28, 19, 119028, Penjualan Kredit USD, Credit Sales USD, 2, 7, -, 1,
[automatic], [automatic], 'PRGMR'
29, 21, 121029, Pembelian IDR, Purchasing IDR, 1, 4, +, 1, [automatic],
[automatic], 'PRGMR'
30, 21, 121030, Pembelian USD, Purchasing USD, 2, 4, +, 1, [automatic],
[automatic], 'PRGMR'
31, 21, 121031, Harga Pokok Penjualan IDR, Cost Of Goods Sold IDR, 1, 4, +,
1, [automatic], [automatic], 'PRGMR'
32, 21, 121032, Harga Pokok Penjualan USD, Cost Of Goods Sold USD, 2, 4, +,
1, [automatic], [automatic], 'PRGMR'
33, 25, 125033, Selisih Kas IDR, Cash Difference IDR, 1, 2, +, 1,
[automatic], [automatic], 'PRGMR'
34, 25, 125034, Selisih Kas USD, Cash Difference USD, 2, 2, +, 1,
[automatic], [automatic], 'PRGMR'
35, 24, 124035, Biaya Gaji IDR, Salary Expenses IDR, 1, 1, +, 1,
[automatic], [automatic], 'PRGMR'
36, 24, 124036, Biaya Gaji USD, Salary Expenses USD, 2, 1, +, 1,
[automatic], [automatic], 'PRGMR'
37, 24, 124037, Biaya Lembur IDR, Overtime Expenses IDR, 1, 1, +, 1,
[automatic], [automatic], 'PRGMR'
38, 24, 124038, Biaya Lembur USD, Overtime Expenses USD, 2, 1, +, 1,
[automatic], [automatic], 'PRGMR'
39, 24, 124039, Biaya Kasir IDR, Cashier Expenses IDR, 1, 2, +, 1,
[automatic], [automatic], 'PRGMR'
40, 24, 124040, Biaya Kasir USD, Cashier Expenses USD, 2, 2, +, 1,
[automatic], [automatic], 'PRGMR'
41, 25, 125041, Biaya Barang Hilang IDR, Cost Of Goods Lost IDR, 1, 2, +, 1,
[automatic], [automatic], 'PRGMR'
42, 25, 125042, Biaya Barang Hilang USD, Cost Of Goods Lost USD, 2, 2, +, 1,
[automatic], [automatic], 'PRGMR'
 
Best Regards,
 
Dhani Aristyawan, S. Kom.
IT Supervisor
 
PT. ALP Petro Industry
Desa Kebonsari - Legok
Pasuruan - 67155
Phone : +62 343 853308 Ext. 62
FAX : +62 343 853307
 
Visit me @  <http://dasmaniacool.blogspot.com/>
http://dasmaniacool.blogspot.com


[Non-text portions of this message have been removed]

Kirim email ke