Menginput saldo awal pada SIMDA Keuangan merupakan rutinitas tahunan yang jika dikerjakan secara manual membutuhkan waktu yang lumayan lama. Apalagi kalau dikerjakan ketika hati sedang galau karena cicilan utang belum lunas. Memang SIMDA Keuangan sudah menyediakan menu untuk export-import saldo awal. Namun saya sendiri tidak pernah menggunakannya. Saya lebih suka menggunakan query yang saya buat sendiri (biar greget), karena lebih mudah menangani jika terjadi error pada saat mentransfer saldo awal. Ketika melakukan transfer saldo awal kita bisa langsung mengetahui Kode Rekening apa saja yang tidak sinkron antara database lama dengan database baru. Terlebih lagi adanya perubahan OPD di tahun 2017, maka diperlukan adanya mapping OPD lama ke OPD baru.
Saya akan jelaskan langkah-langkah yang diperlukan untuk mentransfer saldo akhir tahun 2016 menjadi saldo awal tahun 2017. Dalam proses ini saya menggunakan Navicat Premium versi 11.0. Jika kurang bisa dimengerti, maafkan karena tidak menjelaskan secara jelas dan detail.
Tabel Mapping OPD
Tabel mapping OPD berfungsi untuk menentukan ke OPD baru yang mana saldo akhir 2016 akan dimasukkan. Tabel mapping OPD terdiri dari 8 kolom, 4 kolom untuk kode OPD lama dan 4 kolom untuk kode OPD baru.
Berikut adalah tabel yang saya gunakan:
CREATE TABLE [dbo].[Tb_Map_Sub] ( [Kd_Urusan] tinyint NOT NULL, [Kd_Bidang] tinyint NOT NULL, [Kd_Unit] tinyint NOT NULL, [Kd_Sub] smallint NOT NULL, [Kd_Urusan2] tinyint NULL, [Kd_Bidang2] tinyint NULL, [Kd_Unit2] tinyint NULL, [Kd_Sub2] smallint NULL ) GO ALTER TABLE [dbo].[Tb_Map_Sub] ADD PRIMARY KEY ([Kd_Urusan], [Kd_Bidang], [Kd_Unit], [Kd_Sub]) WITH (FILLFACTOR=90) GO
Tabel ini ditempatkan di dalam database tahun 2016. Kolom Kd_Urusan, Kd_Bidang, Kd_Unit, dan Kd_Sub diisi kode OPD lama, sedangkan Kd_Urusan2, Kd_Bidang2, Kd_Unit2, dan Kd_Sub2 diisi kode OPD baru. Contoh, Dinas Pendidikan OPD lama memiliki kode 1.01.01.01, sedangkan pada OPD baru Dinas Pendidikan dihapuskan (mungkin saja muridnya udah pada pintar-pintar). Sehingga diperlukan OPD penampung, misalnya kita tampung saja di Sekretariat Daerah yang memiliki kode 4.01.03.01. Jadi tabel mapping-nya akan menjadi seperti berikut:
Kd_Urusan | Kd_Bidang | Kd_Unit | Kd_Sub | Kd_Urusan2 | Kd_Bidang2 | Kd_Unit2 | Kd_Sub2 |
1 | 1 | 1 | 1 | 4 | 1 | 3 | 1 |
Dari saldo awal hasil tampungan ini kemudian bisa kita jurnal jika ada Aset Tetap yang dimutasi ke OPD lain.
Query Saldo Akhir 2016
Selanjutnya adalah menjalankan query untuk menghasilkan saldo akhir tahun 2016. Yang dimaksud saldo akhir di sini adalah saldo akhir akrual, bukan CTA.
Berikut adalah contoh query yang saya gunakan:
DECLARE @Tahun varchar(4), @Kd_SKPD varchar(3), @D1 datetime SET @Tahun = '2016' SET @Kd_SKPD = '1' SET @D1 = @Tahun + '1231' DECLARE @Saldo TABLE(Tahun varchar(4), Kd_Urusan tinyint, Kd_Bidang tinyint, Kd_Unit tinyint, Kd_Sub tinyint, Kd_Prog tinyint, ID_Prog tinyint, Kd_Keg tinyint, Kd_Akrual_1 tinyint, Kd_Akrual_2 tinyint, Kd_Akrual_3 tinyint, Kd_Akrual_4 tinyint, Kd_Akrual_5 tinyint, Anggaran money, Saldo money, SaldoNorm varchar(1)) INSERT INTO @Saldo SELECT A.Tahun, A.Kd_Urusan, A.Kd_Bidang, A.Kd_Unit, A.Kd_Sub, '0' AS Kd_Prog, '0' AS ID_Prog, '0' AS Kd_Keg, A.Kd_Akrual_1, A.Kd_Akrual_2, A.Kd_Akrual_3, A.Kd_Akrual_4, A.Kd_Akrual_5, '0' AS Anggaran, CASE A.SaldoNorm WHEN 'D' THEN SUM(A.Debet - A.Kredit) ELSE SUM(A.Kredit - A.Debet) END AS Saldo, A.SaldoNorm FROM fn_SaldoAkhirAk(5, @D1, 1) A WHERE (A.Kd_Akrual_1 IN (1,2,3,4,5,6,7,8,9)) AND (NOT (A.Kd_Akrual_1 = 1 AND A.Kd_Akrual_2 = 1 AND A.Kd_Akrual_3 = 1 AND A.Kd_Akrual_4 = 1)) AND (NOT (A.Kd_Akrual_1 = 1 AND A.Kd_Akrual_2 = 1 AND A.Kd_Akrual_3 = 8 AND A.Kd_Akrual_4 = 1)) AND (NOT (A.Kd_Akrual_1 = 2 AND A.Kd_Akrual_2 = 1 AND A.Kd_Akrual_3 = 7 AND A.Kd_Akrual_4 = 1)) GROUP BY A.Tahun, A.Kd_Urusan, A.Kd_Bidang, A.Kd_Unit, A.Kd_Sub, A.Kd_Akrual_1, A.Kd_Akrual_2, A.Kd_Akrual_3, A.Kd_Akrual_4, A.Kd_Akrual_5, A.SaldoNorm INSERT INTO @Saldo SELECT A.Tahun, B.Kd_Urusan, B.Kd_Bidang, B.Kd_Unit, B.Kd_Sub, '0' AS Kd_Prog, '0' AS ID_Prog, '0' AS Kd_Keg, A.Kd_Akrual_1, A.Kd_Akrual_2, A.Kd_Akrual_3, A.Kd_Akrual_4, A.Kd_Akrual_5, 0, SUM(A.Kredit - A.Debet), 'K' FROM Ta_JurnalSemuaAk_Rinc A INNER JOIN Ta_JurnalSemuaAk B ON A.Tahun = B.Tahun AND A.No_Bukti = B.No_Bukti AND A.Kd_Source = B.Kd_Source WHERE (B.Kd_Urusan = @Kd_Urusan) AND (B.Kd_Bidang = @Kd_Bidang) AND (B.Kd_Unit = @Kd_Unit) AND (B.Kd_Sub = @Kd_Sub) AND (Kd_Jurnal IN (8, 10)) AND (Kd_Akrual_1 = 3) GROUP BY A.Tahun, B.Kd_Urusan, B.Kd_Bidang, B.Kd_Unit, B.Kd_Sub, A.Kd_Akrual_1, A.Kd_Akrual_2, A.Kd_Akrual_3, A.Kd_Akrual_4, A.Kd_Akrual_5 SELECT A.Tahun, C.Kd_Urusan2, C.Kd_Bidang2, C.Kd_Unit2, C.Kd_Sub2, '0' AS Kd_Prog, '0' AS ID_Prog, '0' AS Kd_Keg, A.Kd_Akrual_1, A.Kd_Akrual_2, A.Kd_Akrual_3, A.Kd_Akrual_4, A.Kd_Akrual_5, 0 AS Anggaran, SUM(A.Saldo) AS Saldo, A.SaldoNorm FROM @Saldo A INNER JOIN Ref_Akrual_5 B ON A.Kd_Akrual_1 = B.Kd_Akrual_1 AND A.Kd_Akrual_2 = B.Kd_Akrual_2 AND A.Kd_Akrual_3 = B.Kd_Akrual_3 AND A.Kd_Akrual_4 = B.Kd_Akrual_4 AND A.Kd_Akrual_5 = B.Kd_Akrual_5 INNER JOIN Tb_Map_Sub C ON A.Kd_Urusan = C.Kd_Urusan AND A.Kd_Bidang = C.Kd_Bidang AND A.Kd_Unit = C.Kd_Unit AND A.Kd_Sub = C.Kd_Sub WHERE A.Saldo <> 0 GROUP BY A.Tahun, C.Kd_Urusan2, C.Kd_Bidang2, C.Kd_Unit2, C.Kd_Sub2, A.Kd_Akrual_1, A.Kd_Akrual_2, A.Kd_Akrual_3, A.Kd_Akrual_4, A.Kd_Akrual_5, A.SaldoNorm
Record query tersebut kita copy lalu di-paste di tabel Ta_Saldo_AwalAk. Proses copy paste ini menggunakan Navicat. Ketika mem-paste record mungkin akan muncul error yang menyatakan bahwa kode rekening yang di-paste tidak ada di tabel Ref_Rek_5. Kita tambahkan kode rekening tersebut. Kita juga bisa melakukan sinkronisasi kode rekening di awal.
Beberapa angka saldo awal mungkin tidak akan sinkron dengan laporan keuangan tahun 2016 terutama angka Ekuitas. Kita bisa menyesuaikannya secara manual.
Di tempat saya bekerja, di Pemerintah Kabupaten Gianyar untuk tahun 2016 masih menggunakan SIMDA versi 2.7.0.7, sedangkan tahun 2017 menggunakan versi 2.7.0.9 (Karena kurang berani melakukan update database di tengah jalan, mungkin takut ditabrak mobil). Pada versi ini tidak ada menu khusus untuk menginput saldo awal akrual, sedangkan laporan Neraca dan LPE pada versi 2.7.0.9 masih mengambil data dari inputan saldo awal CTA (Tabel Ta_Saldo_Awal). Karena itu saya melakukan modifikasi pada laporan Neraca dan LPE tanpa harus melakukan update ke versi 2.7.0.10 atau 2.7.0.11. Modifikasi query ini saya ambil dari database versi 2.7.0.11. Saya sendiri menyarankan sebaiknya lakukan update ke versi yang baru. Jika mengikuti cara saya agak ribet sih, karena harus modif sana sini.
Mungkin segitu saja penjelasan saya, jika ada yang kurang jelas mohon ditanyakan ke orang yang lebih mengerti. Jika terjadi error pada database Anda yang disebabkan oleh artikel ini, itu murni kesalahan Anda karena kenekatan Anda sendiri. Sebaiknya database-nya di-backup dulu. Sekian dan terima kasih.
sy ada toolnya Pak, https://www.dropbox.com/s/w3t7109b81hkh4m/Transfer%20Saldo%20Awal%202016-2017.rar?dl=0
MHN MAAF, kalo muncul warning “DATA UMUM RENSTRA 2016 BELUM DIISI” mhn solusinya, terima kasih
tool nya muncul pesan “DATA UMUM RENSTRA 2016 BELUM DIISI” saat akan proses transfer
mhn yg tool dr bpk syukur kalo gagal tranfer muncul “DATA UMUM RENSTRA BELUM DIISI”
sewaktu mau di run, muncul warning berikut:
Msg 137, Level 15, State 2, Line 31
Must declare the scalar variable “@Kd_Urusan”.