ACCOUNTING PROGRAMMING Bag. 1 : MASTER Accounting, kalo di-Bahasa Indonesia-kan artinya “meng-akun-kan” ( berdasarkan boso Inggris Jowo by Dhani … ) 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 : 1. Karena dalam akuntansi ( di dunia pada umumnya dan terutama di Indonesia ) dikenal 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’ 2. 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’
3. 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’
4. 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 bias 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’
5. 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, SaldoNormal, StsAktif, dtCreated, dtModified, UpdatedBy
MataUangID,
GrupLRID,
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’