Showing posts with label Domain Masalah::Akuntansi. Show all posts
Showing posts with label Domain Masalah::Akuntansi. Show all posts

Saturday, November 07, 2009

Memulai Yang Baru : AkuntansiQ – Program Akuntansi dengan Visual Basic.NET 2009 Professional


DOWNLOAD : Source Code Aplikasi AkuntansiQ dan Referensi Visual Basic® .NET Power Coding  (<== karena dah cape dan proses upload masih berjalan agak lama, langsung saya post saja ya artikel ini. Nanti kalau udah rampung uploadnya, saya edit lagi. Tq)
Kalau Anda mengikuti Blog ini, maka Anda akan bisa mengetahui, bahwa saya sering merancang hal-hal yang baru, namun kebanyakan ya masih sebatas rancangan saja (tidak sampai selesai). Hehe. Ya, ini salah satunya : membuat produk Akuntansi dengan VB.NET.
Awalnya sih, saya tidak terlalu yakin VB.NET mampu  (atau, tepatnya, apakah saya mampu? hehe) membuat aplikasi Database yang komplit. Namun, kemarin baru saja menyelesaikan bimbingan tugas akhir berupa aplikasi Basis Data : lengkap dengan form entry dalam kompleksitas Master-Detail, pemrosesan standar saja dan report dengan Microsoft Reporting. Wah, kok ya bisa cepat ya? Hal-hal yang mengenai pemindahan kekuasaan, .. eh, maksud saya, hal-hal yang sering dulu jatuh bangun saat nulis aplikasi basis data baik di VB 6 atau Java (tidak Delphi ya, saya justru tidak utak-atik Delphi), di VB.NET ini sudah banyak (sekali deh) yang sudah diotomasi. Misal, ya itu tadi. Masalah Master-Detail. Bisa seketika jadi aja, asal bisa buat Data Relation di DataSetnya, seperti ini :
image
Itu sih, setelah Data Source yang koneksi ke basis data ditambahkan, Anda buka file *.xsd yang terbentuk (cukup satu file *.xsd untuk satu aplikasi ya), dan seret saja Primary Key tabel Master (dalam hal ini field Kode pada tabel Penjualan) ke tabel Detail (dalam hal ini tabel Penjualan Detail). Maka VB.NET akan mengenali relasi tersebut dalam Data Source-nya, seperti tampak berikut ini :
image
Akibatnya? Asyik banget, yang utama adalah, membuat form input Penjualan seperti yang tampak pada gambar di bawah ini, tidak perlu ada koding sama sekali : drag and drop saja.
image
Untuk Struktur databasenya, saya paparkan di bawah ini, dan ini baru sampai tahap mampu mengakomodasi satu jenis Transaksi saja ya : yaitu Penjualan. Yang lain, gampanglah. Anda lihat saja nanti method UpdateGL pada file ModuleKhusus.vb (saya sertakan source-nya nanti)
image
Form penjualan itu, saat toolbar Save ditekan, akan otomatis membuatkan jurnal umumnya (General Ledger), seperti tampak berikut:
image
Dengan sudah bisanya form input aplikasi akuntansi membuatkan entry GL-nya secara otomatis, maka menurut hemat saya, dia sudah mampu menyelesaikan permasalahan transaksi yang lain-lain (misal pembelian, arus kas, dan .. apa lagi ya? banyak deh ^^. Tapi utamanya cuma itu : beli, jual dan transfer kas). Contoh, dari entry GL di atas, Anda sudah bisa melihat berapa nilai Kas yang ada, berapa Piutang yang belum terbayarkan (namanya jg piutang sih) dan berapa nilai Total Penjualan pada suatu bulan Akuntansi tertentu. Jadi, laporan Neraca, Buku Besar saja sih, sudah ready made dengan seketika ya.
Ok, silahkan download kode dan juga referensi yang saya sertakan (Visual Basic® .NET Power Coding – format CHM). Pelajari kodenya, dan kalau bingung, buka file CHM yang saya sertakan. Bukan berarti akan ga bingung sih, kalau Bahasa Inggris masih jadi kendala, ya…tambah bingung :p
Ayo belajar bahasa Inggris!!! <== kok ending artikelnya malah ini ya :))
Semoga bermanfaat!
NB:
  • Untuk hal ini, terimakasih saya ucapkan untuk adik **** yang sampai jam … 1 malam mbarengin saya buat aplikasinya. Kalau kita ga kerja bareng, ga akan rampung lho itu : soalnya kasusnya juga spesifik gitu.
  • Nah, dalam hal ini nih, saya senang dengan profesi saya : saya bisa banyak belajar, dan … semoga juga bisa banyak memberi pelajaran.

Thursday, July 23, 2009

Keberhasilan Riset Plugin Based Architecture dengan SWING



Ini adalah perubahan rencana arsitektur dari kode sebelumnya (suka2 saya dunk).

Zahir Saya Pakai Sebagai Tool Verifikasi Metode Akuntansi (dan juga pembukuan jasa ini sih)

Dimulai dari penggunaan Zahir sbg solusi saya untuk software akuntansi pribadi (ternyata perlu sekali), dan dari beberapa rencana sebelumnya, yaitu saya ingin wujudkan aplikasi ERP milik sendiri via Eclipse RCP, maka dorongan untuk menyempurnakan pustaka2 sendiri pemercepat pengembangan aplikasi Swing GUI, membuat saya melakukan pengetesan sederhana agar mekanisme plugin (kira2 spt itulah) yang dimiliki Eclipse, bisa juga dimiliki aplikasi akuntansi ini.

Dan berhasil.

Inti dari semua keberhasilan itu, adalah kemampuan Java untuk menginisialisasi kelas secara run time, dengan baris kode ini :

Class.forName("startup.PluginOne").newInstance();

Lihat, bahwasanya argumen "startup.PluginOne" adalah Fully Qualified Name untuk kelas yang akan diinstansiasi. Dalam pembicaraan plugin, maka itu adalah nama kelas startup untuk menginisialisasi Plugin. Tentu, jika dikembangkan lebih lanjut, akan sangat kompleks manajemen plugin yang bisa terjadi, namun untuk test pertama ini, cukuplah baris kode di bawah ini menjadi titik awal memasuki pengembangan tersebut :

Plugin p = (Plugin) Class.forName("startup.PluginOne").newInstance();

Yaitu, saya akan punya kelas Plugin, yang merupakan induk dari semua plugin yang akan dikembangkan. Nantinya, diharapkan plugin yang berupa file Jar, tinggal dikopi ke suatu folder khusus, maka framework ini akan menginisialisasi plugin tersebut, yang efeknya adalah menambahkan fungsionalitas aplikasi secara runtime. Dengan sangat mudah. (bayangkan, jika modul2 ERP yang berdiri sendiri, namun terintegrasi, dapat sekedar di kopi ke suatu folder, tanpa perlu manajemen / instalasi tambahan).

Itu saja yang menjadi pokok pikiran saya seharian lalu. Silahkan download tiga proyek yang telah saya sertakan disini, yaitu :
  1. Platform : ini merupakan framework utama aplikasi. Nantinya, Anda tinggal mengkustomize aplikasi ini untuk mendapatkan software kustom.
  2. PlatformLibrary : merupakan core dari mekanisme plugin yang diacu baik oleh project Platform maupun project plugin2 yang lain. Kelas Plugin, induk dari semua plugin, ada di project ini.
  3. PluginOne : contoh satu plugin yang telah dikembangkan. Plugin ini melakukan kontribusi terhadap toolbar utama (tombol Plugin Penjualan).

Sejauh ini, sebenarnya saya ingin menahan diri dahulu untuk membuat artikel ini, sebelum mengimplementasikan satu kekurangan akhir, yaitu lokasi dari file jar plugin masih ditambahkan via opsi Libraries pada Netbeans. Tentu ini tidak boleh terjadi. Nah, salah satu cara agar instansiasi kelas secara dinamis bisa dipanggil menggunakan JAR yang diletakkan dimana saja, adalah dengan menggunakan Jar Component Loader disini. Sayang, semalam hasil download tidak baik. Jadi, cukuplah disini saja.

Semoga bermanfaat!
NB:
  • Aplikasi Run yang memunculkan window utama adalah Platform.
  • Nantinya, jika dikerjakan bersama2 oleh lebih dari satu programmer, maka masing2 programmer cukup mengembangkan sistemnya sesuai dengan interface dari PlatformLibrary, yang didistribusikan via JAR (atau source Netbeans saja jika masih dalam heavy development). Setelah selesai, ia cukup menyerahkan JAR hasil kerjaannya, dan integrator tinggal mengkopi saja JAR tersebut ke folder plugin. Tentu mekanisme ini menunggu dipergunakannya juga JCL.
  • Ada masukan dari agar dipakai JPF (Java Plugin Framework). Kayanya develop snediri deh. Dan kemudian share...
  • Wealah, screenshot aplikasinya malah g kbawa. Hehe. Segitu dulu aja ya