SISTEM INFORMASI AKUNTANSI PENETAPAN HARGA POKOK PENJUALAN MOBIL MENGGUNAKAN METODE PERPETUAL PADA HONDA IDK 1 MEDAN

Ukuran: px
Mulai penontonan dengan halaman:

Download "SISTEM INFORMASI AKUNTANSI PENETAPAN HARGA POKOK PENJUALAN MOBIL MENGGUNAKAN METODE PERPETUAL PADA HONDA IDK 1 MEDAN"

Transkripsi

1 SISTEM INFORMASI AKUNTANSI PENETAPAN HARGA POKOK PENJUALAN MOBIL MENGGUNAKAN METODE PERPETUAL PADA HONDA IDK 1 MEDAN SKRIPSI Oleh : ELFIANA NIM PROGRAM STUDI SISTEM INFORMASI FAKULTAS TEKNIK DAN ILMU KOMPUTER UNIVERSITAS POTENSI UTAMA MEDAN 2016

2

3

4

5

6

7 LEMBAR PERNYATAAN TUJUAN SKRIPSI SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer

8 Saya akui karya ini adalah hasil kerja saya sendiri kecuali kutipan dan ringkasan yang masing masing telah saya jelaskan sumbernya. Tanda tangan : Nim : Nama Penulis : Elfiana Tanggal : 11 Agustus 2016

9 Untuk Alm. Ayahanda dan Ibu Tercinta Terima kasih ayahanda Terima kasih ibu. Sudah mendidikku dari dini hingga dewasa. Kepada ibu yang telah menjadi seorang ayah dan juga seorang ibu bagiku dengan perjuangan dan pengorbanan demi anggan anak mu menjadi seorang SARJANA Tak kenal hujan dan panas dengan semangatmu mengantarkan ku hingga ke jenjang pendidikan Dengan doa restu ibu, kini anggan anakmu sudah tercapai. Hanya rasa terima kasih yang setinggi-tingginya yang bisa aku bawa sebagai penghargaan Dan sebait doa yang aku harapkan panjang umur dan sehat selalu, mendampingiku hingga anakmu menjadi TERBAIK.

10 ABSTRAK Perkembangan arus globalisasi dan perkembangan teknologi menyebabkan pengaruh lingkungan usaha ditempat perusahaan beroperasi menjadi semakin kompleks, segala jenis perubahan yang berkembang akan menimbulkan banyak tekanan baik dari luar maupun dari dalam perusahaan. Salah satu masalah yang harus diperhatikan harga pokok penjualan yang meliputi komponen dari laporan laba rugi, yang menjadi perhatian manajemen perusahaan dalam mengendalikan operasional. Honda IDK 1 Medan merupakan perusahaan yang bergerak dalam bidang distributor penjualan mobil. Dalam kegiatan pencatatan pembelian dan penjualan, biasanya dilakukan manual dengan mencatat barang masuk dan keluar. Metode Perpetual merupakan metode yang digunakan dalam penelitian ini. Metode perpetual merupakan pencatatan yang berkaitan dengan persediaan barang dagang yang dilakukan secara berkelanjutan, sehingga bila terjadi pembelian akan menambah persediaan barang dagang dan bila terjadi penjualan akan mengurangi persediaan barang dagangan. Untuk teknik analisis data menggunakan metode UML (Unifed Modelling Language). Analisis terstruktur yaitu Use Case Diagram untuk memperjelaskan kebutuhan user, Activity Diagram menggambarkan proses parallel pada program, Class Diagram menggambarkan keadaan (atribut/properti) suatu system, dan Sequence Diagram menggambarkan alur penyimpanan data (database). Perangkat lunak pembangunan sistem adalah database SQL Server 2008 R2 dan bahasa pemograman yang dipakai adalah Visual Studio Kata Kunci : Akuntansi, Harga Pokok Penjualan, Metode Perpetual, PT.UML, SQL Server 2008 R2, Visual Studio 2010.

11 ABSTRACT The development of globalization and technological development causes influence the business environment in place the company operates is becoming increasingly complex, any kind of change that develops will pose a lot of pressure both from outside and from within the company. One issue to be aware of cost of goods sold includes the components of the income statement, which is of concern to company management in operational control. Honda IDK 1 Medan is a company engaged in automobile sales distributor. In the recording of purchases and sales activities, usually done manually by recording incoming and outgoing goods. Perpetual method is a method used in this study. Perpetual method is associated with the recording of merchandise inventory is carried out in a sustainable manner, so that in case of purchase will increase the supply of merchandise and when a sale will reduce the supply of merchandise. For data analysis techniques using UML (Unifed Modeling Language). Analysis of structured Use Case Diagram to clarify user requirements, Activity Diagram illustrates the parallel process on the program, describing the state Class Diagram (attribute / property) of a system, and Sequence diagram illustrates the flow of data storage (database). Software development is a database system SQL Server 2008 R2 and the programming language used is Visual Studio Keyword : Accounting, Cost of Goods Sold, Perpetual Method, UML, SQL Server 2008 R2, Visual Studio 2010.

12 KATA PENGANTAR Alhamdulillah penulis ucapkan puji syukur atas kehadirat Allah SWT yang telah memberikan kesehatan dan kesempatan kepada penulis dan Shalawat beriringkan salam tak lupa penulis tujukan kepada Nabi Muhammad SAW. sehingga penulis dapat melaksanakan dan menyelesaikan Skripsi dengan baik. Pada dasarnya pendidikan adalah suatu proses pembentukan. Pendidikan tidak hanya mengembangkan dimensi Kognitif peserta didik tetapi juga membentuk watak dan kepribadian. Pemikiran ini jugalah mengapa dalam kurikulum Skripsi sebagai kewajiban yang harus dilaksanakan untuk salah satu syarat untuk menyelesaikan Pendidikan Strata-1 pada Universitas Potensi Utama Medan. Dalam penyusunan skripsi ini penulis juga mengambil beberapa buah pemikiran dari para karyawan yang bekerja di PT. Istana Deli Kencana serta buku-buku panduan yang mendukung penyusunan skripsi ini. Selama proses menyusun skripsi ini penulis telah banyak mendapatkan bimbingan maupun bantuan dari berbagai pihak. Pada kesempatan ini penulis mengucapkan terima kasih kepada : i

13 1. Bapak Fhery Agustin, SE, M.Kom selaku Dosen Pembimbing I yang telah memberi arahan dan masukan yang berguna tentang bagaimana cara penulisan laporan yang baik. 2. Ibu Roslina, MIT selaku Dosen Pembimbing II yang telah memberi arahan dan masukan yang berguna tentang bagaimana cara penulisan laporan yang baik. 3. Ibu Hj. Nuriandy, BA Selaku Pembina Yayasan Potensi Utama Medan 4. Bapak Bob Subhan Riza, ST,M.Kom selaku Ketua Yayasan Potensi Utama Medan. 5. Ibu Rika Rosnelly, SH, M.Kom, selaku Rektor Universitas Potensi Utama Medan. 6. Ibu Lili Tanti M.Kom, selaku Wakil Rektor I Universitas Potensi Utama Medan. 7. Ibu Ratih Puspasari, M.Kom, selaku Dekan Fakultas Teknik dan Ilmu Komputer. 8. Ibu Mas Ayoe Elhias Nasution, M.Kom, selaku Ketua Program Studi Universitas Potensi Utama Medan Jurusan Sistem Informasi. 9. Kepada perusahaan yang telah bersedia menerima penulis untuk melakukan Riset di PT. Istana Deli Kencana. 10. Kepada Ayahanda Alm. Khaidir Usman dan Ibunda Halimah serta Keluarga yang telah membimbing dan telah memberikan dorongan dan bantuan baik do a maupun materil sehingga penulis dapat menyelesaikan laporan ini. ii

14 11. Sahabat penulis serta rekan-rekan saya yang senasib dan seperjuang Sistem Informasi C Pagi Stambuk 2012 Khususnya Grahita, Nurlina, T.Fitri dan Suningsih, atas bantuan dan motivasi untuk menyelesaikan laporan ini. 12. Kepada seseorang yang spesial yaitu Reza Fahlevi yang telah memberikan dukungan secara materil dan moril serta motivasinya selama penulis melakukan penyusunan skripsi ini, terima kasih atas semuanya. Dalam penyusunan Skripsi ini penulis menyadari bahwa masih terdapat kekurangan, oleh karena itu penulis mengharapkan kritik dan saran yang bersifat membangun untuk kesempurnaan laporan ini agar lebih bermanfaat bagi penulis dan bagi kita semua. Medan, 05 Agustus 2016 Penulis, Elfiana iii

15 DAFTAR ISI ABSTRAK KATA PENGANTAR... i DAFTAR ISI... iv DAFTAR GAMBAR... viii DAFTAR TABEL... xi DAFTAR LAMPIRAN... xii BAB I PENDAHULUAN... 1 I.1. Latar Belakang... 1 I.2. Ruang Lingkup Permasalahan... 2 I.2.1. Identifikasi Masalah... 2 I.2.2. Perumusan Masalah... 3 I.2.3. Batasan Masalah... 3 I.3. Tujuan dan Manfaat... 4 I.3.1. Tujuan... 4 iv

16 I.3.2. Manfaat... 4 I.4. Metodologi Penelitian... 4 I.5. Keaslian Penelitian... 7 I.6. Lokasi Penelitian I.7. Sistematika Penulisan BAB II LANDASAN TEORI II.1. Akuntansi II.2. Sistem Informasi Akuntansi II.2.1. Konsep Sistem Informasi Akuntansi II.2.2. Data dan Informasi Akuntansi II.3. Persediaan II.4. Harga Pokok Penjualan II.5. Metode Perpetual II.6. Visual Studio II.7. SQL Server II.8. Entity Relationship Diagram (ERD) II.9. Teknik Normalisasi v

17 II.9.1. Bentuk-Bentuk Normalisasi II.10. UML (Unifed Modeling Language) BAB III ANALISIS DAN DESAIN SISTEM III.1. Analisa Masalah III.2. Penerapan Metode Perpetual III.3. Desain Sistem III.3.1. Use Case Diagram III.3.2. Class Diagram III.3.3. Activity Diagram III.3.4. Sequence Diagram III.4. Desain Basis Data III.4.1. Normalisasi III Normalisasi Data Penjualan III.4.2. Desain Tabel III.5. Desain User Interface III.5.1. Desain Output vi

18 BAB IV HASIL DAN UJI COBA IV.1. Tampilan Hasil IV.2. Uji Coba Hasil IV.2.1. Skenario Pengujian IV.3. Hasil Pengujian IV.3.1. Pengujian Login IV.3.2. Pengujian Form Menu Utama IV.3.3. Pengujian Admin IV.3.4. Pengujian Data Mobil IV.3.5. Pengujian Data Pelanggan IV.3.6. Pengujian Data Pembelian IV.3.7. Pengujian Data Penjualan IV.4. Kelebihan dan Kekurangan Sistem IV.4.1. Kelebihan Sistem IV.4.2. Kekurangan Sistem vii

19 BAB V KESIMPULAN DAN SARAN V.1. Kesimpulan V.2. Saran DAFTAR PUSTAKA LAMPIRAN viii

20 DAFTAR GAMBAR Gambar I.1. Prosedur Perancangan Sistem... 5 Gambar II.1. Bentuk Simbol ERD Gambar III.1. Use Case Gambar III.2. Class Diagram Gambar III.3. Activity Diagram Login Gambar III.4. Activity Diagram Admin Gambar III.5. Activity Diagram Data Mobil Gambar III.6. Activity Diagram Data Pelanggan Gambar III.7. Activity Diagram Data Pembelian Gambar III.8. Activity Diagram Data Penjualan Gambar III.9. Activity Diagram Laporan Pembelian Gambar III.10. Activity Diagram Laporan Penjualan Gambar III.11. Activity Diagram Laporan Persediaan Gambar III.12. Activity Diagram Laporan Jurnal Umum Gambar III.13. Activity Diagram Laporan Buku Besar ix

21 Gambar III.14. Activity Diagram Laporan Laba Rugi Gambar III.15. Sequence Diagram Login Gambar III.16. Sequence Diagram Admin Gambar III.17. Sequence Diagram Data Mobil Gambar III.18. Sequence Diagram Data Pelanggan Gambar III.19. Sequence Diagram Data Pembelian Gambar III.20. Sequence Diagram Data Penjualan Gambar III.21. Sequence Diagram Laporan Pembelian Gambar III.22. Sequence Diagram Laporan Penjualan Gambar III.23. Sequence Diagram Laporan Persediaan Gambar III.24. Sequence Diagram Laporan Jurnal Umum Gambar III.25. Sequence Diagram Laporan Buku Besar Gambar III.26. Sequence Diagram Laporan Laba Rugi Gambar III.27. Desain Form Laporan Pembelian Gambar III.28. Desain Form Laporan Penjualan Gambar III.29. Desain Form Laporan Persediaan Gambar III.30. Desain Form Laporan Jurnal Umum x

22 Gambar III.31. Desain Form Laporan Buku Besar Gambar III.32. Desain Form Laporan Laba Rugi Gambar III.33. Desain Form Login Gambar III.34. Desain Form Admin Gambar III.35. Desain Form Data Mobil Gambar III.36. Desain Form Data Pelanggan Gambar III.37. Desain Form Data Pembelian Gambar IV.1. Tampilan Form Login Gambar IV.2. Tampilan Form Admin Gambar IV.3. Tampilan Form Data Mobil Gambar IV.4. Tampilan Form Data Pelanggan Gambar IV.5. Tampilan Form Data Pembelian Gambar IV.6. Tampilan Form Data Penjualan Gambar IV.7. Tampilan Form Laporan Pembelian Gambar IV.8. Tampilan Form Laporan Penjualan Gambar IV.9. Tampilan Form Laporan Persediaan Gambar IV.10. Tampilan Form Laporan Jurnal Umum xi

23 Gambar IV.11. Tampilan Form Laporan Buku Besar Gambar IV.12. Tampilan Form Laporan Laba Rugi xii

24 DAFTAR TABEL Tabel I.1. Kebutuhan Sistem Fungsional... 6 Tabel I.2. Kebutuhan Sistem Nonfungsional... 7 Tabel I.3. Keaslian Penelitian... 8 Tabel II.1. Jurnal Umum Tabel II.2. Kartu Stok Moving Average Tabel II.3. Laporan Laba Rugi Komparatif Tabel II.4. Simbol Use Case Tabel II.5. Simbol Activity Diagram Tabel II.6. Multiplicity Class Diagram Tabel II.7. Simbol Sequence Diagram Tabel III.1. Jurnal Umum Tabel III.2. Kartu Stok Moving Average Tabel III.3. Laporan Laba Rugi Komparatif Tabel III.4. Data Penjualan Tidak Normal Tabel III.5. Data Hasil Normal Pertama Tabel III.6. Data Penjualam 2NF xiii

25 Tabel III.7. Data Pelanggan 2NF Tabel III.8. Rancangan Tabel Admin Tabel III.9. Rancangan Tabel Buku_Besar Tabel III.10. Rancangan Tabel Detail_beli Tabel III.11. Rancangan Tabel Detail_jual Tabel III.12. Rancangan Tabel Detail_stok Tabel III.13. Rancangan Tabel Jurnal Tabel III.14. Rancangan Tabel laba_rugi Tabel III.15. Rancangan Tabel mobil Tabel III.16. Rancangan Tabel Pelanggan Tabel III.17. Rancangan Tabel Pelanggan Tabel III.18. Rancangan Tabel Pembelian Tabel III.19. Rancangan Tabel Penjualan Tabel III.20. Rancangan Tabel Persediaan Tabel IV.1. Skenario Pengujian Sistem Tabel IV.2. Pengujian Data Login Tabel IV.3. Pengujian Menu Utama xiv

26 DAFTAR LAMPIRAN Lampiran 1 : Listing Program Lampiran 2 : Surat Pengajuan Judul Skripsi Lampiran 3 : Formulir Pendaftaran Judul Skripsi Lampiran 4 : Surat Pernyataan Bersedia Membimbing Pembimbing I Lampiran 5 : Surat Pernyataan Bersedia Membimbing Pembimbing II Lampiran 6 : Formulir Pendaftaran Seminar Skripsi Lampiran 7 : Berita Acara Seminar Hasil Skripsi Lampiran 8 : Surat Persetujuan Sidang Skripsi Lampiran 9 : Formulir Pendaftaran Sidang Skripsi Lampiran 10 : Lembar Pengesahan Lampiran 11 : Surat Izin Melakukan Riset Dari Perusahaan Lampiran 12 : Surat Keterangan Selesai Melakukan Riset Dari Perusahaan xv

27 BAB I PENDAHULUAN

28 BAB I PENDAHULUAN I.1. Latar Belakang Perhitungan harga penjualan pada perusahaan berdasarkan pengumpulan data transaksi pembelian mobil, sesuai dengan harga pokok penjualan di dalam perusahaan. Dalam penentuan harga pokok penjualan, informasi yang dibutuhkan oleh perusahaan adalah informasi mengenai persediaan awal barang, pembelian dan persediaan akhir barang, ketiga aspek tersebut sangat berpengaruh dalam melakukan perhitungan harga penjualan karena harga penjualan yang diterapkan oleh perusahaan akan mempengaruhi jumlah pembelian pada perusahaan, dan jumlah pembelian pada perusahaan akan secara otomatis mempengaruhi jumlah persediaan barang (Rudianto ; 2012 : 116). Penelitian ini bertujuan untuk mengevaluasi penerapan metode penentuan harga pokok penjualan yang digunakan oleh Honda IDK 1 Medan sebagai penentuan harga jual produknya. Asumsi awal yang ada adalah bahwa penggunaan metode yang masih sangat sederhana yang digunakan oleh pemilik usaha belum optimal sehingga hal tersebut terjadi, maka penelitian ini juga mencoba memberikan satu langkah perhitungan HPP dengan berdasarkan datadata yang ada dan dibandingkan dengan HPP yang digunakan oleh perusahaan dalam menentukan harga jual produk. Sistem pencatatan metode perpetual disebut juga metode buku adalah sistem dimana setiap persediaan yang masuk dan keluar dicatat di pembukuan. 1

29 2 Setiap jenis barang dibuatkan kartu persediaan dan di dalam pembukuan dibuatkan rekening pembantu persediaan. Rincian dalam buku pembantu bisa diawasi dqari rekening kontrol persediaan barang dalam buku besar. Rekening yang digunakan untuk mencatat persediaan ini terdiri dari beberapa kolom yang dapat dipakai untuk mencatat pembelian, penjualan dan saldo persediaan. Setiap perubahan dalam persediaan diikuti dengan pencatatan dalam rekening persediaan sehingga jumlah persediaan sewaktu-waktu dapat diketahui dengan melihat kolom saldo dalam rekening persediaan. Masing-masing kolom dirinci lagi untuk kuantitas dan harga perolehannya (Maulinda Octaviana ; 2012 : 2). Berdasarkan latar belakang dan permasalahan yang akan diangkat tersebut maka dalam skripsi ini penulis mengambil judul Sistem Informasi Akuntansi Penetapan Harga Pokok Penjualan Mobil Menggunakan Metode Perpetual Pada Honda IDK 1 Medan. I.2. Ruang Lingkup Permasalahan I.2.1. Identifikasi Masalah Berdasarkan uraian latar belakang masalah, maka penelitian ini mengidentifikasi permasalahan, diantaranya adalah sistem penetapan harga pokok terhadap penjualan mobil masih menggunakan metode perhitungan yang masih sangat sederhana yaitu melihat aktivitas penjualan mobil, kemudian berdasarkan penjualan mobil maka akan mempengaruhi aktivitas pembelian barang dan persediaan barang kemudian perusahaan akan melakukan perhitungan harga penjualan berdasarkan permintaan barang.

30 3 I.2.2. Perumusan Masalah Berdasarkan latar belakang masalah dan identifikasi masalah diatas, rumusan masalah dari penelitian ini adalah merancang dan membangun sebuah sistem akuntansi yang dapat mempermudah perusahaan dalam melakukan perhitungan harga pokok penjualan dengan metode Perpetual dan mempermudah perusahaan dalam penyampaian laporan penjualan dan keuangan yang akan diserahkan kepada pimpinan perusahaan I.2.3. Batasan Masalah Adapun batasan masalah dalam penelitian ini adalah sebagai berikut : 1. Data yang digunakan oleh penulis adalah data mobil, data daftar harga mobil, data persediaan barang. 2. Sistem akan memproses data mobil, data daftar harga mobil dan data persediaan barang dan melakukan perhitungan serta melakukan pencatatan persediaan dengan metode perpetual. 3. Data yang menjadi outputnya adalah Laporan harga pokok penjualan mobil. 4. Bahasa pemrograman yang digunakan untuk membuat aplikasi ini adalah Microsoft Visual Studio Basis data yang digunakan adalah Microsoft SQL Server 2008 R2.

31 4 I.3. Tujuan dan Manfaat I.3.1. Tujuan Adapun tujuan dari penelitian ini adalah merancang dan membangun sebuah sistem penetapan harga pokok terhadap penjualan mobil dengan menggunakan metode perhitungan perpetual dan mempermudah penyebaran informasi transaksi penjualan dan penyampaian laporan penjualan. I.3.2. Manfaat Setiap hasil penelitian pada prinsipnya harus berguna, maka dari itu manfaat dari penelitian ini adalah : 1. Sistem penetapan Harga jual dapat memberikan informasi harga jual produk yang akan mengurangi tingkat kerugian perusahaan. 2. Sistem perhitungan harga pokok penjualan produk dengan menggunakan Metode Perpetual dalam perhitungan harga pokok produk pada perusahaan akan memberikan informasi biaya penjualan secara keseluruhan. I.4. Metodologi Penelitian Proses analisis ini menggunakan 2 (dua) metode pengumpulan data yang dilaksanakan oleh penulis, yaitu : 1. Studi Lapangan Merupakan metode yang dilakukan dengan mengadakan studi langsung ke lapangan untuk mengumpulkan data yaitu peninjauan langsung ke lokasi studi. Adapun teknik pengumpulan data yang dilakukan penulis adalah :

32 5 a. Pengamatan (Observation) Merupakan salah satu metode pengumpulan data yang cukup efektif untuk mempelajari suatu sistem. Kegiatannya dengan melakukan pengamatan langsung terhadap kegiatan proses perhitungan harga pokok penjualan. b. Sampel Mengambil contoh-contoh data yang diperlukan khususnya data harga mobil dan dokumen kegiatan perusahaan lainnya. 2. Studi Kepustakaan (Library Research) Penulis melakukan studi pustaka untuk memperoleh data-data mengenai penerapan harga pokok penjualan dari berbagai sumber bacaan seperti buku akuntansi, manajemen basis data, dan lain-lain. Ada beberapa prosedur yang digunakan dalam pembuatan sistem adalah sebagai berikut : Gambar I.1. Prosedur Perancangan Sistem

33 6 1. Target/Tujuan Penelitian Target penelitian ini yaitu merancang dan membangun Sistem Informasi Akuntansi Penetapan Harga Pokok Penjualan Mobil Menggunakan Metode Perpetual Pada Honda IDK 1 Medan. 2. Analisis Kebutuhan Menganalisa kebutuhan sistem yang sudah ada dan menambahkan sistem yang baru dalam perancangan bila ternyata dibutuhkan. Data yang diperlukan dalam analisa ini adalah data mobil, data daftar harga mobil, data persediaan barang. 3. Spesifikasi dan Desain Tujuan utama tahap analisis kebutuhan sistem adalah untuk mengetahui syarat kemampuan atau kriteria yang harus dipenuhi oleh sistem agar keinginan pemakai sistem dapat terwujud. Tahap analisis ini terbagi menjadi dua, yaitu analisis kebutuhan sistem fungsional dan analisis kebutuhan sistem nonfungsional yang dapat dilihat pada Tabel I.1 dan Tabel I.2 dibawah ini: Tabel I.1. Kebutuhan Sistem Fungsional No Kebutuhan Rincian Kebutuhan 1. Fungsi Sistem Pengolah data perhitungan harga pokok penjualan Sebagai interface penyampaian informasi 2. Perangkat Lunak Microsoft Visual Studio 2010 Microsoft SQL Server 2008 R2 3. Pelaksana Sistem User 4. Pengolah Sistem Programmer

34 7 Tabel I.2. Kebutuhan Sistem Nonfungsional No Kebutuhan Rincian Kebutuhan 1. Sistem Operasi Minimal Windows XP SP 2 2. Prosesor Minimal Intel Corei3 3. RAM Minimal 2GB 4. Hardisk Minimal 120GB 5. Monitor/LCD Minimal Resolusi 1024x Implementasi dan Verifikasi Tahap ini terdiri dari sistem input, proses, dan output. Input merupakan rancangan masukan dari sistem, desain ini adalah desain dari form yang akan digunakan pada aplikasi. Output merupakan laporan yang akan digunakan pada aplikasi. Sedangkan proses merupakan rancangan bagaimana sistem akan berjalan. Proses akan digambarkan menggunakan Unified Medelling Language. Setelah sistem selesai dilakukan akan dilanjutkan dengan implementasi menggunakan Microsoft Visual Studio 2010 dan Microsoft SQL Server 2008 R2. 5. Validasi Sistem Validasi sistem yang dilakukan adalah melakukan pengujian sistem secara keseluruhan pada Honda IDK 1 Medan I.5. Keaslian Penelitian Berikut ini perbandingan antara sistem yang lama dengan sistem yang baru pada tabel berikut :

35 8 Tabel I.3. Keaslian Penelitian No Nama Peneliti Judul Penelitian Metode Penelitian Persamaan Perbedaan Hasil Penelitian 1 Hadi Supriyat no (2012) Aplikasi Akuntansi Persediaan Bahan Baku Dengan Metode Perpetual Mengguna kan MYOB Accountin g Pada PD. Lumbungs ari Penelitian yang dilakukan oleh hadi suproyatno menggunakan metode yang sama dengan metode yang dilakukan oleh penulis yaitu metode perpetual Hadi supriyatno melakukan penelitian terhadap persediaan bahan baku yang tersedia pada PD. Lumbungsari sedangkan pada penelitian inis, penulis melakukan penelitian terhadap penentuan harga pokok penjualan pada Honda IDK 1. PD. Lumbung Sari adalah perusahaan yang bergerak dalam bidang produksi roti yaitu perusahaan yang membeli bahan dan mengubah bentuknya menjadi roti untuk dapat dijual. Perusahaan yang bergerak dibidang produksi merupakan perusahaaan industri yaitu perusahaan yang mempunyai kegiatan usaha mengolah bahan baku untuk menghasilkan produk, kemudian dijual untuk memperoleh keuntungan (laba). Bahan baku yang dibutuhkan dalam proses produksi roti adalah terigu, ragi, mentega, susu dan bahan -bahan lainnya yang diperlukan dalam proses produksi yang kemudiaan diproses hingga menjadi barang jadi dan siap untuk dijual. 2 Monica Arista Carolina (2014) Perancang an Sistem Informasi Akuntansi Persediaan Penelitian yang dilakukan oleh hadi suproyatno menggunakan metode yang sama dengan metode yang dilakukan oleh penulis yaitu metode perpetual. Monica Arista Carolina melakukan penelitian terhadap persediaan bahan baku yang tersedia pada Toko Seneng Santoso sedangkan pada penelitian ini, penulis melakukan penelitian terhadap penentuan harga pokok penjualan pada Honda IDK 1. Toko Seneng Santoso masih menggunakan cara yang manual untuk mengetahui persediaan barang sehingga mengakibatkan persediaan barang tidak terkontrol dengan baik. Hal ini yang mendorong penulis untuk melakukan penelitian pada Toko Seneng Santoso dan memilih judul Perancangan Sistem Informasi Akuntansi Persediaan : Rancang Bangun Sistem Pada Toko Seneng Santoso menggunakan Microsoft Visual Basic 6.0 dan Crystal Report

36 9 3 Elfiana (2016) Sistem Informasi Akuntansi Penetapan Harga Pokok Penjualan Mobil Mengguna kan Metode Perpetual Pada Honda IDK 1 Medan Terciptanya sistem penerapan Harga jual yang dapat memberikan informasi harga jual produk untuk menutupi biaya-biaya produksi akan mengurangi tingkat kerugian perusahaan dan Terciptanya sistem perhitungan harga pokok penjualan produk dengan menggunakan Metode Perpetual dalam perhitungan harga pokok produk pada perusahaan akan memberikan informasi biaya penjualan secara keseluruhan. Pada penjelasan beberapa penelitian yang pernah dilakukan oleh peneliti sebelumnya mengenai penggunaan metode yang sama dengan penelitian ini. Pada penelitian pertama yang dilakukan oleh Hadi Supriyatno (2012) dengan judul Aplikasi Akuntansi Persediaan Bahan Baku Dengan Metode Perpetual Menggunakan MYOB Accounting Pada PD. Lumbungsari, Hadi supriyatno melakukan penelitian terhadap persediaan bahan baku yang tersedia pada PD. Lumbungsari sedangkan pada penelitian ini, penulis melakukan penelitian terhadap penentuan harga pokok penjualan pada Honda IDK 1. Penelitian yang dilakukan oleh Monica Arista dengan judul Perancangan Sistem Informasi Akuntansi Persediaan, Monica Arista Carolina melakukan penelitian terhadap persediaan bahan baku yang tersedia pada Toko Seneng Santoso sedangkan pada penelitian ini, penulis melakukan penelitian terhadap penentuan harga pokok penjualan pada Honda IDK 1.

37 10 I.6. Lokasi Penelitian Penelitian ini dilakukan pada Honda IDK 1 Medan yang beralamat Jl. H. Adam Malik, Sei Agul, Medan Bar Kota Medan Sumatera Utara. I.7. Sistematika Penulisan Adapun sistematika penulisan yang diajukan dalam skripsi ini adalah sebagai berikut : BAB I : PENDAHULUAN Pada bab ini menerangkan tentang latar belakang, ruang lingkup permasalahan, tujuan dan manfaat, metode penelitian dan sistematika penulisan. BAB II : LANDASAN TEORI Pada bab ini menerangkan tentang teori-teori dan metode yang berhubungan dengan topik yang dibahas atau permasalahan yang sedang dihadapi yaitu berupa pembahasan mengenai sistem akuntansi, UML, ERD dan normalisasi. BAB III : ANALISIS DAN PERANCANGAN Pada bab ini mengemukakan tentang analisa sistem yang sedang berjalan, evaluasi sistem yang berjalan dan desain sistem secara detail. BAB IV : HASIL DAN UJI COBA Pada bab ini menerangkan hasil dan pembahasan program yang dirancang serta kelebihan dan kekurangan sistem yang dirancang.

38 11 BAB V : KESIMPULAN DAN SARAN Pada bab ini berisi kesimpulan penulisan dan saran dari penulis sebagai perbaikan di masa yang akan datang untuk sistem.

39 BAB II LANDASAN TEORI

40 BAB II LANDASAN TEORI II.1. Akuntansi Akuntansi berasal dari bahasa Inggris yaitu to account yang artinya menghitung atau mempertanggungjawabkan sesuatu yang ada kaitannya dengan pengelolaan bidang keuangan dari sesuatu perusahaan kepada pemiliknya atas kepercayaan yang telah diberikan kepada pengelola tersebut untuk menjalankan kegiatan perusahaan. Perngertian lain akuntansi merupakan kumpulan prosedur berupa kegiatan mencatat, mengikhtisarkan, mengklasifikasikan, dan melaporkan keuangan dalam bentuk laporan keuangan dalam satu periode waktu. Laporan keuangan yang dihasilkan ini harus dapat pertanggungjawabkan kepada pihak-pihak yang berkepentingan (V. Wiratna Sujarweni ; 2016 : 1). Kebutuhan akan informasi yang berkaitan dengan aktivitas ekonomi dan kondisi perusahaan tidak hanya muncul dari pihak eksternal perusahaan, seperti kreditor, supplier, pemerintah, atau calon investor, tetapi juga muncul dari pihak internal organisasi. Pemakai laporan keuangan perusahaan, akuntansi dibagi dua yaitu akuntansi keuangan dan akuntansi manajemen (Rudianto ; 2012 : 4). II.2. Sistem Informasi Akuntansi Sistem informasi akuntansi adalah sistem yang bertujuan untuk mengumpulkan dan memproses data serta melaporkan informasi yang berkaitan 12

41 13 dengan saksi keuangan. Lingkup sistem informasi akuntansi dapat dijelaskan dari manfaat yang didapat dari informasi akuntansi. Manfaat atau tujuan sistem informasi akuntansi tersebut adalah sebagai berikut : 1. Mengamankan harta / kekayaan perusahaan. Harta / kekayaan di sini meliputi kas perusahaan, persediaan barang dagangan, termasuk aset tetap perusahaan. 2. Menghasilkan beragam informasi untuk pengambilan keputusan. misal, pengelola toko swalayan memerlukan informasi mengenai barang apa saja yang diminati oleh konsumen. Membeli barang yang kurang laku berarti kas akan terjebak dalam persediaan dan berarti kehilangan kesempatan untuk membeli barang dagangan yang laku. 3. Menghasilkan informasi untuk pihak eksternal. Setiap pengelola usaha memiliki kewajiban untuk membayar pajak. Besarnya pajak yang dibayar tergantung pada omset penjualan (jika pengelola memilih menggunakan norma dalam perhitungan pajaknya) atau tergantung pada laba rugi usaha (jika pengelola memilih untuk tidak menggunakan norma dalam perhitungan pajaknya). 4. Menghasilkan informasi untuk penilaian kinerja karyawan atau divisi. Sistem informasi dapat juga dimanfaatkan untuk penilaian kinerja karyawan atau divisi. 5. Menyediakan data masa lalu untuk kepentingan audit (pemeriksaan). Data yang tersimpan dengan baik sangat memudahkan proses audit (pemeriksaan).

42 14 6. Menghasilkan informasi untuk penyusunan dan evaluasi anggaran perusahaan. Anggaran merupakan alat yang sering digunakan perusahaan untuk mengendalikan pengeluaran kas. 7. Menghasilkan informasi yang diperlukan dalam kegiatan perencanaan dan pengendalian. Selain berguna untuk membandingkan informasi yang berkaitan dengan anggaran dan biaya standar dengan kenyataan seperti yang telah dikemukakan. Sistem informasi akuntansi memiliki peranan yang penting dalam proses bisnis karena sistem informasi akuntansi mengidentifikasi, mengukur dan mencatat proses bisnis tersebut dalam suatu model yang sedemikian rupa sehingga informasi yang dihasilkan dapat dimanfaatkan oleh pihak yang berkepentingan. Dari sudut pandang akuntansi, model proses bisnis tersebut diwujudkan dalam bentuk siklus transaksi. Pengelompokkan siklus transaksi biasanya berkaitan dengan beberapa kejadian yang berurutan. Sebagai contoh, siklus transaksi penjualan pada perusahaan dagang dimulai dari pemesanan barang oleh pelanggan, diikuti dengan pengiriman barang yang dipesan, lalu pembuatan laporan penjualan dan dilanjutkan dengan penagihan. Untuk lebih memperjelas keterkaitan sistem informasi akuntansi dengan proses bisnis, marilah kita bahas mengenai organisasi sebagai pelaku dalam proses bisnis tersebut. Organisasi merupakan suatu sistem yang tersusun dari sub sistem seperti yang telah dibahas sebelumnya. Sub sistem dalam organisasi meliputi manajemen, operasi dan informasi. Sub sistem tersebut berkaitan baik

43 15 dengan pihak internal perusahaan, seperti pelanggan dan instansi pemerintah (Anastasia Diana ; 2011 : 6). II.2.1. Konsep Sistem Informasi Akuntansi Konsep perancangan sistem seharusnya mencerminkan prinsip-prinsip perusahaan. Berikut ini dasar-dasar yang perlu diperhatikan dalam prioritas perancangan sistem : 1. Tujuan dalam perencanaan sistem dan usulan proyek seharusnya dicapai untuk menghasilkan kemajuan dan kemampuan sistem yang lebih besar. 2. Mempertimbangkan trade-off yang memadai antara manfaat dari tujuan perancangan sistem dengan biaya yang dikeluarkan. 3. Berfokus pada permintaan fungsional dari sistem. 4. Melayani berbagai macam tujuan. 5. Perancangan sistem memperhatikan keberadaan dari pengguna sistem (user). Sedangkan Barry E. Cushing (1983) mengemukakan bahwa : 1. Kesesuaian desain sistem dengan tujuan sistem informasi dan organisasi. 2. Berdasarkan kelayakan ekonomis, berarti sistem memiliki net present value positif. 3. Kelayakan operasional, input dikumpulkan ke sistem dan output-nya dapat digunakan. 4. Kelayakan perilaku, berarti sistem berdampak pada kehidupan kualitas kerja users.

44 16 5. Kelayakan teknis, ketersediaan teknologi untuk mendukung sistem serta teknologi mudah diperoleh atau dikembangkan. 6. Disesuaikan dengan kebutuhan informasi users (Dwi Fitri Khasanah ; 2013 : 2). II.2.2. Data dan Informasi Akuntansi Setiap sistem informasi akuntansi melaksanakan lima fungsi utama, yaitu pengumpulan data, pemrosesan data, manajemen data, pengendalian data (termasuk security), dan penghasil informasi. 1. Pengumpulan Data Fungsi pengumpulan data terdiri atas memasukkan data transaski melalui formulir, mensyahkan serta memeriksa data untuk memastikan ketepatan dan kelengkapannya. Jika data bersifat kuantitatif, data dihitung dahulu sebelum dicatat. Jika data jauh dari lokasi pemrosesan, maka data harus ditransmisikan lebih dahulu. 2. Pemrosesan Data Pemrosesan data terdiri atas proses pengubahan input menjadi output. Fungsi pemrosesan data terdiri atas langkah-langkah sebagai berikut : a. Pengklasifikasian atau menetapkan data berdasar kategori yang telah ditetapkan. b. Menyalin data ke dokumen atau media lain. c. Mengurutkan, atau menysusn data menurut karaktersitiknya. d. Mengelompokkan atau mengumpulkan transaski sejenis. e. Menggabungkan atau mengkombinasikan dua atau lebih data atau arsip.

45 17 f. Melakukan penghitungan. g. Peringkasan, atau penjumlahan data kuantitatif. h. Membandingkan data untuk mendapatkan persamaan atau perbedaan yang ada. 3. Manajemen Data Fungsi manajemen data terdiri atas tiga tahap, yaitu: penyimpanan, pemutakhiran dan pemunculan kembali (retrieving). Tahap penyimpanan merupakan penempatan data dalam penyimpanan atau basis data yang disebut arsip. Pada tahap pemutakhiran, data yang tersimpan diperbaharui dan disesuaikan dengan peristiwa terbaru. Kemudian pada tahap retrieving, data yang tersimpan diakses dan diringkas kembali untuk diproses lebih lanjut atau untuk keperluan pembuatan laporan. Manajemen data dan pemrosesan data mempunyai hubungan yang sangat erat. Tahap pengelompokkan data dan pengurutan data dari fungsi pemrosesan data, misalnya sering dilakukan sebagai pendahuluan sebelum dilakukan tahap pemutakhiran dalam fungsi manajemen data. Manajemen data dapat dipandang sebagai bagian dari pemrosesan data. Manajemen data akan menunjang pencapaian efisiensi aktivitas dalam proses menghasilkan informasi dan mendorong dipatuhinya kebijakan manajemen terutama mengenai informasi aktivitas dan informasi kebijakan manajemen. 4. Pengendalian Data Fungsi pengendalian data mempunyai dua tujuan dasar : a. untuk menjaga dan menjamin keamanan aset perusahaan, termasuk data, dan

46 18 b. untuk menjamin bahwa data yang diperoleh akurat dan lengkap serta diproses dengan benar. Berbagai teknik dan prosedur dapat dipakai untuk menyelenggarakan pengendalian dan keamanan yang memadai. 5. Penghasil Informasi Fungsi penghasil informasi ini terdiri atas tahapan pemrosesan informasi seperti penginterprestasian, pelaporan dan pengkomunikasian informasi (Dwi Fitri Khasanah ; 2013 : 3). II.3. Persediaan Persediaan merupakan simpanan material yang dapat berupa bahan mentah, barang dalam proses dan barang jadi. Dari sudut pandang sebuah perusahaan maka persediaan adalah investasi modal yang dibutuhkan untuk menyimpan material pada kondisi tertentu. Persediaan sebagai meliputi barang barang milik perusahaan dengan maksud untuk dijual dalam suatu periode usaha normal, atau persediaan barang barang yang masih dalam pengerjaan atau proses produksi, atau pun persediaan bahan baku dasar yang menunggu penggunaannya dalam suatu proses produksi. Persediaan sebagai sumber daya yang menganggur yang menunggu proses lebih lanjut. Yang disebut proses lebih lanjut tersebut adalah berupa kegiatan produksi pada sistem manufaktur atau kegiatan pemasaran. Persediaan merupakan masalah yang sangat penting bagi sebuah perusahaan. Tanpa adanya persediaan, perusahaan akan dihadapkan pada suatu resiko dimana perusahaan mengalami kendala karena tidak dapat memenuhi keinginan pelanggan yang membutuhkan

47 19 barang maupun jasa yang dihasilkan oleh perusahaan tersebut. Akan tetapi persediaan dapat menimbulkan banyak biaya penyimpanan (seperti biaya pegawai, biaya operasional pabrik, biaya gedung, dll). Karena itulah persediaan hanya diadakan apabila keuntungan yang diharapkan dari persediaan tersebut lebih besar dari pada biaya-biaya yang ditimbulkan. Persediaan barang diartikan sebagai barang yang diperoleh perusahaan untuk dijual kembali atau diolah lebih lanjut dalam rangka menjalankan kegiatan perusahaan. Perusahaan yang dapat mengendalikan sistem persediaan dengan tepat akan memudahkan perusahaan untuk bertahan dalam kegiatan operasional dan menjaga kelancaran operasi perusahaan.untuk itu persediaan barang menjadi hal yang penting, sebab sukses tidaknya perencanaan dan pengawasan persediaan akan berpengaruh besar terhadap keberhasilan suatu perusahaan, salah satunya pada penentuan keuntungan perusahaan. Untuk dapat meminimalkan biaya persediaan diperlukan perencanaan yang baik dalam mengoptimalkan jumlah barang yang harus dipesan. Jika pengendalian berjalan dengan optimal, kebutuhan barang perusahaan dapat terpenuhi, dan perusahaan dapat meminimalkan total biaya persediaan. Yang harus diperhatikan dalam pengendalian persediaan adalah waktu ke datangan barang yang akan dipesan kembali. Jika barang yang dipesan membutuhkan waktu yang cukup lama pada periode tertentu maka persediaan barang tersebut harus disesuaikan hingga barang tersebut ada setiap saat hingga barang yang dipesan selanjutnya ada. Di samping itu jumlah barang yang akan dipesan juga harus disesuaikan dengan kapasitas

48 20 penyimpanan, jumlah barang yang terlalu banyak akan menyebabkan pemborosan namun jika terlalu sedikit akan mengakibatkan hilangnya keuntungan karena perusahaan gagal memenuhi permintaan pelanggan (Indroprasto ; 2012 : 305). II.4. Harga Pokok Penjualan Harga pokok penjualan (HPP) adalah salah satu komponen dari laporan laba rugi, yang menjadi perhatian manajemen perusahaan dalam mengendalikan operasional perusahaan. Umumnya terdapat temukan 3 macam harga pokok, yaitu harga pokok persediaan, harga pokok produksi dan harga pokok penjualan. Ketiganya adalah penting, namun dalam pengambilan keputusan perlu jelas harga pokok mana yang dimaksud. Permasalahan itu timbul karena perbedaan kebutuhan masing-masing tingkat manajemen. Manajer bagian pembelian (Purchase Manager) lebih fokus pada harga pokok persediaan, manajer produksi (production manager) atau manajer operasional (Operation Manager) lebih fokus pada harga pokok produksi. Manajemen tingkat puncak tentunya akan lebih cenderung fokus pada harga pokok penjualan. Dalam penentuan harga pokok penjualan, informasi yang dibutuhkan oleh perusahaan adalah informasi mengenai persediaan awal barang, pembelian dan persediaan akhir barang, ketiga aspek tersebut sangat berpengaruh dalam melakukan perhitungan harga penjualan karena harga penjualan yang diterapkan oleh perusahaan akan mempengaruhi jumlah pembelian pada perusahaan, dan

49 21 jumlah pembelian pada perusahaan akan secara otomatis mempengaruhi jumlah persediaan barang. Komponen yang paling besar dalam operasional perusahaan pada perusahaan dagang maupun perusahaan industri adalah persediaan. Karena harga pokok persediaan adalah bagian dari persediaan yang telah di gunakan, jadi perhatian lebih besar di tujukan pada harga pokok persediaan cukup beralasan. Namun hal itu tidak cukup bagi manajer operasional karena komponen biaya produksi baik biaya tenaga kerja langsung maupun biaya overhead pabrik juga merupakan komponen penting yang berada dalam ruang lingkup tugasnya. Karena itu manajer produksi atau manajer operasional pada perusahaan industri akan fokus pada harga pokok produksi yaitu harga pokok persediaan di tambah biaya produksi. Perusahaan jasa tidak memiliki kedua komponen tersebut sehingga pada perusahaan jasa jelas hanya harga pokok yang terdiri dari biaya operasional (Zinia Th ; 2013 : 456). II.5. Metode Perpetual Metode perpetual adalah pengelolaan persediaan di mana arus masuk dan arus keluar persediaan dicatat secara terinci. Dalam metode ini setiap jenis persediaan dibuatkan kartu stok yang mencatat secara rinci keluar masuknya barang di gudang beserta harganya. Metode ini dipilah lagi kedalam beberapa metode, antara lain : a. FIFO (First In First Out)

50 22 Dalam metode ini, barang yang masuk (dibeli atau diproduksi) terlebih dahulu akan dikeluarkan (dijual) pertama kali, sehingga yang tersisa akhir periode adalah barang yang berasal dari pembelian atau produksi terakhir. b. LIFO (Last In First Out) Dalam metode ini, barang yang masuk (dibeli/produksi paling akhir akan dikeluarkan/dijual paling awal), sehingga barang yang tersisa pada akhir periode adalah barang yang berasal dari pembelian atau produksi awal periode. c. Moving Average Dalam metode ini, barang yang dikeluarkan/dijual maupun barang yang tersisa dinilai berdasarkan harga rata-rata bergerak. Jadi, barang yang tersisa pada akhir periode adalah yang memiliki nilai rata-rata. Karena metode perpetual mengharuskan perusahaan memiliki kartu stok, maka setiap arus keluar barang dapat diketahui beban pokoknya. Jadi, dalam membuat jurnal transaksi penjualan, metode perpetual mengharuskan akuntan mencatat harga pokok penjualannya dari setiap transaksi penjualan yang dilakukan. Dengan demikian, dari setiap jurnal transaksi penjualan, dapat diketahui laba kotor yang diperoleh perusahaan (Rudianto ; 2012 : 225). Tabel II.1. Jurnal Umum Transaksi Jurnal Metode Perpetual

51 23 Pembelian barang dagang Persediaan Kas xxx xxx Penjualan barang dagang Kas Penjualan HPP Persediaan xxx xxx xxx xxx (Sumber : Rudianto ; 2012 : 225) Ilustrasi berikut ini mungkin dapat memperjelas keterangan sebelumnya mengenai metode perpetual atau pencatatan persediaan dan pengaruhnya terhadap perolehan laba perusahaan : PT. DoReMi adalah distributor monitor komputer yang berlokasi di Jakarta. Pada akhir bulan Maret 2012, perusahaan tersebut memiliki jumlah persediaan monitor sebanyak 40 Transaksi pembelian dan penjualan yang dilakukan perusahaan selama bulan April 2012 adalah sebagai berikut : - 5 April Membeli 50 unit April Membeli 40 unit April Menjual 70 unit April Membeli 30 unit April Menjual 65 unit Berdasarkan data tersebut, kartu persediaan PT. DoReMi untuk bulan April 2012 dengan menggunakan metode moving average.

52 24 Tabel II.2. Kartu Stok Moving Average MASUK KELUAR SALDO TGL Unt Harga Nilai Unt Harga HPP Unt Harga Nilai A P R I L * * # * * * * # * * H P P (Sumber : Rudianto ; 2012 : 230) Keterangan : # = Volume dan HPP penjualan pada tanggal tertentu *= Saldo Volume dan nilai persediaan pada tanggal tertentu Jika digunakan metode Moving Average (rata-rata bergerak), maka langkah pertama yang harus dilakukan adalah mencatat volume dan nilai persediaan pada kolom saldo awalnya, yaitu sebanyak 40 unit dengan harga beli Rp per unit dan nilai total sebesar Rp Setelah itu pada tanggal 5 April 2012, dilakukan transaksi pembelian 50 unit monitor dengan harga beli Rp per unit dan nilai total sebesar Rp yang dicatat di kolom pembelian. Demikian pula pada tanggal 8 April 2012, dilakukan transaksi pembelian 40 unit monitor dengan harga Rp per unit. Pembelian pada tanggal 5 dan 8 April ini lalu dipindahkan ke kolom saldo, sehingga pada tanggal 8 April 2012, perusahaan memiliki saldo persediaan monitor sebanyak 130 unit degan nilai Rp Jika nilai total persediaan pada tanggal ini sebesar Rp dibagi dengan jumlah

53 25 persediaan monitor sebanyak 130 unit, maka akan diperoleh harga beli rata-rata persediaan sebesar Rp per unit. Harga beli rata-rata inilah yang dijadikan dasar untuk menghitungg harga pokok penjualan pada saat terjadi transaksi penjualan. Jika kemudian pada tanggal 10 april terjadi transaksi penjualan monitor sebanyak 70 unit, maka 70 unit yang dijual tersebut dikalikan dengan harga beli rata-rata sebesar Rp per unit sehingga diperoleh nilai harga pokok penjualan sebesar Rp Saldo persediaan akhir pada saat itu adalah 60 unit dengan nilai total Rp Kemudian pada tanggal 14 April dilakukan pembelian 30 monitor dengan harga Rp per unit. Pembelian tersebut dimasukkan di kolom pembelian dan ditambahkan di kolom saldo, sehingga pada saat ini perusahaan memiliki persediaan sebanyak 90 unit monitor dengan nilai total Rp Jika nilai persediaan sebesar Rp ini dibagi dengan volume persediaan sebanyak 90 unit, maka akan diperoleh harga pokok persediaan rata-rata sebesar Rp per unit. Transaksi penjualan 65 unit monitor yang terjadi pada tanggal 22 April 2012 itu dihitung dengan mengkalikan 65 unit monitor dengan harga rata-rata per unit sebesar Rp sehingga diperoleh harga pokok penjualan sebesar Rp Pada saat ini, saldo persediaan monitor adalah 25 unit dengan nilai Rp (Rudianto ; 2012 : 230).

54 26 Tabel II.3. Laporan Laba Rugi Komparatif Keterangan Moving Average Penjualan Rp Harga Pokok Penjualan : (Rp ) Laba Kotor Rp (Sumber : Rudianto ; 2012 : 232) II.6. Visual Studio 2010 Aplikasi yang digunakan untuk melakukan perancangan sistem informasi akuntansi ini menggunakan aplikasi visual studio VB.NET adalah salah satu bahasa pemrograman tingkat tinggi yang mendekati bahasa manusia. Kemunculan bahasa VB.NET ini sebagai jawaban untuk menyederhanakan bahasa pemrograman pada platform.net yang diluncurkan tahun 2002 dan untuk menjembatani programmer Visual Basic. Bahasa VB.NET secara teknis mengadopsi sintak bahasa Visual Basic. Konsistensi API membuat bahasa VB.NET menjadi pilihan dalam membuat kode program diatas platform Windows. Fitur baru bahasa VB.NET dibandingkan Visual Basic bahwa bahasa VB.NET mendukung object-oriented dan juga dynamics programming. Ini menambah daftar kemudahan untuk belajar bahasa VB.NET (Agus Kurniawan ; 2013 : 10). II.7. SQL Server SQL Server 2008 adalah sebuah RDBMS (Relational Database Management System) yang didevelop oleh Microsoft, yang digunakan untuk menyimpan dan mengolah data. Pada SQL Server 2008, kita bisa melakukan

55 27 pengambilan dan modifikasi data yang ada dengan cepat dan efesien. Pada SQL Server 2008, bisa membuat object yang sering digunakan pada aplikasi bisnis, seperti membuat database, table, function, stared procedure, trigger dan view. Selain object, berfungsi juga menjalankan perintah SQL (Structured Query Language) untuk mengambil data (Cybertron Solution ; 2010 : 101). II.8. Entity Relationship Diagram (ERD) Entity Relationship Diagram atau ERD merupakan salah satu alat (tool) berbentuk grafis yang populer untuk desain database. Tool ini relatif lebih mudah dibandingkan dengan Normalisasi. Kebanyakan sistem analis memakai alat ini, tetapi yang jadi masalah, kalau kita cermati secara seksama, tool ini mencapai 2NF (Yuniar Supardi ; 2010 : 448). Entitas Atribut/Field Link (hubungan) Himpunan Relasi/Interface Gambar. II.1. Bentuk Simbol ERD (Sumber : Yuniar Supardi ; 2010 : 448) II.9. Teknik Normalisasi Normalisasi adalah teknik perancangan yang banyak digunakan sebagai pemandu dalam merancang basis data relasional. Pada dasarnya, normalisasi adalah proses dua langkah yang meletakkan data dalam bentuk tabulasi dengan menghilangkan kelompok berulang lalu menghilangkan data yang terduplikasi

56 28 dari tabel rasional.teori normalisasi didasarkan pada konsep bentuk normal. Sebuah tabel relasional dikatakan berada pada bentuk normal tertentu jika tabel memenuhi himpunan batasan tertentu. Ada lima bentuk normal yang telah ditemukan (Janner Simarmata ; 2010 : 76). II.9.1.Bentuk-bentuk Normalisasi 1. Bentuk tidak normal Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada keharusan mengikuti format tertentu, dapat saja tidak lengkap dan terduplikasi. Data dikumpulkan apa adanya sesuai keadaanya. 2. Bentuk normal tahap pertama (1 Normal Form) Definisi : Sebuah table disebut 1NF jika : - Tidak ada baris yang duplikat dalam tabel tersebut. - Masing-masing cell bernilai tunggal. Catatan: Permintaan yang menyatakan tidak ada baris yang duplikat dalam sebuah tabel berarti tabel tersebut memiliki sebuah kunci, meskipun kunci tersebut dibuat dari kombinasi lebih dari satu kolom atau bahkan kunci tersebut merupakan kombinasi dari semua kolom. 3. Bentuk normal tahap kedua (2 nd normal form) Bentuk normal kedua (2NF) terpenuhi jika pada sebuah tabel semua atribut yang tidak termasuk dalam primary key memiliki ketergantungan fungsional pada primary key secara utuh.

57 29 4. Bentuk normal tahap ketiga (3 rd normal form) Sebuah tabel dikatakan memenuhi bentuk normal ketiga (3NF), jika untuk setiap ketergantungan fungsional dengan notasi X -> A, dimana A mewakili semua atribut tunggal di dalam tabel yang tidak ada di dalam X, maka : - X haruslah superkey pada tabel tersebut. - Atau A merupakan bagian dari primarykey pada tabel tersebut. 5. Bentuk Normal Tahap Keempat dan Kelima Penerapan aturan normalisasi sampai bentuk normal ketiga sudah memadai untuk menghasilkan tabel berkualitas baik. Namun demikian, terdapat pula bentuk normal keempat (4NF) dan kelima (5NF). Bentuk Normal keempat berkaitan dengan sifat ketergantungan banyak nilai (multivalued dependency) pada suatu tabel yang merupakan pengembangan dari ketergantungan fungsional. Adapun bentuk normal tahap kelima merupakan nama lain dari Project Join Normal Form (PJNF). 6. Boyce Code Normal Form (BCNF) - Memenuhi 1 st NF - Relasi harus bergantung fungsi pada atribut superkey (Janner Simarmata ; 2010 : 76). II.10. UML (Unified Modeling Language) Menurut Windu Gata (2013 : 4) Hasil pemodelan pada OOAD terdokumentasikan dalam bentuk Unified Modeling Language (UML). UML

58 30 adalah bahasa spesifikasi standar yang dipergunakan untuk mendokumentasikan, menspesifikasikan dan membangun perangkat lunak. UML merupakan metodologi dalam mengembangkan sistem berorientasi objek dan juga merupakan alat untuk mendukung pengembangan sistem. UML saat ini sangat banyak dipergunakan dalam dunia industri yang merupakan standar bahasa pemodelan umum dalam industri perangkat lunak dan pengembangan sistem. Alat bantu yang digunakan dalam perancangan berorientasi objek berbasiskan UML adalah sebagai berikut : 1. Use case Diagram Use case diagram merupakan pemodelan untuk kelakukan (behavior) sistem informasi yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat. Dapat dikatakan use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sistem informasi dan siapa saja yang berhak menggunakan fungsi-fungsi tersebut. Simbol-simbol yang digunakan dalam use case diagram, yaitu : Gambar Tabel II.4. Simbol Use Case Keterangan Use case menggambarkan fungsionalitas yang disediakan sistem sebagai unit-unit yang bertukar pesan antar unit dengan aktor, biasanya dinyatakan dengan menggunakan kata kerja di awal nama use case.

59 31 Aktor adalah abstraction dari orang atau sistem yang lain yang mengaktifkan fungsi dari target sistem. Untuk mengidentifikasikan aktor, harus ditentukan pembagian tenaga kerja dan tugas-tugas yang berkaitan dengan peran pada konteks target sistem. Orang atau sistem bisa muncul dalam beberapa peran. Perlu dicatat bahwa aktor berinteraksi dengan use case, tetapi tidak memiliki control terhadap use case. Asosiasi antara aktor dan use case, digambarkan dengan garis tanpa panah yang mengindikasikan siapa atau apa yang meminta interaksi secara langsung dan bukannya mengidikasikan aliran data. Asosiasi antara aktor dan use case yang menggunakan panah terbuka untuk mengidinkasikan bila aktor berinteraksi secara pasif dengan sistem. Include, merupakan di dalam use case lain (required) atau pemanggilan use case oleh use case lain, contohnya adalah pemanggilan sebuah fungsi program. Extend, merupakan perluasan dari use case lain jika kondisi atau syarat terpenuhi. (Sumber : Windu Gata ; 2013 : 4) 2. Diagram Aktivitas (Activity Diagram) Activity Diagram menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis. Simbol-simbol yang digunakan dalam activity diagram, yaitu : Gambar Tabel II.5. Simbol Activity Diagram Keterangan Start point, diletakkan pada pojok kiri atas dan merupakan awal aktifitas. End point, akhir aktifitas. Activites, menggambarkan suatu proses/kegiatan bisnis

60 32 Fork (Percabangan), digunakan untuk menunjukkan kegiatan yang dilakukan secara parallel atau untuk menggabungkan dua kegiatan pararel menjadi satu. Join (penggabungan) atau rake, digunakan untuk menunjukkan adanya dekomposisi. Decision Points, menggambarkan pilihan untuk pengambilan keputusan, true, false. New Swimline Swimlane, pembagian activity diagram untuk menunjukkan siapa melakukan apa. (Sumber : Windu Gata ; 2013 : 6) 3. Class Diagram (Diagram Kelas) Merupakan hubungan antar kelas dan penjelasan detail tiap-tiap kelas di dalam model desain dari suatu sistem, juga memperlihatkan aturan-aturan dan tanggng jawab entitas yang menentukan perilaku sistem. Class diagram juga menunjukkan atribut-atribut dan operasi-operasi dari sebuah kelas dan constraint yang berhubungan dengan objek yang dikoneksikan. Class diagram secara khas meliputi: Kelas (Class), Relasi, Associations, Generalization dan Aggregation, Atribut (Attributes), Operasi (Operations/Method), Visibility, tingkat akses objek eksternal kepada suatu operasi atau atribut. Hubungan antar kelas mempunyai keterangan yang disebut dengan multiplicity atau kardinaliti. Tabel II.6. Multiplicity Class Diagram Multiplicity Penjelasan 1 Satu dan hanya satu 0..* Boleh tidak ada atau 1 atau lebih

61 33 1..* 1 atau lebih 0..1 Boleh tidak ada, maksimal 1 n..n Batasan antara. Contoh 2..4 mempunyai arti minimal 2 maksimum 4 (Sumber : Windu Gata ; 2013 : 9) 4. Diagram Urutan (Sequence Diagram) Sequence diagram menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan pesan yang dikirimkan dan diterima antar objek. Simbol-simbol yang digunakan dalam sequence diagram, yaitu : Gambar Tabel II.7. Simbol Sequence Diagram Keterangan EntityClass, merupakan bagian dari sistem yang berisi kumpulan kelas berupa entitas-entitas yang membentuk gambaran awal sistem dan menjadi landasan untuk menyusun basis data. Boundary Class, berisi kumpulan kelas yang menjadi interface atau interaksi antara satu atau lebih aktor dengan sistem, seperti tampilan formentry dan form cetak. Control class, suatu objek yang berisi logika aplikasi yang tidak memiliki tanggung jawab kepada entitas, contohnya adalah kalkulasi dan aturan bisnis yang melibatkan berbagai objek. Message, simbol mengirim pesan antar class. Recursive, menggambarkan pengiriman pesan yang dikirim untuk dirinya sendiri. Activation, activation mewakili sebuah eksekusi operasi dari objek, panjang kotak ini berbanding lurus dengan durasi aktivitas sebuah operasi. Lifeline, garis titik-titik yang terhubung dengan objek, sepanjang lifeline terdapat activation. (Sumber : Windu Gata ; 2013 : 7)

62 BAB III ANALISIS DAN PERANCANGAN

63 BAB III ANALISIS DAN DESAIN SISTEM III.1. Analisis Masalah Analisa sistem pada yang berjalan bertujuan untuk mengidentifikasi serta melakukan evaluasi terhadap Penetapan Harga Pokok Penjualan Mobil Pada Honda IDK 1 Medan. Adapun kelemahan pada sistem terdahulu adalah : 1. Sistem penerapan harga pokok terhadap penjualan mobil masih menggunakan metode perhitungan yang masih sangat sederhana yaitu melihat aktivitas penjualan mobil, kemudian berdasarkan penjualan mobil maka akan mempengaruhi aktivitas pembelian barang dan persediaan barang kemudian perusahaan akan melakukan perhitungan harga penjualan berdasarkan permintaan barang. 2. Masih belum berkembang metode perpetual dalam penetapan harga pokok penjualan pada Honda IDK 1 Medan, metode perpetual berfungsi sebagai pecatatan atas transaksi persediaan yang dilaksanakan setiap waktu, baik terhadap pemasukan maupun terhadap pengeluaran persediaan. Dalam metode ini, pencatatan persediaan dilakukan dalam kartu persediaan yang menggambarkan persediaan sebenarnya sehingga dalam melakukan perhitungan harga penjualan akan menjadi sangat mudah. III.2. Penerapan Metode Perpetual Metode perpetual adalah pengelolaan persediaan di mana arus masuk dan arus keluar persediaan dicatat secara terinci. Dalam metode ini setiap jenis 34

64 35 persediaan dibuatkan kartu stok yang mencatat secara rinci keluar masuknya barang di gudang beserta harganya. Metode ini dipilah lagi kedalam beberapa metode, antara lain : d. FIFO (First In First Out) Dalam metode ini, barang yang masuk (dibeli atau diproduksi) terlebih dahulu akan dikeluarkan (dijual) pertama kali, sehingga yang tersisa akhir periode adalah barang yang berasal dari pembelian atau produksi terakhir. e. LIFO (Last In First Out) Dalam metode ini, barang yang masuk (dibeli/produksi paling akhir akan dikeluarkan/dijual paling awal), sehingga barang yang tersisa pada akhir periode adalah barang yang berasal dari pembelian atau produksi awal periode. f. Moving Average Dalam metode ini, barang yang dikeluarkan/dijual maupun barang yang tersisa dinilai berdasarkan harga rata-rata bergerak. Jadi, barang yang tersisa pada akhir periode adalah yang memiliki nilai rata-rata. Karena metode perpetual mengharuskan perusahaan memiliki kartu stok, maka setiap arus keluar barang dapat diketahui beban pokoknya. Jadi, dalam membuat jurnal transaksi penjualan, metode perpetual mengharuskan akuntan mencatat harga pokok penjualannya dari setiap transaksi penjualan yang

65 36 dilakukan. Dengan demikian, dari setiap jurnal transaksi penjualan, dapat diketahui laba kotor yang diperoleh perusahaan (Rudianto ; 2012 : 225). Tabel III.1. Jurnal Umum Transaksi Pembelian barang dagang Jurnal Metode Perpetual Persediaan xxx Kas xxx Penjualan barang dagang Kas Penjualan HPP Persediaan xxx xxx xxx xxx (Sumber : Rudianto ; 2012 : 225) Ilustrasi berikut ini mungkin dapat memperjelas keterangan sebelumnya mengenai metode perpetual atau pencatatan persediaan dan pengaruhnya terhadap perolehan laba perusahaan : PT. DoReMi adalah distributor monitor komputer yang berlokasi di Jakarta. Pada akhir bulan Maret 2012, perusahaan tersebut memiliki jumlah persediaan monitor sebanyak 40 Transaksi pembelian dan penjualan yang dilakukan perusahaan selama bulan April 2012 adalah sebagai berikut : - 5 April Membeli 50 unit April Membeli 40 unit April Menjual 70 unit April Membeli 30 unit April Menjual 65 unit

66 37 Berdasarkan data tersebut, kartu persediaan PT. DoReMi untuk bulan April 2012 dengan menggunakan metode moving average. Tabel III.2. Kartu Stok Moving Average MASUK KELUAR SALDO TGL Unt Harga Nilai Unt Harga HPP Unt Harga Nilai A P R I L * * # * * * * # * * H P P (Sumber : Rudianto ; 2012 : 230) Keterangan : # = Volume dan HPP penjualan pada tanggal tertentu *= Saldo Volume dan nilai persediaan pada tanggal tertentu Jika digunakan metode Moving Average (rata-rata bergerak), maka langkah pertama yang harus dilakukan adalah mencatat volume dan nilai persediaan pada kolom saldo awalnya, yaitu sebanyak 40 unit dengan harga beli Rp per unit dan nilai total sebesar Rp Setelah itu pada tanggal 5 April 2012, dilakukan transaksi pembelian 50 unit monitor dengan harga beli Rp per unit dan nilai total sebesar Rp yang dicatat di kolom pembelian. Demikian pula pada tanggal 8 April 2012, dilakukan transaksi pembelian 40 unit monitor dengan harga Rp per unit. Pembelian pada tanggal 5 dan 8 April ini lalu dipindahkan ke kolom saldo, sehingga pada tanggal 8 April 2012, perusahaan memiliki saldo

67 38 persediaan monitor sebanyak 130 unit degan nilai Rp Jika nilai total persediaan pada tanggal ini sebesar Rp dibagi dengan jumlah persediaan monitor sebanyak 130 unit, maka akan diperoleh harga beli rata-rata persediaan sebesar Rp per unit. Harga beli rata-rata inilah yang dijadikan dasar untuk menghitungg harga pokok penjualan pada saat terjadi transaksi penjualan. Jika kemudian pada tanggal 10 april terjadi transaksi penjualan monitor sebanyak 70 unit, maka 70 unit yang dijual tersebut dikalikan dengan harga beli rata-rata sebesar Rp per unit sehingga diperoleh nilai harga pokok penjualan sebesar Rp Saldo persediaan akhir pada saat itu adalah 60 unit dengan nilai total Rp Kemudian pada tanggal 14 April dilakukan pembelian 30 monitor dengan harga Rp per unit. Pembelian tersebut dimasukkan di kolom pembelian dan ditambahkan di kolom saldo, sehingga pada saat ini perusahaan memiliki persediaan sebanyak 90 unit monitor dengan nilai total Rp Jika nilai persediaan sebesar Rp ini dibagi dengan volume persediaan sebanyak 90 unit, maka akan diperoleh harga pokok persediaan rata-rata sebesar Rp per unit. Transaksi penjualan 65 unit monitor yang terjadi pada tanggal 22 April 2012 itu dihitung dengan mengkalikan 65 unit monitor dengan harga rata-rata per unit sebesar Rp sehingga diperoleh harga pokok penjualan sebesar Rp Pada saat ini, saldo persediaan monitor adalah 25 unit dengan nilai Rp (Rudianto ; 2012 : 230).

68 39 Tabel III.3. Laporan Laba Rugi Komparatif Keterangan Moving Average Penjualan Rp Harga Pokok Penjualan : (Rp ) Laba Kotor Rp (Sumber : Rudianto ; 2012 : 232) III.3. Desain Sistem Desain sistem secara global menggunakan bahasa pemodelan UML yang terdiri dari Usecase Diagram, Class Diagram, Activity Diagram dan Sequence Diagram. III.3.1.Usecase Diagram Secara garis besar, bisnis proses sistem yang akan dirancang digambarkan dengan usecase diagram yang terdapat pada Gambar III.1 :

69 40 Gambar III.1. Use Case Sistem Informasi Akuntansi Penetapan Harga Pokok Penjualan Mobil Menggunakan Metode Perpetual Pada Honda IDK 1 Medan III.3.2. Class Diagram Rancangan kelas-kelas yang akan digunakan pada sistem yang akan dirancang dapat dilihat pada gambar III.2 :

70 Gambar III.2. Class Diagram Sistem Informasi Akuntansi Penetapan Harga Pokok Penjualan Mobil Menggunakan Metode Perpetual Pada Honda IDK 1 Medan 41

71 42 III.3.3. Activity Diagram Bisnis proses yang telah digambarkan pada usecase diagram diatas dijabarkan dengan activity diagram : 1. Activity Diagram Login Aktifitas sistem login yang dilakukan oleh pakar dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.3 berikut: Login admin Admin Sistem Buka Aplikasi Login Isi Username Gagal Isi Password Click Login Berhasil Gambar III.3. Activity Diagram Login

72 43 2. Activity Diagram Admin Aktifitas sistem yang dilakukan oleh admin pada pengolahan admin dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.4 berikut : Gambar III.4. Activity Diagram Admin

73 44 3. Activity Diagram Data Mobil Aktifitas sistem yang dilakukan oleh admin pada pengolahan data mobil dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.5 berikut : Gambar III.5. Activity Diagram Data Mobil

74 45 4. Activity Diagram Data Pelanggan Aktifitas sistem yang dilakukan oleh admin pada pengolahan data pelanggan dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.6 berikut : Gambar III.6. Activity Diagram Data Pelanggan

75 46 5. Activity Diagram Data Pembelian Aktifitas sistem yang dilakukan oleh admin pada pengolahan data pembelian dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.7 berikut : Gambar III.7. Activity Diagram Data Pembelian

76 47 6. Activity Diagram Penjualan Aktifitas sistem yang dilakukan oleh admin pada pengolahan data penjualan dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.8 berikut : Gambar III.8. Activity Diagram Data Penjualan

77 48 7. Activity Diagram Laporan Pembelian Aktifitas sistem yang dilakukan oleh admin untuk melihat laporan pembelian dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.9 berikut : Laporan pembelian Admin Sistem Pilih laporan Pilih Laporan pembelian Menampilkan laporan pembelian Gambar III.9. Activity Diagram Laporan Pembelian 8. Activity Diagram Laporan Penjualan Aktifitas sistem yang dilakukan oleh admin untuk melihat laporan penjualan dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.10 berikut : Gambar III.10. Activity Diagram Laporan Penjualan

78 49 9. Activity Diagram Laporan Persediaan Aktifitas sistem yang dilakukan oleh admin untuk melihat laporan persediaan dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.11 berikut : Laporan persediaan Admin Sistem Pilih laporan Pilih Laporan persediaan Menampilkan laporan persediaan Gambar III.11. Activity Diagram Laporan Persediaan 10. Activity Diagram Laporan Jurnal Umum Aktifitas sistem yang dilakukan oleh admin untuk melihat laporan jurnal umum dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.12 berikut : Phase Gambar III.12. Activity Diagram Laporan Jurnal Umum

79 Activity Diagram Laporan Buku Besar Aktifitas sistem yang dilakukan oleh admin untuk melihat laporan buku besar dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.13 berikut : Gambar III.13. Activity Diagram Laporan Buku Besar 12. Activity Diagram Laporan Laba Rugi Aktifitas sistem yang dilakukan oleh admin untuk melihat laporan laba rugi dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.14 berikut : Gambar III.14. Activity Diagram Laporan Laba Rugi

80 51 III.3.4. Sequence Diagram Rangkaian kegiatan pada setiap terjadi event sistem digambarkan pada sequence diagram berikut : 1. Sequence Diagram Login Aktifitas sistem login yang dilakukan oleh pakar dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.15 berikut: Gambar III.15. Sequence Diagram Login 2. Sequence Diagram Admin Aktifitas sistem yang dilakukan oleh admin pada pengolahan admin dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.16 berikut :

81 52 Gambar III.16. Sequence Diagram Admin 3. Sequence Diagram Data Mobil Aktifitas sistem yang dilakukan oleh admin pada pengolahan data mobil dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.17 berikut : Gambar III.17. Sequence Diagram Data Mobil

82 53 4. Sequence Diagram Data Pelanggan Aktifitas sistem yang dilakukan oleh admin pada pengolahan data pelanggan dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.18 berikut : Gambar III.18. Sequence Diagram Data Pelanggan 5. Sequence Diagram Data Pembelian Aktifitas sistem yang dilakukan oleh admin pada pengolahan data pembelian dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.19 berikut :

83 54 Gambar III.19. Sequence Diagram Data Pembelian 6. Sequence Diagram Penjualan Aktifitas sistem yang dilakukan oleh admin pada pengolahan data penjualan dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.20 berikut :

84 55 Gambar III.20. Sequence Diagram Data Penjualan 7. Sequence Diagram Laporan Pembelian Aktifitas sistem yang dilakukan oleh admin untuk melihat laporan pembelian dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.21 berikut :

85 56 Gambar III.21. Sequence Diagram Laporan Pembelian 8. Sequence Diagram Laporan Penjualan Aktifitas sistem yang dilakukan oleh admin untuk melihat laporan penjualan dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.22 berikut :

86 57 Gambar III.22. Sequence Diagram Laporan Penjualan 9. Sequence Diagram Laporan Persediaan Aktifitas sistem yang dilakukan oleh admin untuk melihat laporan persediaan dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.23 berikut :

87 58 Gambar III.23. Sequence Diagram Laporan Persediaan 10. Sequence Diagram Laporan Jurnal Umum Aktifitas sistem yang dilakukan oleh admin untuk melihat laporan jurnal umum dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.24 berikut :

88 59 Gambar III.24. Sequence Diagram Laporan Jurnal Umum 11. Sequence Diagram Laporan Buku Besar Aktifitas sistem yang dilakukan oleh admin untuk melihat laporan buku besar dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.25 berikut :

89 60 Gambar III.25. Sequence Diagram Laporan Buku Besar 12. Sequence Diagram Laporan Laba Rugi Aktifitas sistem yang dilakukan oleh admin untuk melihat laporan laba rugi dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.26 berikut :

90 61 Gambar III.26. Sequence Diagram Laporan Laba Rugi III.4.Desain Basis Data Desain basis data terdiri dari tahap melakukan perancangan normalisasi tabel dan merancang struktur tabel. III.4.1. Normalisasi Tahap normalisasi ini bertujuan untuk menghilangkan masalah berupa ketidak konsistenan apabila dilakukannya proses manipulasi data seperti penghapusan, perubahan dan penambahan data sehingga data tidak ambigu. III Normalisasi Data Penjualan Normalisasi data nilai dilakukan dengan beberapa tahap normalisasi sampai data nilai ini masuk ke tahap normal di mana tidak ada lagi redundansi data. Berikut ini adalah tahapan normalisasinya :

91 62 1. Bentuk Tidak Normal Bentuk tidak normal dari data nilai ditandai dengan adanya baris yang satu atau lebih atributnya tidak terisi, bentuk ini dapat dilihat pada tabel III.4 di bawah ini : Tabel III.4. Data Penjualan Tidak Normal Kode Penjualan Kode Mobil Kode Warna Jumlah Harga Jual Subtotal PJ MO002 WR PJ WR005 PJ MO001 WR Bentuk Normal Pertama (1NF) Bentuk normal pertama dari data nilai merupakan bentuk tidak normal yang atribut kosongnya diisi sesuai dengan atribut induk dari record-nya, bentuk ini dapat dilihat pada tabel III.5 di berikut ini: Tabel III.5. Data Hasil Normal Pertama Kode Nama Kode Kode Tanggal Penjualan Pelanggan Mobil Warna Jumlah Harga Jual Subtotal Rizki PJ /06/2016 Darmawan MO002 WR PJ /06/2016 Rizki Darmawan MO003 WR PJ /06/2016 Antoni Wijaya MO001 WR Bentuk Normal Kedua (2NF) Bentuk normal kedua dari data nilai merupakan bentuk normal pertama, dimana telah dilakukan pemisahan data sehingga tidak adanya ketergantungan parsial. Setiap data memiliki kunci primer untuk membuat relasi antar data, bentuk ini dapat dilihat pada tabel III.6 berikut ini :

92 63 a. Bentuk Normal Kedua (2NF) Tabel Penjualan Tabel III.6. Data Penjualam 2NF Kode Penjualan Tanggal Kode Pelanggan Total PJ /06/2016 PE PJ /06/2016 PE PJ /06/2016 PE b. Bentuk Normal Kedua (2NF) Tabel Pelanggan Kode Pelanggan PE001 PE002 Tabel III.7. Data Pelanggan 2NF Jenis Nama Kelamin Rizki Darmawan Antoni Wijaya Lakilaki Lakilaki Alamat Jl. Kapt. Muslim Gg. Sedulur No. 12 Jl. Madong Lubis No. 22F Medan No Telepon III.4.2. Desain Tabel Setelah melakukan tahap normalisasi, maka tahap selanjutnya yang dikerjakan yaitu merancang struktur tabel pada basis data sistem yang akan dibuat, berikut ini merupakan rancangan struktur tabel tersebut : 1. Struktur Tabel Admin Tabel basis_pengetahuan digunakan untuk menyimpan data selengkapnya mengenai struktur tabel ini dapat dilihat pada tabel III.8 di bawah ini: Tabel III.8. Rancangan Tabel Admin Nama Database Honda IDK 1 Nama Tabel Admin No Nama Field Tipe Data Boleh Kosong Kunci 1. kode_admin char(5) Tidak Primary Key 2. nama varchar(20) Tidak Foreign Key 3. username varchar(20) Tidak Foreign Key 4. password varchar(20) Tidak Foreign Key

93 64 2. Struktur Tabel Buku_Besar Tabel detail_basis digunakan untuk menyimpan data, selengkapnya mengenai struktur tabel ini dapat dilihat pada tabel III.9 di bawah ini: Tabel III.9. Rancangan Tabel Buku_Besar Nama Database Honda IDK 1 Nama Tabel Buku_besar No Nama Field Tipe Data Boleh Kosong Kunci 1. tanggal date Tidak Foreign Key 2. ref char(10) Tidak Foreign Key 3. keterangan text Tidak - 4. debit decimal(38, 2) Tidak - 5. kredit decimal(38, 2) Tidak - 6. akun varchar(50) Tidak - 7. num_order int Tidak - 3. Struktur Tabel Detail_beli Tabel detail_konsultasi digunakan untuk menyimpan data, selengkapnya mengenai struktur tabel ini dapat dilihat pada tabel III.10 di bawah ini: Tabel III.10. Rancangan Tabel Detail_beli Nama Database Honda IDK 1 Nama Tabel detail_beli No Nama Field Tipe Data Boleh Kosong Kunci 1. kode_pembelian char(10) Tidak Foreign Key 2. kode_mobil char(5) Tidak - 3. kode_warna char(5) Tidak - 4. jumlah int Tidak - 5. harga_beli decimal(38, 0) Tidak - 6. subtotal decimal(38, 0) Tidak - 4. Struktur Tabel Detail_jual Tabel gejala digunakan untuk menyimpan data, selengkapnya mengenai struktur tabel ini dapat dilihat pada tabel III.11 di bawah ini:

94 65 Tabel III.11. Rancangan Tabel Detail_jual Nama Database Honda IDK 1 Nama Tabel Detail_jual No Nama Field Tipe Data Boleh Kosong Kunci 1. kode_penjualan char(10) Tidak Primary Key 2. kode_mobil char(5) Tidak - 3. kode_warna varchar(5) Tidak - 4. jumlah int Tidak - 5. harga_jual decimal(38, 0) Tidak - 6. subtotal decimal(38, 0) Tidak - 5. Struktur Tabel Detail_stok Tabel konsultasi digunakan untuk menyimpan data, selengkapnya mengenai struktur tabel ini dapat dilihat pada tabel III.12 di bawah ini: Tabel III.12. Rancangan Tabel Detail_stok Nama Database Honda IDK 1 Nama Tabel Detail_stok No Nama Field Tipe Data Boleh Kosong Kunci 1. kode_warna char(5) Tidak Primary Key 2. kode_mobil char(5) Tidak - 3. warna varchar(20) Tidak - 4. stok int Tidak - 6. Struktur Tabel Jurnal Tabel pakar digunakan untuk menyimpan data, selengkapnya mengenai struktur tabel ini dapat dilihat pada tabel III.13 di bawah ini: Tabel III.13. Rancangan Tabel Jurnal Nama Database Honda IDK 1 Nama Tabel Jurnal No Nama Field Tipe Data Boleh Kosong Kunci 1. tanggal date Tidak Primary Key 2. Ref char(10) Tidak - 3. keterangan text Tidak - 4. debit decimal(38, 0) Tidak - 5. kredit decimal(38, 0) Tidak -

95 66 7. Struktur Tabel laba_rugi Tabel penyakit digunakan untuk menyimpan data, selengkapnya mengenai struktur tabel ini dapat dilihat pada tabel III.14 di bawah ini: Tabel III.14. Rancangan Tabel laba_rugi Nama Database Honda IDK 1 Nama Tabel Laba_rugi No Nama Field Tipe Data Boleh Kosong Kunci 1. tanggal date Tidak Primary Key 2. Ref char(10) Tidak - 3. kelompok varchar(30) Tidak - 4. akun varchar(50) Tidak - 5. nominal decimal(38, 2) Tidak - 8. Struktur Tabel Mobil Tabel testimoni digunakan untuk menyimpan data, selengkapnya mengenai struktur tabel ini dapat dilihat pada tabel III.15 di bawah ini: Tabel III.15. Rancangan Tabel mobil Nama Database Honda IDK 1 Nama Tabel Mobil No Nama Field Tipe Data Boleh Kosong Kunci 1. kode_mobil char(5) Tidak Foreign Key 2. tipe varchar(30) Tidak - 3. kategori varchar(30) Tidak - 4. harga_jual decimal(38, 0) Tidak - 5. stok int Tidak - 9. Struktur Tabel Pelanggan Tabel testimoni digunakan untuk menyimpan data, selengkapnya mengenai struktur tabel ini dapat dilihat pada tabel III.16 di bawah ini:

96 67 Tabel III.16. Rancangan Tabel Pelanggan Nama Database Honda IDK 1 Nama Tabel Pelanggan No Nama Field Tipe Data Boleh Kosong Kunci 1. kode_pelanggan char(5) Tidak Primary Key 2. nama varchar(30) Tidak - 3. jenis_kelamin varchar(15) Tidak - 4. alamat text Tidak - 5. telp varchar(15) Tidak Struktur Tabel Pelanggan Tabel testimoni digunakan untuk menyimpan data, selengkapnya mengenai struktur tabel ini dapat dilihat pada tabel III.17 di bawah ini: Tabel III.17. Rancangan Tabel Pelanggan Nama Database Honda IDK 1 Nama Tabel Pelanggan No Nama Field Tipe Data Boleh Kosong Kunci 1. kode_pembelian char(10) Tidak Primary Key 2. tanggal datetime Tidak - 3. dari text Tidak - 4. total decimal(38, 0) Tidak Struktur Tabel Pembelian Tabel testimoni digunakan untuk menyimpan data, selengkapnya mengenai struktur tabel ini dapat dilihat pada tabel III.18 di bawah ini: Tabel III.18. Rancangan Tabel Pembelian Nama Database Honda IDK 1 Nama Tabel Pembelian No Nama Field Tipe Data Boleh Kosong Kunci 1. kode_pembelian char(10) Tidak Primary Key 2. tanggal datetime Tidak - 3. dari text Tidak - 4. total decimal(38, 0) Tidak -

97 Struktur Tabel Penjualan Tabel testimoni digunakan untuk menyimpan data, selengkapnya mengenai struktur tabel ini dapat dilihat pada tabel III.19 di bawah ini: Tabel III.19. Rancangan Tabel Penjualan Nama Database Honda IDK 1 Nama Tabel Penjualan No Nama Field Tipe Data Boleh Kosong Kunci 1. kode_penjualan char(10) Tidak Primary Key 2. tanggal datetime Tidak - 3. kode_pelanggan char(10) Tidak - 4. total decimal(38, 0) Tidak Struktur Tabel Persediaan Tabel testimoni digunakan untuk menyimpan data, selengkapnya mengenai struktur tabel ini dapat dilihat pada tabel III.20 di bawah ini: Tabel III.20. Rancangan Tabel Persediaan Nama Database Honda IDK 1 Nama Tabel Persediaan No Nama Field Tipe Data Boleh Kosong Kunci 1. kode int Tidak Primary Key 2. tanggal datetime Tidak - 3. Ref char(10) Tidak - 4. kode_mobil char(5) Tidak - 5. jumlah_beli int 6. harga_beli decimal(38, 2) 7. total_beli decimal(38, 2) 8. jumlah_jual int 9. harga_jual decimal(38, 2) 10. total_jual decimal(38, 2) 11. jumlah_saldo Int 12. harga_pokok decimal(38, 2) 13. total_saldo decimal(38, 2)

98 69 III.5. Desain User Interface Tahap perancangan berikutnya yaitu desain sistem secara detail yang meliputi desain output sistem dan desain input sistem. III.5.1. Desain Output 1. Desain Form Laporan Pembelian Berikut adalah desain tampilan untuk melihat laporan pembelian dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.27 berikut : Gambar III.27. Desain Form Laporan Pembelian

99 70 2. Desain Form Laporan Penjualan Berikut adalah desain tampilan untuk melihat laporan penjualan dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.28 berikut : Gambar III.28. Desain Form Laporan Penjualan 3. Desain Form Laporan Persediaan Berikut adalah desain tampilan untuk melihat laporan persediaan dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.29 berikut :

100 71 Gambar III.29. Desain Form Laporan Persediaan 4. Desain Form Laporan Jurnal Umum Berikut adalah desain tampilan untuk melihat laporan jurnal umum dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.30 berikut :

101 72 Gambar III.30. Desain Form Laporan Jurnal Umum 5. Desain Form Laporan Buku Besar Berikut adalah desain tampilan untuk melihat laporan buku besar dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.31 berikut :

102 73 Gambar III.31. Desain Form Laporan Buku Besar 6. Desain Form Laporan Laba Rugi Berikut adalah desain tampilan untuk melihat laporan laba rugi dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.32 berikut :

103 74 Gambar III.32. Desain Form Laporan Laba Rugi III.5.2. Desain Input 1. Desain Form Login Aktifitas sistem login yang dilakukan oleh pakar dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.33 berikut: Gambar III.33. Desain Form Login

104 75 2. Desain Form Admin Berikut adalah desain tampilan pada pengolahan admin dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.34 berikut : Daftar Admin Baru Tambah Edit Kode Admin : Nama : Username : Password : Batal Gambar III.34. Desain Form Admin 3. Desain Form Data Mobil Berikut adalah desain tampilan pada pengolahan data mobil dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.35 berikut : Daftar Mobil Baru Tambah Edit Kode Mobil : Tipe : Kategori : Harga Jual : Batal Gambar III.35. Desain Form Data Mobil

105 76 4. Desain Form Data Pelanggan Berikut adalah desain tampilan pada pengolahan data pelanggan dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.36 berikut : Daftar Pelanggan Baru Tambah Edit Batal Kode Pelanggan : Nama : Jenis Kelamin : Aalamat : Telp. Gambar III.36. Desain Form Data Pelanggan 5. Desain Form Data Pembelian Berikut adalah desain tampilan pada pengolahan data pembelian dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.37 berikut :

106 77 Gambar III.37. Desain Form Data Pembelian 6. Desain Form Penjualan Berikut adalah desain tampilan pada pengolahan data penjualan dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar III.38 berikut : Gambar III.38. Desain Form Data Penjualan

107 BAB IV HASIL DAN UJI COBA

108 BAB IV HASIL DAN UJI COBA IV.1. Tampilan Hasil Berikut ini dijelaskan tentang tampilan hasil dari Sistem Informasi Akuntansi Penetapan Harga Pokok Penjualan Mobil Menggunakan Metode Perpetual Pada Honda IDK 1 Medan dapat dilihat sebagai berikut: 7. Tampilan Form Login Aktifitas sistem login yang dilakukan oleh pakar dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar IV.1 berikut : Gambar IV.1. Tampilan Form Login 8. Tampilan Form Admin Berikut adalah Tampilan pada pengolahan admin dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar IV.2 berikut : 78

109 79 Gambar IV.2. Tampilan Form Admin 9. Tampilan Form Data Mobil Berikut adalah Tampilan pada pengolahan data mobil dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar IV.3 berikut : Gambar IV.3. Tampilan Form Data Mobil

110 Tampilan Form Data Pelanggan Berikut adalah Tampilan pada pengolahan data pelanggan dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar IV.4 berikut : Gambar IV.4. Tampilan Form Data Pelanggan 11. Tampilan Form Data Pembelian Berikut adalah Tampilan pada pengolahan data pembelian dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar IV.5 berikut : Gambar IV.5. Tampilan Form Data Pembelian

111 Tampilan Form Penjualan Berikut adalah Tampilan pada pengolahan data penjualan dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar IV.6 berikut : Gambar IV.6. Tampilan Form Data Penjualan 13. Tampilan Form Laporan Pembelian Berikut adalah Tampilan untuk melihat laporan pembelian dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar IV.7 berikut : Gambar IV.7. Tampilan Form Laporan Pembelian

112 Tampilan Form Laporan Penjualan Berikut adalah Tampilan untuk melihat laporan penjualan dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar IV.8 berikut : Gambar IV.8. Tampilan Form Laporan Penjualan 15. Tampilan Form Laporan Persediaan Berikut adalah Tampilan untuk melihat laporan persediaan dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar IV.9 berikut : Gambar IV.9. Tampilan Form Laporan Persediaan

113 Tampilan Form Laporan Jurnal Umum Berikut adalah Tampilan untuk melihat laporan jurnal umum dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar IV.10 berikut : Gambar IV.10. Tampilan Form Laporan Jurnal Umum 17. Tampilan Form Laporan Buku Besar Berikut adalah Tampilan untuk melihat laporan buku besar dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar IV.11 berikut :

114 84 Gambar IV.11. Tampilan Form Laporan Buku Besar 18. Tampilan Form Laporan Laba Rugi Berikut adalah Tampilan untuk melihat laporan laba rugi dapat diterangkan dengan langkah-langkah state yang ditunjukkan pada gambar IV.12 berikut : Gambar IV.12. Tampilan Form Laporan Laba Rugi

115 85 IV.2. Uji Coba Hasil IV.2.1. Skenario Pengujian Skenario pengujian yang akan dilakukan dengan menguji sistem yang dibangun secara alpha. Pengujian Sistem Informasi Akutansi Penetapan Harga Pokok Penjualan Mobil Menggunakan Metode Perpetual dengan data uji berdasarkan data yang diberikan dari PT. Honda IDK 1 Medan. Skenario pengujian selengkapnya terlihat pada tabel dibawah ini : Tabel IV.1. Skenario pengujian Sistem Informasi Akutansi Penetapan Harga Pokok Penjualan Mobil Menggunakana Metode Perpetual Item Uji Detail Pengujian Jenis Pengujian Login Klik Tombol Masuk Blackbox Klik Tombol Batal Blackbox Menu Admin Blackbox Menu Mobil Blackbox Menu Utama Menu Pelanggan Blackbox Menu Pembelian Blackbox Menu Penjualan Blackbox Menu Laporan Blackbox Tambah Data Blackbox Data Login Edit Data Blackbox Hapus Data Blackbox Tambah Data Blackbox Data Mobil Edit Data Blackbox Hapus Data Blackbox Tambah Data Blackbox Data Pelanggan Edit Data Blackbox Hapus Data Blackbox Data Pembelian Tambah Data Blackbox Hapus Data Blackbox Data Penjualan Tambah Data Blackbox Hapus Data Blackbox Data Laporan Laporan Pembelian Blackbox Laporan Penjualan Blackbox

116 86 Laporan Persediaan Laporan Jurnal Umum Laporan Buku Besar Laporan Laba Rugi Blackbox Blackbox Blackbox Blackbox VI.3. Hasil Pengujian Berdasarkan rencana pengujian yang telah disusun, maka dapat dilakukan pengujian sebagai berikut : VI.3.1. Pengujian Login Berikut ini adalah pengujian login, yaitu : Tabel IV.2. Pengujian Data Login Hasil Uji (Data Normal) Data Masukkan Yang diharapkan Pengamatan Kesimpulan Namauser : elfi Password : elfi Login Berhasil Nama user, password sesuai dengan tabel Petugas login berhasil sesuai yang diharapkan Diterima Namauser : admin Password : Login Berhasil Nama user, password sesuai dengan tabel Petugas login berhasil sesuai yang diharapkan Diterima

117 87 VI.3.2. Pengujian Form Menu Utama Berikut ini adalah pengujian menu utama, yaitu : Tabel IV.3 Pengujian Menu Utama Hasil Uji (Data Normal) Data Masukkan Yang diharapkan Pengamatan Klik Button Menampilkan Form login tampil Menu Login form menu login Klik Button Menampilkan Form menu mobil Menu Mobil form menu tampil mobil Klik Button Menampilkan Form menu pelanggan Menu Pelanggan form menu tampil pelanggan Klik Button Menampilkan Form menu pembelian Menu Pembelian form menu tampil pembelian Klik Button Menampilkan Form menu penjualan Menu Penjualan form menu tampil penjualan Klik Button Menampilkan Form menu tampil Menu Laporan form laporanlaporan laporan Kesimpulan Diterima Diterima Diterima Diterima Diterima Diterima VI.3.3. Pengujian Data Admin Pengujian data admin dilakukan untuk mensetting data login proses program penyeleksian ini, pengolahan data admin terdiri dari Kode Admin, Nama, Username, Password. Berikut ini adalah pengujian data admin, yaitu :

118 88 1. Tambah Data Admin Hasil Uji (Data Normal) Data Masukkan Kode Admin : AD002 Nama : Elfiana Username : elfi Password : elfi Yang diharapkan Admin bertambah Pengamatan Admin berhasil ditambah Kesimpulan Diterima 2. Edit Data Admin Hasil Uji (Data Normal) Data Masukkan Nama Lama : Elfiana Nama Baru : Administrasi Username Lama : elfi Username Baru : admin Password Lama : elfi Password Baru : Yang diharapkan Password berhasil diubah dan tersimpan kedalam tabel data admin Pengamatan Password berhasil diubah Kesimpulan Diterima 3. Hapus Data Admin Hasil Uji (Data Normal) Data Masukkan Yang diharapkan Pengamatan Kesimpulan Klik Kode Admin : AD001 Data terhapus admin Data berhasil dihapus Diterima VI.3.4. Pengujian Data Mobi Pengujian data mobil terdiri dari kode mobil, tipe, kategori, harga jual. Berikut tabel pengujian form mobil :

119 89 1. Tambah Data Mobil Hasil Uji (Data Normal) Data Masukkan Yang diharapkan Pengamatan Kesimpulan Kode Mobil : MO002 Tipe : HONDA CITY - New City S CVT Data mobil bertambah Data berhasil ditambah Diterima Kategori : Sedan Harga Jual : Edit Data Mobil Hasil Uji (Data Normal) Data Masukkan Yang diharapkan Pengamatan Kesimpulan Kategori Salah : Sedan Data berubah mobil Data diubah berhasil Diterima Kategori Benar : Hacthback 3. Hapus Data Mobil Hasil Uji (Data Normal) Data Masukkan Yang diharapkan Pengamatan Kesimpulan Klik Kode Mobil : MO002 Data terhapus mobil Data berhasil hapus Diterima VI.3.5. Pengujian Data Pelanggan Pengujian data customer terdiri dari kode pelanggan, nama, jenis kelamin, alamat, no telp/hp. Berikut tabel pengujian form pelanggan :

120 90 1. Tambah Data Pelanggan Hasil Uji (Data Normal) Data Masukkan Yang diharapkan Pengamatan Kesimpulan Biodata pelanggan Tersimpan dan masuk ke database Data disimpan tampil berhasil dan Diterima 2. Edit Data Pelanggan Hasil Uji (Data Normal) Data Masukkan Yang diharapkan Pengamatan Kesimpulan Kode Pelanggan : PE001 Isi data PE001 dapat diubah Data diubah berhasil Diterima 3. Hapus Data Pelanggan Hasil Uji (Data Normal) Data Masukkan Yang diharapkan Pengamatan Kesimpulan Klik Kode Pelanggan : PE001 Data Pelanggan terhapus Data dihapus berhasil Diterima VI.3.6. Pengujian Data Pembelian Pengujian untuk data pembelian terdiri atas kode pembelian, tanggal, dari, tipe mobil, warna, jumlah, harga beli, subtotal.

121 91 1. Tambah Data Pembelian Hasil Uji (Data Normal) Data Masukkan Kode Pembelian : PB Tanggal : 2 Feb 2016 Dari : PT. Honda Indonesia Tipe : HONDA ACCORD 2.4L Vti AT Warna : Hitam Jumlah : 2 Harga beli : Subtotal : Yang diharapkan Tersimpan dan masuk ke database Pengamatan Data berhasil disimpan dan tampil Kesimpulan Diterima 2. Hapus Data Pembelian Hasil Uji (Data Normal) Data Masukkan Klik Kode Pembelian : PB Yang diharapkan Data Pembelian terhapus Pengamatan Data berhasil dihapus Kesimpulan Diterima VI.3.7. Pengujian Data Penjualan Pengujian untuk data penjualan terdiri atas kode penjualan, tanggal, pelanggan, tipe mobil, warna, jumlah, harga jual, subtotal. 1. Tambah Data Penjualan Hasil Uji (Data Normal) Data Masukkan Kode Penjualan : PJ Tanggal : 2 Feb 2016 Pelanggan : Ahdinuddin Tipe : HONDA ACCORD 2.4L Vti AT Yang diharapkan Tersimpan dan masuk ke database Pengamatan Data berhasil disimpan dan tampil Kesimpulan Diterima

122 92 Warna : Hitam Jumlah : 1 Harga beli : Subtotal : Hapus Data Penjualan Hasil Uji (Data Normal) Data Masukkan Yang diharapkan Pengamatan Kesimpulan Klik Kode Penjualan : PJ Data Penjualan terhapus Data berhasil dihapus Diterima IV.4. Kelebihan dan Kekurangan Sistem Setiap sistem memiliki kelebihan dan kekurangan, berikut ini adalah kelebihan dan kekurangan sistem yang telah dibuat. IV.4.1. Kelebihan Sistem Kelebihan sistem ini diantaranya yaitu: 1. Dengan adanya sistem informasi keuangan maka perusahaan akan dengan mudah mengakses informasi-informasi yang diperlukan dalam pendataan keuangan khususnya dalam pendataan penjualan dan pengeluaran biaya. 2. Minimnya kesalahan yang terjadi dalam pendataan keuangan dapat mempermudah dan mempercepat karyawan bagian keuangan dalam melakukan pendataan sehingga tidak perlu lagi melakukan pemeriksaan data secara berulang-ulang.

123 93 3. Sistem keamanan pada sistem informasi akuntansi yang telah dirancang akan memberi kenyamanan kepada perusahaan dalam mengakses data yang berhubungan dengan pendataan keuangan penjualan perusahaan 4. Login tidak bisa dilakukan dengan berganda. 5. Memudahkan dalam pembuatan laporan dengan cepat dan efisien. IV.4.2. Kekurangan Sistem Adapun kekurangan sistem yang telah dibuat diantaranya yaitu: 1. Sistem tidak memiliki sistem backup data secara otomatis. 2. Pengolahan data dalam melakukan penerapan sistem akuntansi ini masih tergolong dalam pengolahan skala kecil. 3. Sistem yang telah dirancang belum menggunakan berbasis online.

124 BAB V KESIMPULAN DAN SARAN

125 BAB V KESIMPULAN DAN SARAN V.1. Kesimpulan antara lain : Dari hasil penelitian penulis, maka dapat diambil beberapa kesimpulan 1. Dalam penentuan harga pokok penjualan, informasi yang dibutuhkan oleh perusahaan adalah informasi mengenai persediaan awal barang, pembelian dan persediaan akhir barang, ketiga aspek tersebut sangat berpengaruh dalam melakukan perhitungan harga penjualan karena harga penjualan yang diterapkan oleh perusahaan akan mempengaruhi jumlah pembelian pada perusahaan, dan jumlah pembelian pada perusahaan akan secara otomatis mempengaruhi jumlah persediaan barang. 2. Sistem penerapan harga pokok terhadap penjualan mobil masih menggunakan metode perhitungan yang masih sangat sederhana yaitu melihat aktivitas penjualan mobil, kemudian berdasarkan penjualan mobil maka akan mempengaruhi aktivitas pembelian barang dan persediaan barang kemudian perusahaan akan melakukan perhitungan harga penjualan berdasarkan permintaan barang. 3. Sistem akan memproses data mobil, data daftar harga mobil dan data persediaan barang dan melakukan perhitungan serta melakukan pencatatan persediaan dengan metode perpetual 94

126 95 4. Bahasa pemrograman yang digunakan untuk membuat aplikasi ini adalah Visual Basic dan Basis data yang digunakan adalah SQL Server. V.2. Saran Berdasarkan hasil penelitian dan kesimpulan yang telah diuraikan di atas, maka ada beberapa saran yang dapat diberikan. Adapun saran-saran yang dapat di kemukakan adalah sebagai berikut : 1. Sebaiknya sistem ini dikembangkan sesuai dengan kebutuhan akuntansi perusahaan sehingga informasi lebih akurat. 2. Selalu mem backup data agar terhindar dari kemungkinan terjadinya kehilangan data penting yang disebabkan oleh kerusakan pada perangkat keras. 3. Sistem yang telah dirancang belum berbasis online.

127 DAFTAR PUSTAKA A. Sulimat, Zinia Th, Penentuan Harga Pokok Penjualan Kamar Menggunakan Activity Based Costing Pada Rsu Pancaran Kasih Gmim. Fakultas Ekonomi dan Bisnis, Jurusan Akuntansi Universitas Sam Ratulangi, Manado. Carolina, Monica Arista, Perancangan Sistem Informasi Akuntansi Persediaan. Universitas Dian Nuswantoro. Diana, Anastasia, Sistem Informasi Akuntansi Perancangan, Proses dan Penerapan. Andi, Yogyakarta. Gata, Windu, Sukses Membangun Aplikasi Penjualan Dengan Java. PT. Elex Media Komputindo, Jakarta. Indroprasto, Analisis Pengendalian Persediaan Produk Dengan Metode EOQ Menggunakan Algoritma Genetika untuk Mengefisiensikan Biaya Persediaan. JURNAL TEKNIK ITS Vol. 1, (Sept, 2012) ISSN: Khasana, Dwi Fitri, Sistem informasi Akuntansi Pendekatan Sistem Dan Teknologi Informasi. Jurnal. Kurniawan, Agus, Seri Belajar Mandiri Pemrograman VB.Net Untuk Pemula. People Enterprise Press. Rudianto, Pengantar Akuntansi Konsep & Teknik Penyusunan Laporan Keuangan. Erlangga, Jakarta. Simarmata, Janner, Basis Data Arsitektur Sistem Entity Relationship Diagram Keamanan Basis Data SQL (Stuctured Query Language) XML & Basis Data. C.V Andi Offset, Yogyakarta.

128 Solution, Cybertron, Membangun Aplikasi Database dengan Visual Basic 2008 dan SQL Server PT. Elex Media Komputindo, Jakarta. Sujarweni, V. Wiratna, Pengantar Akuntansi. Pustaka Baru Press, Yogyakarta. Supardi, Yuniar, Semua Bisa Menjadi Programmer Java Basic Programming. PT. Elex Media Komputindo, Jakarta. Supriyatno, Hadi, Aplikasi Akuntansi Persediaan Bahan Baku Dengan Metode Perpetual Menggunakan MYOB Accounting Pada PD. Lumbungsari. Jurnal Kompak STMIK IKMI Vol. 5, No. 1 Edisi Juli 2012.

129 LAMPIRAN

130 LISTING PROGRAM 1. Listing Form Admin Imports System.Data.SqlClient Public Class Form_Admin Private DS As DataSet Private query As String Public Sub getdata() koneksidb() Try koneksi.open() DS = New DataSet query = "SELECT * FROM admin" Dim cmd = New SqlCommand(query, koneksi) Dim dttable = New DataTable With dttable.columns.add("kode Admin", GetType(String)).Add("Nama", GetType(String)).Add("Username", GetType(String)) End With Dim rdr As SqlDataReader = cmd.executereader While rdr.read Dim data() As String = {(rdr.getvalue(0)), (rdr.getvalue(1)), (rdr.getvalue(2))} dttable.rows.add(data) End While rdr.close() DS.Tables.Add(dtTable) admintable.datasource = DS.Tables(0) admintable.refresh() admintable.clearselection() koneksi.close() Catch ex As Exception MsgBox("Gagal Meretrieve Data!! " & ex.message) koneksi.close() End Try Function isempty() Dim result As Boolean = False If kodefield.text = "" Then MsgBox("Kode Harus Diisi!!") : result = True ElseIf namafield.text = "" Then MsgBox("Nama Harus Diisi!!") : result = True ElseIf usernamefield.text = "" Then MsgBox("Username Harus Diisi!!") : result = True ElseIf passwordfield.text = "" Then MsgBox("Password Harus Diisi!!") : result = True

131 Return result End Function Sub savedata() Try If Not isempty() Then Dim kode_admin = kodefield.text Dim nama = namafield.text Dim username = usernamefield.text Dim password = passwordfield.text.replace(".", "") Dim sql = "INSERT INTO admin VALUES ('" & kode_admin & "', '" & nama & "', '" & username & "', '" & password & "')" cmd = New SqlCommand(sql) cmd.connection = koneksi koneksi.open() cmd.executenonquery() koneksi.close() MsgBox("Menyimpan", MsgBoxStyle.Information, "Pesan Program") getdata() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan") End Try Sub editdata() Try If Not isempty() Then Dim kode_admin = kodefield.text Dim nama = namafield.text Dim username = usernamefield.text Dim password = passwordfield.text Dim sql = "UPDATE admin SET nama = '" & nama & "', username = '" & username & "', password = '" & password & "' WHERE kode_admin = '" & kode_admin & "'" cmd = New SqlCommand(sql) cmd.connection = koneksi koneksi.open() cmd.executenonquery() koneksi.close() MsgBox("Menyimpan", MsgBoxStyle.Information, "Pesan Program") getdata() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan") End Try Sub deletedata(byref kode_admin As String) Try Dim hapus As Integer = MsgBox("Anda Yakin Ingin Menghapus Data ini?", MsgBoxStyle.OkCancel, "Info Program")

132 Select Case hapus Case vbcancel Exit Sub Case vbok query = "DELETE FROM admin WHERE kode_admin = '" & kode_admin & "'" Dim cmd As New SqlCommand(query, koneksi) koneksi.open() cmd.executenonquery() koneksi.close() MsgBox("Data Berhasil Dihapus") getdata() End Select Catch ex As Exception MsgBox("Gagal Menghapus Data!!") koneksi.close() End Try Function autonumberid(byval kode_admin As String) Dim str As String = Nothing kode_admin = Microsoft.VisualBasic.Right(kode_admin, Len(kode_admin) - 2) kode_admin = Int(kode_admin) + 1 If Len(kode_admin) = 1 Then str = "AD00" & kode_admin ElseIf Len(kode_admin) = 2 Then str = "AD0" & kode_admin ElseIf Len(kode_admin) = 3 Then str = "AD" & kode_admin Return str End Function Function autonumber() Dim cmd As New SqlCommand Dim dtreader As SqlDataReader Dim kode_admin As String = Nothing Try koneksi.open() cmd.connection = koneksi cmd.commandtext = "SELECT TOP 1 kode_admin FROM admin ORDER BY kode_admin DESC" dtreader = cmd.executereader If (dtreader.read()) Then kode_admin = autonumberid(cstr(dtreader.getvalue(0))) Else kode_admin = "AD001" koneksi.close() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan") End Try Return kode_admin End Function Private Function getpassword(byref kode_admin As String)

133 koneksidb() koneksi.open() Dim query = "SELECT password FROM admin WHERE kode_admin='" & kode_admin & "'" Dim cmd = New SqlCommand(query, koneksi) Dim rdr As SqlDataReader = cmd.executereader Dim pass = "" If rdr.read Then pass = rdr.getvalue(0) rdr.close() koneksi.close() Return pass End Function Private Sub newdata() barubutton.enabled = False editbutton.enabled = False tambahbutton.enabled = True hapusbutton.text = "Batal" kodefield.text = autonumber() namafield.text = "" namafield.enabled = True usernamefield.text = "" usernamefield.enabled = True passwordfield.text = "" passwordfield.enabled = True admintable.enabled = False Private Sub resetdata() barubutton.enabled = True editbutton.enabled = True tambahbutton.enabled = False editbutton.text = "Edit" hapusbutton.text = "Hapus" kodefield.text = "" namafield.text = "" namafield.enabled = False usernamefield.text = "" usernamefield.enabled = False passwordfield.text = "" passwordfield.enabled = False admintable.enabled = True Private Sub updatedata() If editbutton.text = "Edit" Then editbutton.text = "Simpan" hapusbutton.text = "Batal" barubutton.enabled = False namafield.enabled = True usernamefield.enabled = True passwordfield.enabled = True admintable.enabled = False Else editdata()

134 resetdata() Private Sub binding() If admintable.selectedrows.count > 0 Then kodefield.text = admintable.rows(admintable.currentrow.index).cells("kode Admin").Value.ToString namafield.text = admintable.rows(admintable.currentrow.index).cells("nama ").Value.ToString usernamefield.text = admintable.rows(admintable.currentrow.index).cells("user name").value.tostring passwordfield.text = getpassword(kodefield.text) Else kodefield.text = "" namafield.text = "" usernamefield.text = "" passwordfield.text = "" Private Sub barubutton_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles barubutton.click newdata() Private Sub tambahbutton_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles tambahbutton.click savedata() resetdata() Private Sub editbutton_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles editbutton.click If Not kodefield.text = "" Then updatedata() Private Sub hapusbutton_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles hapusbutton.click If hapusbutton.text = "Hapus" Then If Not kodefield.text = "" Then Dim kode_admin = kodefield.text deletedata(kode_admin) Else resetdata() Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown getdata()

135 Private Sub mobiltable_selectionchanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles admintable.selectionchanged binding() Private Sub tipefield_textchanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles namafield.textchanged settitlecasetextbox(namafield) End Class 2. Listing Form Utama Imports System.Data.SqlClient Public Class Form_Utama Dim user_name As String Dim pass_word As String Sub getdata() koneksidb() Try koneksi.open() Dim query As String = "SELECT username, password FROM admin WHERE username ='" & usernamefield.text & "'" Dim sqlcmd As New SqlCommand(query, koneksi) Dim sqlrdr As SqlDataReader = sqlcmd.executereader If sqlrdr.read Then user_name = CStr(sqlRdr.GetValue(0)) pass_word = CStr(sqlRdr.GetValue(1)) koneksi.close() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan") koneksi.close() End Try Sub login() If usernamefield.text = "" Then MsgBox("Username Anda Masih Kosong..!", MsgBoxStyle.Critical, "Pesan Kesalahan") : Exit Sub If passwordfield.text = "" Then MsgBox("Password Anda Masih Kosong..!", MsgBoxStyle.Critical, "Pesan Kesalahan") : Exit Sub getdata() If usernamefield.text = user_name And passwordfield.text = pass_word Then usernamefield.text = "" passwordfield.text = "" ToolStrip1.Visible = True GroupBox1.Visible = False adminbutton.enabled = True mobilbutton.enabled = True pelangganbutton.enabled = True

136 pembelianbutton.enabled = True penjualanbutton.enabled = True laporanbutton.enabled = True Else MsgBox("Username dan Password Anda Tidak Cocok..!") usernamefield.text = "" passwordfield.text = "" Private Sub passwordfield_keypress(byval sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles passwordfield.keypress If e.keychar = ChrW(Keys.Enter) Then login() Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mobilbutton.click For Each f As Form In Application.OpenForms If TypeOf f Is Form_Mobil Then f.activate() Return Next Dim child As New Form_Mobil child.mdiparent = Me child.show() Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pelangganbutton.click For Each f As Form In Application.OpenForms If TypeOf f Is Form_Pelanggan Then f.activate() Return Next Dim child As New Form_Pelanggan child.mdiparent = Me child.show() Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pembelianbutton.click For Each f As Form In Application.OpenForms If TypeOf f Is Form_Pembelian Then f.activate() Return Next Dim child As New Form_Pembelian child.mdiparent = Me

137 child.show() Private Sub ToolStripButton4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles penjualanbutton.click For Each f As Form In Application.OpenForms If TypeOf f Is Form_Penjualan Then f.activate() Return Next Dim child As New Form_Penjualan child.mdiparent = Me child.show() Private Sub ToolStripButton9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles laporanbutton.click Dim f As New Form_Pilih_Laporan f.showdialog() Private Sub ToolStripButton10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles adminbutton.click For Each f As Form In Application.OpenForms If TypeOf f Is Form_Admin Then f.activate() Return Next Dim child As New Form_Admin child.mdiparent = Me child.show() Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click login() End Class 3. Listing Form Mobil Imports System.Data.SqlClient Public Class Form_Mobil Private DS As DataSet Private query As String Public Sub getdata()

138 koneksidb() Try koneksi.open() DS = New DataSet query = "SELECT * FROM mobil" Dim cmd = New SqlCommand(query, koneksi) Dim dttable = New DataTable With dttable.columns.add("kode Mobil", GetType(String)).Add("Tipe", GetType(String)).Add("Kategori", GetType(String)).Add("Harga Jual", GetType(Decimal)).Add("Stok", GetType(String)) End With Dim rdr As SqlDataReader = cmd.executereader While rdr.read Dim data() As String = {(rdr.getvalue(0)), (rdr.getvalue(1)), (rdr.getvalue(2)), (rdr.getvalue(3)), (rdr.getvalue(4))} dttable.rows.add(data) End While DS.Tables.Add(dtTable) mobiltable.datasource = DS.Tables(0) mobiltable.refresh() mobiltable.clearselection() koneksi.close() Catch ex As Exception MsgBox("Gagal Meretrieve Data!! " & ex.message) koneksi.close() End Try Private Sub addcolumnbutton() Dim btndetail As New DataGridViewButtonColumn() With {.HeaderText = "Detail Stok",.Text = "Lihat Detail",.Name = "detailbutton",.usecolumntextforbuttonvalue = True } mobiltable.columns.add(btndetail) mobiltable.columns("harga Jual").DefaultCellStyle.Format = "n0" mobiltable.columns("harga Jual").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight mobiltable.columns("stok").defaultcellstyle.format = "n0" mobiltable.columns("stok").defaultcellstyle.alignment = DataGridViewContentAlignment.MiddleCenter mobiltable.columns("detailbutton").autosizemode = DataGridViewAutoSizeColumnMode.DisplayedCells mobiltable.refresh() Function isempty() Dim result As Boolean = False If kodefield.text = "" Then MsgBox("Kode Harus Diisi!!") : result = True ElseIf tipefield.text = "" Then MsgBox("Tipe Harus Diisi!!") : result = True ElseIf kategorifield.text = "" Then

139 MsgBox("Kategori Harus Diisi!!") : result = True ElseIf hargajualfield.text = "" Then MsgBox("Harga Jual Harus Diisi!!") : result = True Return result End Function Sub savedata() Try If Not isempty() Then Dim kode_mobil = kodefield.text Dim tipe = tipefield.text Dim kategori = kategorifield.text Dim harga_jual = hargajualfield.text.replace(".", "") Dim sql = "INSERT INTO mobil VALUES ('" & kode_mobil & "', '" & tipe & "', '" & kategori & "', '" & harga_jual & "', '0')" cmd = New SqlCommand(sql) cmd.connection = koneksi koneksi.open() cmd.executenonquery() koneksi.close() MsgBox("Menyimpan", MsgBoxStyle.Information, "Pesan Program") getdata() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan") End Try Sub editdata() Try If Not isempty() Then Dim kode_mobil = kodefield.text Dim tipe = tipefield.text Dim kategori = kategorifield.text Dim harga_jual = hargajualfield.text.replace(".", "") Dim sql = "UPDATE mobil SET tipe = '" & tipe & "', kategori = '" & kategori & "', harga_jual = '" & harga_jual & "' WHERE kode_mobil = '" & kode_mobil & "'" cmd = New SqlCommand(sql) cmd.connection = koneksi koneksi.open() cmd.executenonquery() koneksi.close() MsgBox("Menyimpan", MsgBoxStyle.Information, "Pesan Program") getdata() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan") End Try Sub deletedata(byref kode_mobil As String)

140 Try Dim hapus As Integer = MsgBox("Anda Yakin Ingin Menghapus Data ini?", MsgBoxStyle.OkCancel, "Info Program") Select Case hapus Case vbcancel Exit Sub Case vbok query = "DELETE FROM mobil WHERE kode_mobil = '" & kode_mobil & "'" Dim cmd As New SqlCommand(query, koneksi) koneksi.open() cmd.executenonquery() koneksi.close() MsgBox("Data Berhasil Dihapus") getdata() End Select Catch ex As Exception MsgBox("Gagal Menghapus Data!!") koneksi.close() End Try Function autonumberid(byval kode_mobil As String) Dim str As String = Nothing kode_mobil = Microsoft.VisualBasic.Right(kode_mobil, Len(kode_mobil) - 2) kode_mobil = Int(kode_mobil) + 1 If Len(kode_mobil) = 1 Then str = "MO00" & kode_mobil ElseIf Len(kode_mobil) = 2 Then str = "MO0" & kode_mobil ElseIf Len(kode_mobil) = 3 Then str = "MO" & kode_mobil Return str End Function Function autonumber() Dim cmd As New SqlCommand Dim dtreader As SqlDataReader Dim kode_mobil As String = Nothing Try koneksi.open() cmd.connection = koneksi cmd.commandtext = "SELECT TOP 1 kode_mobil FROM mobil ORDER BY kode_mobil DESC" dtreader = cmd.executereader If (dtreader.read()) Then kode_mobil = autonumberid(cstr(dtreader.getvalue(0))) Else kode_mobil = "MO001" koneksi.close() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan") End Try Return kode_mobil

141 End Function Private Sub newdata() barubutton.enabled = False editbutton.enabled = False tambahbutton.enabled = True hapusbutton.text = "Batal" kodefield.text = autonumber() tipefield.text = "" tipefield.enabled = True kategorifield.text = "" kategorifield.enabled = True hargajualfield.text = "" hargajualfield.enabled = True mobiltable.enabled = False Private Sub resetdata() barubutton.enabled = True editbutton.enabled = True tambahbutton.enabled = False editbutton.text = "Edit" hapusbutton.text = "Hapus" kodefield.text = "" tipefield.text = "" tipefield.enabled = False kategorifield.text = "" kategorifield.enabled = False hargajualfield.text = "" hargajualfield.enabled = False mobiltable.enabled = True Private Sub updatedata() If editbutton.text = "Edit" Then editbutton.text = "Simpan" hapusbutton.text = "Batal" barubutton.enabled = False tipefield.enabled = True kategorifield.enabled = True hargajualfield.enabled = True mobiltable.enabled = False Else editdata() resetdata() Private Sub binding() If mobiltable.selectedrows.count > 0 Then kodefield.text = mobiltable.rows(mobiltable.currentrow.index).cells("kode Mobil").Value.ToString tipefield.text = mobiltable.rows(mobiltable.currentrow.index).cells("tipe").value.tostring

142 kategorifield.text = mobiltable.rows(mobiltable.currentrow.index).cells("kategori").value.tostri ng hargajualfield.text = mobiltable.rows(mobiltable.currentrow.index).cells("harga Jual").Value.ToString Else kodefield.text = "" tipefield.text = "" kategorifield.text = "" hargajualfield.text = "" Private Sub barubutton_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles barubutton.click newdata() Private Sub tambahbutton_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles tambahbutton.click savedata() resetdata() Private Sub editbutton_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles editbutton.click If Not kodefield.text = "" Then updatedata() Private Sub hapusbutton_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles hapusbutton.click If hapusbutton.text = "Hapus" Then If Not kodefield.text = "" Then Dim kode_mobil = kodefield.text deletedata(kode_mobil) Else resetdata() Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown getdata() addcolumnbutton() Private Sub mobiltable_selectionchanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles mobiltable.selectionchanged binding() Private Sub hargajualfield_textchanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles hargajualfield.textchanged

143 setcurrencytexbox(hargajualfield) Private Sub tipefield_textchanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles tipefield.textchanged settitlecasetextbox(tipefield) Private Sub mobiltable_cellclick(byval sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles mobiltable.cellclick Dim sendergrid = DirectCast(sender, DataGridView) If TypeOf sendergrid.columns(e.columnindex) Is DataGridViewButtonColumn AndAlso e.rowindex >= 0 Then If sendergrid.columns(e.columnindex).name = "detailbutton" Then Dim f As New Form_Detail_Stok() With {.kode_mobil = mobiltable.rows(e.rowindex).cells("kode Mobil").Value.ToString } f.tipefield.text = mobiltable.rows(e.rowindex).cells("tipe").value.tostring f.showdialog() End Class 4. Listing Form Pelanggan Imports System.Data.SqlClient Public Class Form_Pelanggan Private DS As DataSet Private query As String Public Sub getdata() koneksidb() Try koneksi.open() DS = New DataSet query = "SELECT * FROM pelanggan" Dim cmd = New SqlCommand(query, koneksi) Dim dttable = New DataTable With dttable.columns.add("kode", GetType(String)).Add("Nama", GetType(String)).Add("Jenis Kelamin", GetType(String)).Add("Alamat", GetType(String)).Add("Telp", GetType(String)) End With Dim rdr As SqlDataReader = cmd.executereader While rdr.read Dim data() As String = {(rdr.getvalue(0)), (rdr.getvalue(1)), (rdr.getvalue(2)), (rdr.getvalue(3)), (rdr.getvalue(4))} dttable.rows.add(data) End While DS.Tables.Add(dtTable)

144 pelanggantable.datasource = DS.Tables(0) pelanggantable.columns("alamat").autosizemode = DataGridViewAutoSizeColumnMode.DisplayedCells pelanggantable.refresh() pelanggantable.clearselection() koneksi.close() Catch ex As Exception MsgBox("Gagal Meretrieve Data!! " & ex.message) koneksi.close() End Try Function isempty() Dim result As Boolean = False If kodefield.text = "" Then MsgBox("Kode Harus Diisi!!") : result = True ElseIf namafield.text = "" Then MsgBox("Nama Harus Diisi!!") : result = True ElseIf jeniskelaminfield.text = "" Then MsgBox("Jenis Kelamin Harus Diisi!!") : result = True ElseIf alamatfield.text = "" Then MsgBox("Alamat Harus Diisi!!") : result = True ElseIf telpfield.text = "" Then MsgBox("Telp Harus Diisi!!") : result = True Return result End Function Sub savedata() Try If Not isempty() Then Dim kode_pelanggan = kodefield.text Dim nama = namafield.text Dim kelamin = jeniskelaminfield.text Dim alamat = alamatfield.text Dim telp = telpfield.text Dim sql = "INSERT INTO pelanggan VALUES ('" & kode_pelanggan & "', '" & nama & "', '" & kelamin & "', '" & alamat & "', '" & telp & "')" cmd = New SqlCommand(sql) cmd.connection = koneksi koneksi.open() cmd.executenonquery() koneksi.close() MsgBox("Menyimpan", MsgBoxStyle.Information, "Pesan Program") getdata() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan") End Try Sub editdata() Try If Not isempty() Then Dim kode_pelanggan = kodefield.text

145 Dim nama = namafield.text Dim kelamin = jeniskelaminfield.text Dim alamat = alamatfield.text Dim telp = telpfield.text Dim sql = "UPDATE pelanggan SET nama = '" & nama & "', jenis_kelamin = '" & kelamin & "', alamat = '" & alamat & "', telp = '" & telp & "' WHERE kode_pelanggan = '" & kode_pelanggan & "'" cmd = New SqlCommand(sql) cmd.connection = koneksi koneksi.open() cmd.executenonquery() koneksi.close() MsgBox("Menyimpan", MsgBoxStyle.Information, "Pesan Program") getdata() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan") End Try Sub deletedata(byref kode_pelanggan As String) Try Dim hapus As Integer = MsgBox("Anda Yakin Ingin Menghapus Data ini?", MsgBoxStyle.OkCancel, "Info Program") Select Case hapus Case vbcancel Exit Sub Case vbok query = "DELETE FROM pelanggan WHERE kode_pelanggan = '" & kode_pelanggan & "'" Dim cmd As New SqlCommand(query, koneksi) koneksi.open() cmd.executenonquery() koneksi.close() MsgBox("Data Berhasil Dihapus") getdata() End Select Catch ex As Exception MsgBox("Gagal Menghapus Data!!") koneksi.close() End Try Function autonumberid(byval kode_pelanggan As String) Dim str As String = Nothing kode_pelanggan = Microsoft.VisualBasic.Right(kode_pelanggan, Len(kode_pelanggan) - 2) kode_pelanggan = Int(kode_pelanggan) + 1 If Len(kode_pelanggan) = 1 Then str = "PE00" & kode_pelanggan ElseIf Len(kode_pelanggan) = 2 Then str = "PE0" & kode_pelanggan ElseIf Len(kode_pelanggan) = 3 Then str = "PE" & kode_pelanggan Return str

146 End Function Function autonumber() Dim cmd As New SqlCommand Dim dtreader As SqlDataReader Dim kode_pelanggan As String = Nothing Try koneksi.open() cmd.connection = koneksi cmd.commandtext = "SELECT TOP 1 kode_pelanggan FROM pelanggan ORDER BY kode_pelanggan DESC" dtreader = cmd.executereader If (dtreader.read()) Then kode_pelanggan = autonumberid(cstr(dtreader.getvalue(0))) Else kode_pelanggan = "PE001" koneksi.close() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan") End Try Return kode_pelanggan End Function Private Sub newdata() barubutton.enabled = False editbutton.enabled = False tambahbutton.enabled = True hapusbutton.text = "Batal" kodefield.text = autonumber() namafield.text = "" namafield.enabled = True jeniskelaminfield.text = "" jeniskelaminfield.enabled = True alamatfield.text = "" alamatfield.enabled = True telpfield.text = "" telpfield.enabled = True pelanggantable.enabled = False Private Sub resetdata() barubutton.enabled = True editbutton.enabled = True tambahbutton.enabled = False editbutton.text = "Edit" hapusbutton.text = "Hapus" kodefield.text = "" namafield.text = "" namafield.enabled = False jeniskelaminfield.text = "" jeniskelaminfield.enabled = False alamatfield.text = "" alamatfield.enabled = False telpfield.text = "" telpfield.enabled = False pelanggantable.enabled = True

147 Private Sub updatedata() If editbutton.text = "Edit" Then editbutton.text = "Simpan" hapusbutton.text = "Batal" barubutton.enabled = False namafield.enabled = True jeniskelaminfield.enabled = True alamatfield.enabled = True telpfield.enabled = True pelanggantable.enabled = False Else editdata() resetdata() Private Sub binding() If pelanggantable.selectedrows.count > 0 Then kodefield.text = pelanggantable.rows(pelanggantable.currentrow.index).cells(0).value.tostrin g namafield.text = pelanggantable.rows(pelanggantable.currentrow.index).cells(1).value.tostrin g jeniskelaminfield.text = pelanggantable.rows(pelanggantable.currentrow.index).cells(2).value.tostrin g alamatfield.text = pelanggantable.rows(pelanggantable.currentrow.index).cells(3).value.tostrin g telpfield.text = pelanggantable.rows(pelanggantable.currentrow.index).cells(4).value.tostrin g Else kodefield.text = "" namafield.text = "" jeniskelaminfield.text = "" alamatfield.text = "" telpfield.text = "" Private Sub barubutton_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles barubutton.click newdata() Private Sub tambahbutton_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles tambahbutton.click savedata() resetdata() Private Sub editbutton_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles editbutton.click

148 If Not kodefield.text = "" Then updatedata() Private Sub hapusbutton_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles hapusbutton.click If hapusbutton.text = "Hapus" Then If Not kodefield.text = "" Then Dim kode_pelanggan = kodefield.text deletedata(kode_pelanggan) Else resetdata() Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown getdata() Private Sub pelanggantable_selectionchanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles pelanggantable.selectionchanged binding() Private Sub namafield_textchanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles namafield.textchanged settitlecasetextbox(namafield) Private Sub alamatfield_textchanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles alamatfield.textchanged settitlecasetextbox(alamatfield) End Class 5. Listing Form Pembelian Imports System.Data.SqlClient Public Class Form_Pembelian Private dataset As DataSet Private sqldataadapter As SqlDataAdapter Public Sub getdata() koneksidb() Try koneksi.open() Dim query = "" If sortirfield.selecteditem.tostring = "Terbaru" Then query = "SELECT * FROM pembelian ORDER BY tanggal DESC" ElseIf sortirfield.selecteditem.tostring = "Terlama" Then query = "SELECT * FROM pembelian ORDER BY tanggal ASC"

149 ElseIf sortirfield.selecteditem.tostring = "Termahal" Then query = "SELECT * FROM pembelian ORDER BY total DESC" ElseIf sortirfield.selecteditem.tostring = "Termurah" Then query = "SELECT * FROM pembelian ORDER BY total ASC" dataset = New DataSet sqldataadapter = New SqlDataAdapter(query, koneksi) sqldataadapter.fill(dataset, "pembelian") dataset.tables(0).columns(0).columnname = "Kode Pembelian" dataset.tables(0).columns(1).columnname = "Tanggal" dataset.tables(0).columns(2).columnname = "Dari" dataset.tables(0).columns(3).columnname = "Total" pembeliantable.datasource = dataset.tables("pembelian") pembeliantable.refresh() pembeliantable.clearselection() koneksi.close() Catch ex As Exception MsgBox("Gagal Meretrieve Data!! " & ex.message) koneksi.close() End Try Private Sub addcolumnbutton() Dim btndetail As New DataGridViewButtonColumn() With {.HeaderText = "Detail",.Text = "Lihat Detail",.Name = "detailbutton",.usecolumntextforbuttonvalue = True } pembeliantable.columns.add(btndetail) pembeliantable.columns("tanggal").defaultcellstyle.format = "dd MMM yyyy hh:mm" pembeliantable.columns("total").defaultcellstyle.format = "n0" pembeliantable.columns("total").defaultcellstyle.alignment = DataGridViewContentAlignment.MiddleRight pembeliantable.refresh() Sub deletedata(byref kode_pembelian As String) Dim sqltransaction As SqlTransaction Try Dim hapus As Integer = MsgBox("Anda Yakin Ingin Menghapus Data ini?", MsgBoxStyle.OkCancel, "Info Program") Select Case hapus Case vbcancel Exit Sub Case vbok koneksi.open() Dim cmd2 = New SqlCommand("SELECT kode_mobil, kode_warna, jumlah FROM detail_beli WHERE kode_pembelian='" & kode_pembelian & "'", koneksi) cmd2.transaction = sqltransaction Dim rdr As SqlDataReader = cmd2.executereader Dim alldata As New List(Of List(Of String)) While rdr.read Dim detaildata As New List(Of String)

150 detaildata.add(rdr.getvalue(0)) detaildata.add(rdr.getvalue(1)) detaildata.add(rdr.getvalue(2)) alldata.add(detaildata) End While rdr.close() For i = 0 To alldata.count - 1 Dim kode_mobil = alldata(i)(0) Dim kode_warna = alldata(i)(1) Dim jumlah = alldata(i)(2) Dim sqldataadapterstokdetail As New SqlDataAdapter("UPDATE detail_stok SET stok=((select stok FROM detail_stok WHERE kode_warna=@kw) WHERE kode_warna=@kw", koneksi) sqldataadapterstokdetail.selectcommand.transaction = sqltransaction sqldataadapterstokdetail.selectcommand.parameters.addwithvalue("@kw", kode_warna) sqldataadapterstokdetail.selectcommand.parameters.addwithvalue("@st", jumlah) sqldataadapterstokdetail.selectcommand.executenonquery() Dim sqldataadapterstok As New SqlDataAdapter("UPDATE mobil SET stok=((select stok FROM mobil WHERE kode_mobil=@km) WHERE kode_mobil=@km", koneksi) sqldataadapterstok.selectcommand.transaction = sqltransaction sqldataadapterstok.selectcommand.parameters.addwithvalue("@km", kode_mobil) sqldataadapterstok.selectcommand.parameters.addwithvalue("@st", jumlah) sqldataadapterstok.selectcommand.executenonquery() Next sqltransaction = koneksi.begintransaction Dim query = "DELETE FROM pembelian WHERE kode_pembelian = '" & kode_pembelian & "'" Dim cmd As New SqlCommand(query, koneksi) cmd.transaction = sqltransaction cmd.executenonquery() sqltransaction.commit() MsgBox("Data Berhasil Dihapus") getdata() End Select Catch ex As Exception sqltransaction.rollback() MsgBox("Gagal Menghapus Data " & ex.message) 'koneksi.close() Finally koneksi.close() End Try Private Sub Form_Pembelian_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown getdata() addcolumnbutton() Private Sub tambahbutton_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles tambahbutton.click

151 Dim f As New Form_Input_Pembelian() With {.form = Me} f.showdialog() 'pembeliantable.datasource = generatelaporanjurnal(6, 2016) Private Sub Form_Pembelian_Load_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load sortirfield.selectedindex = 0 Private Sub sortirfield_selectedindexchanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles sortirfield.selectedindexchanged getdata() Private Sub hapusbutton_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles hapusbutton.click If pembeliantable.selectedrows.count > 0 Then Dim kode_pembelian = pembeliantable.rows(pembeliantable.currentrow.index).cells("kode Pembelian").Value.ToString deletedata(kode_pembelian) Private Sub pembeliantable_cellclick(byval sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles pembeliantable.cellclick Dim sendergrid = DirectCast(sender, DataGridView) If TypeOf sendergrid.columns(e.columnindex) Is DataGridViewButtonColumn AndAlso e.rowindex >= 0 Then If sendergrid.columns(e.columnindex).name = "detailbutton" Then Dim f As New Form_Detail_Transaksi f.isbeli = True f.kode_pembelian = pembeliantable.rows(e.rowindex).cells("kode Pembelian").Value.ToString f.kodefield.text = pembeliantable.rows(e.rowindex).cells("kode Pembelian").Value.ToString f.tanggalfield.value = pembeliantable.rows(e.rowindex).cells("tanggal").value.tostring f.darifield.text = pembeliantable.rows(e.rowindex).cells("dari").value.tostring f.showdialog() End Class 6. Listing Form Input Pembelian Imports System.Data.SqlClient Public Class Form_Input_Pembelian

152 Private dt As DataTable Public form As Form_Pembelian Private tbwarna As DataTable Private Sub init() kodefield.text = autonumber() tbwarna = New DataTable tbwarna.columns.add("text", GetType(String)) tbwarna.columns.add("value", GetType(String)) warnafield.datasource = tbwarna warnafield.displaymember = "Text" warnafield.valuemember = "Value" warnafield.refresh() loadmobil() dt = New DataTable dt.columns.add("kode Mobil") dt.columns.add("tipe Mobil") dt.columns.add("kode Warna") dt.columns.add("warna") dt.columns.add("jumlah") dt.columns.add("harga Beli") dt.columns.add("subtotal") detailtable.datasource = dt detailtable.refresh() Private Sub loadmobil() koneksidb() Try koneksi.open() mobilfield.items.clear() mobilfield.displaymember = "Text" mobilfield.valuemember = "Value" Dim sqlcommand = New SqlCommand("SELECT kode_mobil, tipe FROM mobil ORDER BY tipe", koneksi) Dim sqldatareader As SqlDataReader = sqlcommand.executereader Dim tb As New DataTable tb.columns.add("text", GetType(String)) tb.columns.add("value", GetType(String)) While sqldatareader.read Dim id As String = sqldatareader.getvalue(0) Dim nama As String = sqldatareader.getvalue(1) tb.rows.add(nama, id) End While mobilfield.datasource = tb koneksi.close() Catch ex As Exception MsgBox(ex.Message) End Try Private Sub loadwarna(byref kode_mobil As String) koneksidb() Try koneksi.open() tbwarna.clear() Dim sqlcommand = New SqlCommand("SELECT kode_warna, warna FROM detail_stok WHERE kode_mobil='" & kode_mobil & "' ORDER BY warna", koneksi)

153 Dim sqldatareader As SqlDataReader = sqlcommand.executereader While sqldatareader.read Dim id As String = sqldatareader.getvalue(0) Dim nama As String = sqldatareader.getvalue(1) tbwarna.rows.add(nama, id) End While koneksi.close() Catch ex As Exception MsgBox("Erro Load Warna " & ex.message) End Try Private Function isemptyheader() Dim result As Boolean = False If darifield.text = "" Then MsgBox("Pembelian Dari Masih Kosong!!") : result = True Return result End Function Function autonumberid(byval kode_mobil As String) Dim str As String = Nothing kode_mobil = Microsoft.VisualBasic.Right(kode_mobil, Len(kode_mobil) - 2) kode_mobil = Int(kode_mobil) + 1 If Len(kode_mobil) = 1 Then str = "PB " & kode_mobil ElseIf Len(kode_mobil) = 2 Then str = "PB000000" & kode_mobil ElseIf Len(kode_mobil) = 3 Then str = "PB00000" & kode_mobil ElseIf Len(kode_mobil) = 4 Then str = "PB0000" & kode_mobil ElseIf Len(kode_mobil) = 5 Then str = "PB000" & kode_mobil ElseIf Len(kode_mobil) = 6 Then str = "PB00" & kode_mobil ElseIf Len(kode_mobil) = 7 Then str = "PB0" & kode_mobil ElseIf Len(kode_mobil) = 8 Then str = "PB" & kode_mobil Return str End Function Function autonumber() Dim cmd As New SqlCommand Dim dtreader As SqlDataReader Dim kode_mobil As String = Nothing Try koneksi.open() cmd.connection = koneksi cmd.commandtext = "SELECT TOP 1 kode_pembelian FROM pembelian ORDER BY kode_pembelian DESC" dtreader = cmd.executereader If (dtreader.read()) Then kode_mobil = autonumberid(cstr(dtreader.getvalue(0)))

154 Else kode_mobil = "PB " koneksi.close() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan") End Try Return kode_mobil End Function Private Function isemptydetail() Dim result As Boolean = False If mobilfield.text = "" Then MsgBox("Tipe Mobil Masih Kosong!!") : result = True ElseIf jumlahfield.text = "" Then MsgBox("Jumlah Masih Kosong!!") : result = True ElseIf hargabelifield.text = "" Then MsgBox("Harga Beli Mobil Masih Kosong!!") : result = True ElseIf subtotalfield.text = "" Then MsgBox("Subtotal Masih Kosong!!") : result = True ElseIf warnafield.text = "" Then MsgBox("Warna Masih Kosong!!") : result = True Return result End Function Private Function isexistmobil() For i = 0 To detailtable.rowcount - 1 Dim kode = detailtable.rows(i).cells("kode Mobil").Value.ToString Dim warna = detailtable.rows(i).cells("warna").value.tostring If mobilfield.selectedvalue = kode And warna = warnafield.text Then Return True Next Return False End Function Private Sub adddetail() If Not isemptydetail() Then If Not isexistmobil() Then Dim data() As String = {mobilfield.selectedvalue, mobilfield.text, warnafield.selectedvalue, warnafield.text, jumlahfield.value, hargabelifield.text, subtotalfield.text} dt.rows.add(data) detailtable.refresh() detailtable.clearselection() warnafield.text = "" jumlahfield.value = 1 hargabelifield.text = "" subtotalfield.text = "" mobilfield.focus() Else MsgBox("Mobil Tipe " & mobilfield.text & " Warna " & warnafield.text & " Sudah Terdaftar Di Table Detail")

155 Private Sub save() koneksidb() Dim sqltransaction As SqlTransaction Try If Not isemptyheader() Then koneksi.open() Dim kode = kodefield.text Dim tanggal = tanggalfield.value Dim dari = darifield.text Dim total = totallabel.text.replace(".", "") sqltransaction = koneksi.begintransaction Dim sqldataadapter As New SqlDataAdapter("INSERT INTO pembelian(kode_pembelian, tanggal, dari, total) @tt)", koneksi) sqldataadapter.selectcommand.transaction = sqltransaction sqldataadapter.selectcommand.parameters.addwithvalue("@kd", kode) sqldataadapter.selectcommand.parameters.addwithvalue("@tg", tanggal) sqldataadapter.selectcommand.parameters.addwithvalue("@dr", dari) sqldataadapter.selectcommand.parameters.addwithvalue("@tt", total) sqldataadapter.selectcommand.executenonquery() For i = 0 To detailtable.rowcount - 1 Dim kode_mobil = detailtable.rows(i).cells("kode Mobil").Value.ToString Dim warna = detailtable.rows(i).cells("kode Warna").Value.ToString Dim jumlah = detailtable.rows(i).cells("jumlah").value.tostring.replace(".", "") Dim harga = detailtable.rows(i).cells("harga Beli").Value.ToString.Replace(".", "") Dim subtotal = detailtable.rows(i).cells("subtotal").value.tostring.replace(".", "") 'Input Detail Pembelian Dim sqldataadapterdetail As New SqlDataAdapter("INSERT INTO detail_beli(kode_pembelian, kode_mobil, kode_warna, jumlah, harga_beli, subtotal) @st)", koneksi) sqldataadapterdetail.selectcommand.transaction = sqltransaction sqldataadapterdetail.selectcommand.parameters.addwithvalue("@kd", kode) sqldataadapterdetail.selectcommand.parameters.addwithvalue("@km", kode_mobil) sqldataadapterdetail.selectcommand.parameters.addwithvalue("@wr", warna) sqldataadapterdetail.selectcommand.parameters.addwithvalue("@jl", jumlah) sqldataadapterdetail.selectcommand.parameters.addwithvalue("@hb", harga) sqldataadapterdetail.selectcommand.parameters.addwithvalue("@st", subtotal) sqldataadapterdetail.selectcommand.executenonquery() 'Update Stok

156 Dim sqldataadapterstokdetail As New SqlDataAdapter("UPDATE detail_stok SET stok=((select stok FROM detail_stok WHERE WHERE koneksi) sqldataadapterstokdetail.selectcommand.transaction = sqltransaction sqldataadapterstokdetail.selectcommand.parameters.addwithvalue("@km", kode_mobil) sqldataadapterstokdetail.selectcommand.parameters.addwithvalue("@jm", jumlah) sqldataadapterstokdetail.selectcommand.parameters.addwithvalue("@wr", warna) sqldataadapterstokdetail.selectcommand.executenonquery() Dim sqldataadapterstok As New SqlDataAdapter("UPDATE mobil SET stok=((select stok FROM mobil WHERE kode_mobil=@km) WHERE kode_mobil=@km", koneksi) sqldataadapterstok.selectcommand.transaction = sqltransaction sqldataadapterstok.selectcommand.parameters.addwithvalue("@km", kode_mobil) sqldataadapterstok.selectcommand.parameters.addwithvalue("@jm", jumlah) sqldataadapterstok.selectcommand.executenonquery() Next sqltransaction.commit() Me.Close() Catch ex As Exception sqltransaction.rollback() MsgBox(ex.Message) Finally koneksi.close() form.getdata() End Try Private Sub getsubtotal() If Not jumlahfield.value = 0 And Not hargabelifield.text = "" Then If IsNumeric(hargaBeliField.Text.Replace(".", "")) Then Dim jumlah = jumlahfield.value Dim harga = CInt(hargaBeliField.Text.Replace(".", "")) Dim subtotal = jumlah * harga subtotalfield.text = subtotal.tostring("n0") Else subtotalfield.text = "0" Private Sub gettotal() Dim total = 0 For i = 0 To detailtable.rowcount - 1 total += CInt(detailTable.Rows(i).Cells("Subtotal").Value.ToString.Replace(".", "")) Next totallabel.text = total.tostring("n0") Private Sub Form_Input_Pembelian_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

157 init() Me.SetDesktopLocation(((1366 / 2) - (Me.Width / 2)) + (Form_Utama.ToolStrip1.Width / 2), (768 / 2) - (Me.Height / 2)) Private Sub hargabelifield_textchanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles hargabelifield.textchanged setcurrencytexbox(hargabelifield) getsubtotal() Private Sub jumlahfield_valuechanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles jumlahfield.valuechanged getsubtotal() Private Sub warnafield_keypress(byval sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles jumlahfield.keypress, hargabelifield.keypress, mobilfield.keypress, warnafield.keypress If e.keychar = ChrW(Keys.Enter) Then adddetail() Private Sub pembeliantable_rowsadded(byval sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewRowsAddedEventArgs) Handles detailtable.rowsadded gettotal() Private Sub pembeliantable_rowsremoved(byval sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewRowsRemovedEventArgs) Handles detailtable.rowsremoved gettotal() Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If detailtable.rowcount > 0 Then save() Else MsgBox("Detail Table Masih Kosong") Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close() Private Sub darifield_textchanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles darifield.textchanged settitlecasetextbox(darifield)

158 Private Sub mobilfield_selectedindexchanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles mobilfield.selectedindexchanged If mobilfield.selectedindex > -1 Then loadwarna(mobilfield.selectedvalue) End Class 7. Listing Form Penjualan Imports System.Data.SqlClient Public Class Form_Penjualan Private dataset As DataSet Private sqldataadapter As SqlDataAdapter Public Sub getdata() koneksidb() Try koneksi.open() Dim query = "" If sortirfield.selecteditem.tostring = "Terbaru" Then query = "SELECT p.kode_penjualan, p.tanggal, pl.nama, p.total FROM penjualan p, pelanggan pl WHERE p.kode_pelanggan=pl.kode_pelanggan ORDER BY p.tanggal DESC" ElseIf sortirfield.selecteditem.tostring = "Terlama" Then query = "SELECT p.kode_penjualan, p.tanggal, pl.nama, p.total FROM penjualan p, pelanggan pl WHERE p.kode_pelanggan=pl.kode_pelanggan ORDER BY tanggal ASC" ElseIf sortirfield.selecteditem.tostring = "Termahal" Then query = "SELECT p.kode_penjualan, p.tanggal, pl.nama, p.total FROM penjualan p, pelanggan pl WHERE p.kode_pelanggan=pl.kode_pelanggan ORDER BY total DESC" ElseIf sortirfield.selecteditem.tostring = "Termurah" Then query = "SELECT p.kode_penjualan, p.tanggal, pl.nama, p.total FROM penjualan p, pelanggan pl WHERE p.kode_pelanggan=pl.kode_pelanggan ORDER BY total ASC" dataset = New DataSet sqldataadapter = New SqlDataAdapter(query, koneksi) sqldataadapter.fill(dataset, "penjualan") dataset.tables(0).columns(0).columnname = "Kode Penjualan" dataset.tables(0).columns(1).columnname = "Tanggal" dataset.tables(0).columns(2).columnname = "Pelanggan" dataset.tables(0).columns(3).columnname = "Total" penjualantable.datasource = dataset.tables("penjualan") penjualantable.refresh() penjualantable.clearselection() koneksi.close() Catch ex As Exception MsgBox("Gagal Meretrieve Data!! " & ex.message)

159 koneksi.close() End Try Private Sub addcolumnbutton() Dim btndetail As New DataGridViewButtonColumn() With {.HeaderText = "Detail",.Text = "Lihat Detail",.Name = "detailbutton",.usecolumntextforbuttonvalue = True } penjualantable.columns.add(btndetail) penjualantable.columns("tanggal").defaultcellstyle.format = "dd MMM yyyy hh:mm" penjualantable.columns("total").defaultcellstyle.format = "n0" penjualantable.columns("total").defaultcellstyle.alignment = DataGridViewContentAlignment.MiddleRight penjualantable.refresh() Sub deletedata(byref kode_penjualan As String) Dim sqltransaction As SqlTransaction Try Dim hapus As Integer = MsgBox("Anda Yakin Ingin Menghapus Data ini?", MsgBoxStyle.OkCancel, "Info Program") Select Case hapus Case vbcancel Exit Sub Case vbok koneksi.open() Dim cmd2 = New SqlCommand("SELECT kode_mobil, kode_warna, jumlah FROM detail_jual WHERE kode_penjualan='" & kode_penjualan & "'", koneksi) cmd2.transaction = sqltransaction Dim rdr As SqlDataReader = cmd2.executereader Dim alldata As New List(Of List(Of String)) While rdr.read Dim detaildata As New List(Of String) detaildata.add(rdr.getvalue(0)) detaildata.add(rdr.getvalue(1)) detaildata.add(rdr.getvalue(2)) alldata.add(detaildata) End While rdr.close() For i = 0 To alldata.count - 1 Dim kode_mobil = alldata(i)(0) Dim kode_warna = alldata(i)(1) Dim jumlah = alldata(i)(2) Dim sqldataadapterstokdetail As New SqlDataAdapter("UPDATE detail_stok SET stok=((select stok FROM detail_stok WHERE kode_warna=@kw) WHERE kode_warna=@kw", koneksi) sqldataadapterstokdetail.selectcommand.transaction = sqltransaction sqldataadapterstokdetail.selectcommand.parameters.addwithvalue("@kw", kode_warna)

160 jumlah) sqldataadapterstokdetail.selectcommand.executenonquery() Dim sqldataadapterstok As New SqlDataAdapter("UPDATE mobil SET stok=((select stok FROM mobil WHERE WHERE koneksi) sqldataadapterstok.selectcommand.transaction = sqltransaction sqldataadapterstok.selectcommand.parameters.addwithvalue("@km", kode_mobil) sqldataadapterstok.selectcommand.parameters.addwithvalue("@st", jumlah) sqldataadapterstok.selectcommand.executenonquery() Next sqltransaction = koneksi.begintransaction Dim query = "DELETE FROM penjualan WHERE kode_penjualan = '" & kode_penjualan & "'" Dim cmd As New SqlCommand(query, koneksi) cmd.transaction = sqltransaction cmd.executenonquery() sqltransaction.commit() MsgBox("Data Berhasil Dihapus") getdata() End Select Catch ex As Exception sqltransaction.rollback() MsgBox("Gagal Menghapus Data " & ex.message) 'koneksi.close() Finally koneksi.close() End Try Private Sub Form_Pembelian_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown getdata() addcolumnbutton() Private Sub tambahbutton_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles tambahbutton.click Dim f As New Form_Input_Penjualan() With {.form = Me} f.showdialog() 'generatelaporanpersediaan("mo001", 5, 2016) Private Sub Form_Pembelian_Load_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load sortirfield.selectedindex = 0 Private Sub sortirfield_selectedindexchanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles sortirfield.selectedindexchanged getdata()

161 Private Sub hapusbutton_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles hapusbutton.click If penjualantable.selectedrows.count > 0 Then Dim kode_penjualan = penjualantable.rows(penjualantable.currentrow.index).cells("kode Penjualan").Value.ToString deletedata(kode_penjualan) Private Sub pembeliantable_cellclick(byval sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles penjualantable.cellclick Dim sendergrid = DirectCast(sender, DataGridView) If TypeOf sendergrid.columns(e.columnindex) Is DataGridViewButtonColumn AndAlso e.rowindex >= 0 Then If sendergrid.columns(e.columnindex).name = "detailbutton" Then Dim f As New Form_Detail_Transaksi f.isbeli = False f.kode_penjualan = penjualantable.rows(e.rowindex).cells("kode Penjualan").Value.ToString f.kodefield.text = penjualantable.rows(e.rowindex).cells("kode Penjualan").Value.ToString f.tanggalfield.value = penjualantable.rows(e.rowindex).cells("tanggal").value.tostring f.darifield.text = penjualantable.rows(e.rowindex).cells("pelanggan").value.tostring f.showdialog() End Class 8. Listing Form Input Penjualan Imports System.Data.SqlClient Public Class Form_Input_Penjualan Private dt As DataTable Public form As Form_Penjualan Private tbwarna As DataTable Private Sub init() kodefield.text = autonumber() tbwarna = New DataTable tbwarna.columns.add("text", GetType(String)) tbwarna.columns.add("value", GetType(String)) warnafield.datasource = tbwarna warnafield.displaymember = "Text" warnafield.valuemember = "Value" warnafield.refresh() loadmobil() loadpelanggan()

162 dt = New DataTable dt.columns.add("kode Mobil") dt.columns.add("tipe Mobil") dt.columns.add("kode Warna") dt.columns.add("warna") dt.columns.add("jumlah") dt.columns.add("harga Jual") dt.columns.add("subtotal") detailtable.datasource = dt detailtable.refresh() Private Sub loadmobil() koneksidb() Try koneksi.open() mobilfield.items.clear() mobilfield.displaymember = "Text" mobilfield.valuemember = "Value" Dim sqlcommand = New SqlCommand("SELECT kode_mobil, tipe FROM mobil ORDER BY tipe", koneksi) Dim sqldatareader As SqlDataReader = sqlcommand.executereader Dim tb As New DataTable tb.columns.add("text", GetType(String)) tb.columns.add("value", GetType(String)) While sqldatareader.read Dim id As String = sqldatareader.getvalue(0) Dim nama As String = sqldatareader.getvalue(1) tb.rows.add(nama, id) End While mobilfield.datasource = tb koneksi.close() Catch ex As Exception MsgBox(ex.Message) End Try Private Sub loadpelanggan() koneksidb() Try koneksi.open() pelangganfield.items.clear() pelangganfield.displaymember = "Text" pelangganfield.valuemember = "Value" Dim sqlcommand = New SqlCommand("SELECT kode_pelanggan, nama FROM pelanggan ORDER BY nama", koneksi) Dim sqldatareader As SqlDataReader = sqlcommand.executereader Dim tb As New DataTable tb.columns.add("text", GetType(String)) tb.columns.add("value", GetType(String)) While sqldatareader.read Dim id As String = sqldatareader.getvalue(0) Dim nama As String = sqldatareader.getvalue(1) tb.rows.add(nama, id) End While pelangganfield.datasource = tb koneksi.close()

163 Catch ex As Exception MsgBox(ex.Message) End Try Private Sub loadwarna(byref kode_mobil As String) koneksidb() Try koneksi.open() tbwarna.clear() Dim sqlcommand = New SqlCommand("SELECT kode_warna, warna FROM detail_stok WHERE kode_mobil='" & kode_mobil & "' AND stok > 0 ORDER BY warna", koneksi) Dim sqldatareader As SqlDataReader = sqlcommand.executereader While sqldatareader.read Dim id As String = sqldatareader.getvalue(0) Dim nama As String = sqldatareader.getvalue(1) tbwarna.rows.add(nama, id) End While If tbwarna.rows.count = 0 Then tbwarna.rows.add("stok Kosong", "Stok Kosong") jumlahfield.value = 0 jumlahfield.enabled = False Else jumlahfield.value = 1 jumlahfield.enabled = True koneksi.close() Catch ex As Exception MsgBox("Erro Load Warna " & ex.message) End Try Private Sub loadmaxstok(byref kode_warna As String) koneksidb() koneksi.open() Dim query = "SELECT stok FROM detail_stok WHERE kode_warna='" & kode_warna & "' " Dim cmd = New SqlCommand(query, koneksi) Dim rdr As SqlDataReader = cmd.executereader If rdr.read Then jumlahfield.maximum = rdr.getvalue(0) koneksi.close() Private Function isemptyheader() Dim result As Boolean = False If pelangganfield.text = "" Then MsgBox("Kolom Pelanggan Masih Kosong!!") : result = True Return result End Function Function autonumberid(byval kode_mobil As String) Dim str As String = Nothing

164 kode_mobil = Microsoft.VisualBasic.Right(kode_mobil, Len(kode_mobil) - 2) kode_mobil = Int(kode_mobil) + 1 If Len(kode_mobil) = 1 Then str = "PJ " & kode_mobil ElseIf Len(kode_mobil) = 2 Then str = "PJ000000" & kode_mobil ElseIf Len(kode_mobil) = 3 Then str = "PJ00000" & kode_mobil ElseIf Len(kode_mobil) = 4 Then str = "PJ0000" & kode_mobil ElseIf Len(kode_mobil) = 5 Then str = "PJ000" & kode_mobil ElseIf Len(kode_mobil) = 6 Then str = "PJ00" & kode_mobil ElseIf Len(kode_mobil) = 7 Then str = "PJ0" & kode_mobil ElseIf Len(kode_mobil) = 8 Then str = "PJ" & kode_mobil Return str End Function Function autonumber() Dim cmd As New SqlCommand Dim dtreader As SqlDataReader Dim kode_mobil As String = Nothing Try koneksi.open() cmd.connection = koneksi cmd.commandtext = "SELECT TOP 1 kode_penjualan FROM penjualan ORDER BY kode_penjualan DESC" dtreader = cmd.executereader If (dtreader.read()) Then kode_mobil = autonumberid(cstr(dtreader.getvalue(0))) Else kode_mobil = "PJ " koneksi.close() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan") End Try Return kode_mobil End Function Private Function gethargajual(byref kode_mobil As String) koneksidb() koneksi.open() Dim query = "SELECT harga_jual FROM mobil WHERE kode_mobil='" & kode_mobil & "' " Dim cmd = New SqlCommand(query, koneksi) Dim rdr As SqlDataReader = cmd.executereader Dim bobot = New Double If rdr.read Then bobot = rdr.getvalue(0) koneksi.close()

165 Return bobot End Function Private Function isemptydetail() Dim result As Boolean = False If mobilfield.text = "" Then MsgBox("Tipe Mobil Masih Kosong!!") : result = True ElseIf jumlahfield.text = "" Then MsgBox("Jumlah Masih Kosong!!") : result = True ElseIf hargabelifield.text = "" Then MsgBox("Harga Jual Mobil Masih Kosong!!") : result = True ElseIf subtotalfield.text = "" Then MsgBox("Subtotal Masih Kosong!!") : result = True ElseIf warnafield.text = "" Then MsgBox("Warna Masih Kosong!!") : result = True Return result End Function Private Function isexistmobil() For i = 0 To detailtable.rowcount - 1 Dim kode = detailtable.rows(i).cells("kode Mobil").Value.ToString Dim warna = detailtable.rows(i).cells("warna").value.tostring If mobilfield.selectedvalue = kode And warna = warnafield.text Then Return True Next Return False End Function Private Sub adddetail() If Not isemptydetail() Then If Not isexistmobil() Then Dim data() As String = {mobilfield.selectedvalue, mobilfield.text, warnafield.selectedvalue, warnafield.text, jumlahfield.value, hargabelifield.text, subtotalfield.text} dt.rows.add(data) detailtable.refresh() detailtable.clearselection() warnafield.text = "" jumlahfield.value = 1 mobilfield.focus() Else MsgBox("Mobil Tipe " & mobilfield.text & " Warna " & warnafield.text & " Sudah Terdaftar Di Table Detail") Private Sub save() koneksidb() Dim sqltransaction As SqlTransaction Try If Not isemptyheader() Then koneksi.open()

166 Dim kode = kodefield.text Dim tanggal = tanggalfield.value Dim kode_pelanggan = pelangganfield.selectedvalue Dim total = totallabel.text.replace(".", "") sqltransaction = koneksi.begintransaction Dim sqldataadapter As New SqlDataAdapter("INSERT INTO penjualan(kode_penjualan, tanggal, kode_pelanggan, total) @tt)", koneksi) sqldataadapter.selectcommand.transaction = sqltransaction sqldataadapter.selectcommand.parameters.addwithvalue("@kd", kode) sqldataadapter.selectcommand.parameters.addwithvalue("@tg", tanggal) sqldataadapter.selectcommand.parameters.addwithvalue("@dr", kode_pelanggan) sqldataadapter.selectcommand.parameters.addwithvalue("@tt", total) sqldataadapter.selectcommand.executenonquery() For i = 0 To detailtable.rowcount 1 Dim kode_mobil = detailtable.rows(i).cells("kode Mobil").Value.ToString Dim warna = detailtable.rows(i).cells("kode Warna").Value.ToString Dim jumlah = detailtable.rows(i).cells("jumlah").value.tostring.replace(".", "") Dim harga = detailtable.rows(i).cells("harga Jual").Value.ToString.Replace(".", "") Dim subtotal = detailtable.rows(i).cells("subtotal").value.tostring.replace(".", "") 'Input Detail Pembelian Dim sqldataadapterdetail As New SqlDataAdapter("INSERT INTO detail_jual(kode_penjualan, kode_mobil, kode_warna, jumlah, harga_jual, subtotal) @st)", koneksi) sqldataadapterdetail.selectcommand.transaction = sqltransaction sqldataadapterdetail.selectcommand.parameters.addwithvalue("@kd", kode) sqldataadapterdetail.selectcommand.parameters.addwithvalue("@km", kode_mobil) sqldataadapterdetail.selectcommand.parameters.addwithvalue("@wr", warna) sqldataadapterdetail.selectcommand.parameters.addwithvalue("@jl", jumlah) sqldataadapterdetail.selectcommand.parameters.addwithvalue("@hb", harga) sqldataadapterdetail.selectcommand.parameters.addwithvalue("@st", subtotal) sqldataadapterdetail.selectcommand.executenonquery() 'Update Stok Dim sqldataadapterstokdetail As New SqlDataAdapter("UPDATE detail_stok SET stok=((select stok FROM detail_stok WHERE kode_warna=@wr) WHERE kode_warna=@wr", koneksi) sqldataadapterstokdetail.selectcommand.transaction = sqltransaction sqldataadapterstokdetail.selectcommand.parameters.addwithvalue("@km", kode_mobil) sqldataadapterstokdetail.selectcommand.parameters.addwithvalue("@jm", jumlah) sqldataadapterstokdetail.selectcommand.parameters.addwithvalue("@wr", warna) sqldataadapterstokdetail.selectcommand.executenonquery() Dim sqldataadapterstok As New SqlDataAdapter("UPDATE mobil SET stok=((select stok FROM mobil WHERE kode_mobil=@km) WHERE kode_mobil=@km", koneksi) sqldataadapterstok.selectcommand.transaction = sqltransaction sqldataadapterstok.selectcommand.parameters.addwithvalue("@km", kode_mobil)

167 jumlah) sqldataadapterstok.selectcommand.executenonquery() Next sqltransaction.commit() Me.Close() Catch ex As Exception sqltransaction.rollback() MsgBox(ex.Message) Finally koneksi.close() form.getdata() End Try Private Sub getsubtotal() If Not jumlahfield.value = 0 And Not hargabelifield.text = "" Then If IsNumeric(hargaBeliField.Text.Replace(".", "")) Then Dim jumlah = jumlahfield.value Dim harga = CInt(hargaBeliField.Text.Replace(".", "")) Dim subtotal = jumlah * harga subtotalfield.text = subtotal.tostring("n0") Else subtotalfield.text = "0" Private Sub gettotal() Dim total = 0 For i = 0 To detailtable.rowcount - 1 total += CInt(detailTable.Rows(i).Cells("Subtotal").Value.ToString.Replace(".", "")) Next totallabel.text = total.tostring("n0") Private Sub Form_Input_Pembelian_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load init() Me.SetDesktopLocation(((1366 / 2) - (Me.Width / 2)) + (Form_Utama.ToolStrip1.Width / 2), (768 / 2) - (Me.Height / 2)) Private Sub hargabelifield_textchanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles hargabelifield.textchanged setcurrencytexbox(hargabelifield) getsubtotal() Private Sub jumlahfield_valuechanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles jumlahfield.valuechanged getsubtotal()

168 Private Sub warnafield_keypress(byval sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles jumlahfield.keypress, hargabelifield.keypress, mobilfield.keypress, warnafield.keypress If e.keychar = ChrW(Keys.Enter) Then adddetail() Private Sub pembeliantable_rowsadded(byval sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewRowsAddedEventArgs) Handles detailtable.rowsadded gettotal() Private Sub pembeliantable_rowsremoved(byval sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewRowsRemovedEventArgs) Handles detailtable.rowsremoved gettotal() Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If detailtable.rowcount > 0 Then save() Else MsgBox("Detail Table Masih Kosong") Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close() Private Sub mobilfield_selectedindexchanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles mobilfield.selectedindexchanged If Not mobilfield.text = "" Then loadwarna(mobilfield.selectedvalue) loadmaxstok(warnafield.selectedvalue) hargabelifield.text = gethargajual(mobilfield.selectedvalue) Private Sub warnafield_selectedindexchanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles warnafield.selectedindexchanged If warnafield.selectedindex > -1 Then loadmaxstok(warnafield.selectedvalue) End Class 9. Listing Form Pilih Laporan Public Class Form_Pilih_Laporan

169 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim f As New Form_Periode_Laporan f.laporan = 3 f.showdialog() Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim f As New Form_Periode_Laporan f.laporan = 4 f.showdialog() Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Dim f As New Form_Periode_Laporan f.laporan = 5 f.showdialog() Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim f As New Form_Periode_Laporan f.laporan = 0 f.showdialog() Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim f As New Form_Periode_Laporan f.laporan = 1 f.showdialog() Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click Dim f As New Form_Periode_Laporan f.laporan = 2 f.showdialog() End Class 10. Listing Form Detail Stok Imports System.Data.SqlClient Public Class Form_Detail_Stok Private DS As DataSet Private query As String Public kode_mobil As String Public Sub getdata() koneksidb()

170 Try koneksi.open() DS = New DataSet query = "SELECT kode_warna, warna, stok FROM detail_stok WHERE kode_mobil='" & kode_mobil & "'" Dim cmd = New SqlCommand(query, koneksi) Dim dttable = New DataTable With dttable.columns.add("kode Warna", GetType(String)).Add("Warna", GetType(String)).Add("Stok", GetType(String)) End With Dim rdr As SqlDataReader = cmd.executereader While rdr.read Dim data() As String = {(rdr.getvalue(0)), (rdr.getvalue(1)), (rdr.getvalue(2))} dttable.rows.add(data) End While DS.Tables.Add(dtTable) detailstok.datasource = DS.Tables(0) detailstok.columns("stok").defaultcellstyle.format = "n0" detailstok.columns("stok").defaultcellstyle.alignment = DataGridViewContentAlignment.MiddleCenter detailstok.refresh() detailstok.clearselection() koneksi.close() Catch ex As Exception MsgBox("Gagal Meretrieve Data!! " & ex.message) koneksi.close() End Try Function autonumberid(byval kode_mobil As String) Dim str As String = Nothing kode_mobil = Microsoft.VisualBasic.Right(kode_mobil, Len(kode_mobil) - 2) kode_mobil = Int(kode_mobil) + 1 If Len(kode_mobil) = 1 Then str = "WR00" & kode_mobil ElseIf Len(kode_mobil) = 2 Then str = "WR0" & kode_mobil ElseIf Len(kode_mobil) = 3 Then str = "WR" & kode_mobil Return str End Function Function autonumber() Dim cmd As New SqlCommand Dim dtreader As SqlDataReader Dim kode_mobil As String = Nothing Try koneksi.open() cmd.connection = koneksi cmd.commandtext = "SELECT TOP 1 kode_warna FROM detail_stok ORDER BY kode_warna DESC" dtreader = cmd.executereader

171 If (dtreader.read()) Then kode_mobil = autonumberid(cstr(dtreader.getvalue(0))) Else kode_mobil = "WR001" koneksi.close() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan") End Try Return kode_mobil End Function Function isempty() Dim result As Boolean = False If warnafield.text = "" Then MsgBox("Warna Harus Diisi!!") : result = True Return result End Function Sub savedata() Try If Not isempty() Then Dim kode = autonumber() Dim warna = warnafield.text Dim sql = "INSERT INTO detail_stok VALUES ('" & kode & "','" & kode_mobil & "', '" & warna & "', '0')" cmd = New SqlCommand(sql) cmd.connection = koneksi koneksi.open() cmd.executenonquery() koneksi.close() MsgBox("Menyimpan", MsgBoxStyle.Information, "Pesan Program") getdata() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan") End Try Sub editdata() Try If Not isempty() Then Dim kode = detailstok.rows(detailstok.currentrow.index).cel ls("kode Warna").Value.ToString Dim warna = warnafield.text Dim sql = "UPDATE detail_stok SET warna = '" & warna & "' WHERE kode_warna = '" & kode & "'" cmd = New SqlCommand(sql) cmd.connection = koneksi koneksi.open() cmd.executenonquery() koneksi.close() MsgBox("Menyimpan", MsgBoxStyle.Information, "Pesan Program")

172 getdata() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan") End Try Sub deletedata(byref kode_warna As String) Try Dim hapus As Integer = MsgBox("Anda Yakin Ingin Menghapus Data ini?", MsgBoxStyle.OkCancel, "Info Program") Select Case hapus Case vbcancel Exit Sub Case vbok query = "DELETE FROM detail_stok WHERE kode_warna = '" & kode_warna & "'" Dim cmd As New SqlCommand(query, koneksi) koneksi.open() cmd.executenonquery() koneksi.close() MsgBox("Data Berhasil Dihapus") getdata() End Select Catch ex As Exception MsgBox("Gagal Menghapus Data!!") koneksi.close() End Try Private Sub newdata() barubutton.enabled = False editbutton.enabled = False tambahbutton.enabled = True hapusbutton.text = "Batal" warnafield.text = "" warnafield.enabled = True detailstok.enabled = False Private Sub resetdata() barubutton.enabled = True editbutton.enabled = True tambahbutton.enabled = False editbutton.text = "Edit" hapusbutton.text = "Hapus" warnafield.text = "" warnafield.enabled = False detailstok.enabled = True Private Sub updatedata() If editbutton.text = "Edit" Then editbutton.text = "Simpan" hapusbutton.text = "Batal" warnafield.enabled = True barubutton.enabled = False

173 detailstok.enabled = False Else editdata() resetdata() Private Sub binding() If detailstok.selectedrows.count > 0 Then warnafield.text = detailstok.rows(detailstok.currentrow.index).cells("warna").value.tostring Else warnafield.text = "" Private Sub barubutton_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles barubutton.click newdata() Private Sub tambahbutton_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles tambahbutton.click savedata() resetdata() Private Sub editbutton_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles editbutton.click If Not warnafield.text = "" Then updatedata() Private Sub hapusbutton_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles hapusbutton.click If hapusbutton.text = "Hapus" And Not warnafield.text = "" Then Dim stok = CInt(detailStok.Rows(detailStok.CurrentRow.Index).Cells("Stok").Value.ToStr ing) If stok = 0 Then Dim kode_warna = detailstok.rows(detailstok.currentrow.index).cells("kode Warna").Value.ToString deletedata(kode_warna) Else MsgBox("Tidak Dapat Menghapus Warna Mobil Karna Stok Masih Tersedia, Penghapusan Hanya Bisa Diproses Jika Stok Warna = 0") Else resetdata() Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown getdata()

174 Private Sub mobiltable_selectionchanged(byval sender As System.Object, ByVal e As System.EventArgs) Handles detailstok.selectionchanged binding() Private Sub Form_Detail_Stok_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.SetDesktopLocation(((1366 / 2) - (Me.Width / 2)) + (Form_Utama.ToolStrip1.Width / 2), (768 / 2) - (Me.Height / 2)) End Class 11. Listing Form Detail Transaksi Imports System.Data.SqlClient Public Class Form_Detail_Transaksi Public kode_pembelian As String Public kode_penjualan As String Public isbeli As Boolean Public Sub getdetailbeli() koneksidb() Try koneksi.open() Dim DS = New DataSet Dim query = "SELECT db.kode_mobil, m.tipe, ds.warna, db.jumlah, db.harga_beli, db.subtotal FROM detail_beli db, mobil m, detail_stok ds WHERE db.kode_mobil=m.kode_mobil AND db.kode_warna=ds.kode_warna AND db.kode_pembelian='" & kode_pembelian & "'" Dim cmd = New SqlCommand(query, koneksi) Dim dttable = New DataTable With dttable.columns.add("kode Mobil", GetType(String)).Add("Tipe", GetType(String)).Add("Warna", GetType(String)).Add("Jumlah", GetType(Integer)).Add("Harga Beli", GetType(Decimal)).Add("Subtotal", GetType(Decimal)) End With Dim rdr As SqlDataReader = cmd.executereader While rdr.read Dim data() As String = {(rdr.getvalue(0)), (rdr.getvalue(1)), (rdr.getvalue(2)), (rdr.getvalue(3)), (rdr.getvalue(4)), (rdr.getvalue(5))} dttable.rows.add(data) End While DS.Tables.Add(dtTable) detailtable.datasource = DS.Tables(0) detailtable.columns("harga Beli").DefaultCellStyle.Format = "n0" detailtable.columns("subtotal").defaultcellstyle.format = "n0" detailtable.refresh() detailtable.clearselection()

175 koneksi.close() Catch ex As Exception MsgBox("Gagal Meretrieve Data!! " & ex.message) koneksi.close() End Try Public Sub getdetailjual() koneksidb() Try koneksi.open() Dim DS = New DataSet Dim query = "SELECT db.kode_mobil, m.tipe, ds.warna, db.jumlah, db.harga_jual, db.subtotal FROM detail_jual db, mobil m, detail_stok ds WHERE db.kode_mobil=m.kode_mobil AND db.kode_warna=ds.kode_warna AND db.kode_penjualan='" & kode_penjualan & "'" Dim cmd = New SqlCommand(query, koneksi) Dim dttable = New DataTable With dttable.columns.add("kode Mobil", GetType(String)).Add("Tipe", GetType(String)).Add("Warna", GetType(String)).Add("Jumlah", GetType(Integer)).Add("Harga Jual", GetType(Decimal)).Add("Subtotal", GetType(Decimal)) End With Dim rdr As SqlDataReader = cmd.executereader While rdr.read Dim data() As String = {(rdr.getvalue(0)), (rdr.getvalue(1)), (rdr.getvalue(2)), (rdr.getvalue(3)), (rdr.getvalue(4)), (rdr.getvalue(5))} dttable.rows.add(data) End While DS.Tables.Add(dtTable) detailtable.datasource = DS.Tables(0) detailtable.columns("harga Jual").DefaultCellStyle.Format = "n0" detailtable.columns("subtotal").defaultcellstyle.format = "n0" detailtable.refresh() detailtable.clearselection() koneksi.close() Catch ex As Exception MsgBox("Gagal Meretrieve Data!! " & ex.message) koneksi.close() End Try Private Sub Form_Detail_Pembelian_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.SetDesktopLocation(((1366 / 2) - (Me.Width / 2)) + (Form_Utama.ToolStrip1.Width / 2), (768 / 2) - (Me.Height / 2)) If isbeli Then Me.Text = "Detail Pembelian" kodelabel.text = "Kode Pembelian :" GroupBox1.Text = "Header Pembelian" darilabel.text = "Dari :"

176 Else Me.Text = "Detail Penjualan" kodelabel.text = "Kode Penjualan :" GroupBox1.Text = "Header Penjualan" darilabel.text = "Untuk :" Private Sub Form_Detail_Pembelian_Shown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown If isbeli Then getdetailbeli() Else getdetailjual() End Class 12. Listing Form Periode Laporan Public Class Form_Periode_Laporan Public laporan As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If Not bulanfield.selectedindex = -1 And Not tahunfield.selectedindex = -1 Then generatelaporanpersediaan(bulanfield.selectedindex + 1, CInt(tahunField.SelectedItem.ToString)) generatelaporanjurnal(bulanfield.selectedindex + 1, CInt(tahunField.SelectedItem.ToString)) If laporan = 0 Then Dim laporan = New Laporan_Pembelian laporan.setparametervalue("bulan", bulanfield.selectedindex + 1) laporan.setparametervalue("tahun", tahunfield.selecteditem.tostring) Dim f As New Form_Cetak_Laporan f.crviewer.reportsource = laporan f.show() ElseIf laporan = 1 Then Dim laporan = New Laporan_Penjualan laporan.setparametervalue("bulan", bulanfield.selectedindex + 1) laporan.setparametervalue("tahun", tahunfield.selecteditem.tostring) Dim f As New Form_Cetak_Laporan f.crviewer.reportsource = laporan f.show() ElseIf laporan = 2 Then Dim laporan = New Laporan_Persediaan laporan.setparametervalue("bulan", bulanfield.selectedindex + 1) laporan.setparametervalue("tahun", tahunfield.selecteditem.tostring)

177 Dim f As New Form_Cetak_Laporan f.crviewer.reportsource = laporan f.show() ElseIf laporan = 3 Then Dim laporan = New Laporan_Jurnal_Umum laporan.setparametervalue("bulan", bulanfield.selectedindex + 1) laporan.setparametervalue("tahun", tahunfield.selecteditem.tostring) Dim f As New Form_Cetak_Laporan f.crviewer.reportsource = laporan f.show() ElseIf laporan = 4 Then Dim laporan = New Laporan_Buku_Besar laporan.setparametervalue("bulan", bulanfield.selectedindex + 1) laporan.setparametervalue("tahun", tahunfield.selecteditem.tostring) Dim f As New Form_Cetak_Laporan f.crviewer.reportsource = laporan f.show() Else Dim laporan = New Laporan_Laba_Rugi laporan.setparametervalue("bulan", bulanfield.selectedindex + 1) laporan.setparametervalue("tahun", tahunfield.selecteditem.tostring) Dim f As New Form_Cetak_Laporan f.crviewer.reportsource = laporan f.show() Private Sub Form_Periode_Laporan_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load bulanfield.selectedindex = DateTime.Now.Month - 1 tahunfield.selecteditem = DateTime.Now.Year.ToString End Class 13. Listing Form Pilih Laporan Public Class Form_Pilih_Laporan Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim f As New Form_Periode_Laporan f.laporan = 3 f.showdialog() Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim f As New Form_Periode_Laporan f.laporan = 4

178 f.showdialog() Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Dim f As New Form_Periode_Laporan f.laporan = 5 f.showdialog() Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim f As New Form_Periode_Laporan f.laporan = 0 f.showdialog() Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim f As New Form_Periode_Laporan f.laporan = 1 f.showdialog() Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click Dim f As New Form_Periode_Laporan f.laporan = 2 f.showdialog() End Class 14. Module Imports System.Globalization Module Module_Utility Public Sub settitlecasetextbox(byval textbox As TextBox) If textbox.text <> "" Then Dim startpos = textbox.selectionstart Dim selectionlength = textbox.selectionlength Dim value As String = textbox.text Dim titlecase As String = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(value) textbox.text = titlecase textbox.selectionstart = startpos textbox.selectionlength = selectionlength Public Sub settitlecasetextbox(byref textbox As RichTextBox)

179 If textbox.text <> "" Then Dim startpos = textbox.selectionstart Dim selectionlength = textbox.selectionlength Dim value As String = textbox.text Dim titlecase As String = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(value) textbox.text = titlecase textbox.selectionstart = startpos textbox.selectionlength = selectionlength Public Sub setfirstlettertextbox(byval textbox As TextBox) If textbox.text <> "" Then Dim startpos = textbox.selectionstart Dim selectionlength = textbox.selectionlength If textbox.textlength > 1 Then textbox.text = textbox.text.substring(0, 1).ToUpper() + textbox.text.substring(1) ElseIf textbox.textlength = 1 Then textbox.text = textbox.text.toupper() textbox.selectionstart = startpos textbox.selectionlength = selectionlength Public Sub setcurrencytexbox(byval textbox As TextBox) If textbox.textlength > 0 And IsNumeric(textBox.Text) Then Dim value As Decimal = CDbl(textBox.Text) textbox.text = value.tostring("n0") textbox.selectionstart = textbox.textlength textbox.selectionlength = 0 End Module Imports System.Data.SqlClient Module ModuleAkuntansi Private query As String Sub savedatajurnal(byref tanggal As DateTime, ByRef ref As String, ByRef keterangan As String, ByRef debit As Integer, ByRef kredit As Double) Try Dim sda = New SqlDataAdapter("INSERT INTO jurnal(tanggal, ref, keterangan, debit, koneksi) sda.selectcommand.parameters.addwithvalue("@tg", tanggal) sda.selectcommand.parameters.addwithvalue("@rf", ref) sda.selectcommand.parameters.addwithvalue("@kt", keterangan) sda.selectcommand.parameters.addwithvalue("@db", CDbl(debit))

180 CDbl(kredit)) sda.selectcommand.executenonquery() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan") End Try Sub savedatapersediaan(byref isbeli As Boolean, ByRef tanggal As DateTime, ByRef ref As String, ByRef kode_mobil As String, ByRef jumlah_beli As Integer, ByRef harga_beli As Decimal, ByRef total_beli As Decimal, ByRef jumlah_jual As Integer, ByRef harga_jual As Decimal, ByRef total_jual As Decimal) Try koneksi.open() Dim cmd = New SqlCommand("SELECT * FROM persediaan WHERE kode_mobil='" & kode_mobil & "' AND MONTH(tanggal)='" & tanggal.month & "' AND YEAR(tanggal)='" & tanggal.year & "' ORDER BY kode DESC", koneksi) Dim rdr = cmd.executereader Dim exist = False If rdr.read Then exist = True rdr.close() If exist Then Else Dim cmd2 = New SqlCommand("SELECT jumlah_saldo, harga_pokok, total_saldo FROM persediaan WHERE kode_mobil='" & kode_mobil & "' AND MONTH(tanggal)='" & tanggal.month - 1 & "' AND YEAR(tanggal)='" & tanggal.year & "' ORDER BY kode DESC", koneksi) Dim rdr2 = cmd2.executereader Dim jumlah_saldo_temp = 0 Dim harga_pokok_temp = 0.0 Dim total_saldo_temp = 0.0 If rdr2.read Then jumlah_saldo_temp = rdr2.getvalue(0) harga_pokok_temp = rdr2.getvalue(1) total_saldo_temp = rdr2.getvalue(2) rdr2.close() Dim sdasaldoawal = New SqlDataAdapter("INSERT INTO persediaan(tanggal, ref, kode_mobil, jumlah_beli, harga_beli, total_beli, jumlah_jual, harga_jual, total_jual, jumlah_saldo, harga_pokok, total_saldo) " _ @ts)", koneksi) Dim tanggal_saldo_awal = tanggal.year & "-" & tanggal.month & "-01 00:00:00" sdasaldoawal.selectcommand.parameters.addwithvalue("@tg", tanggal_saldo_awal) sdasaldoawal.selectcommand.parameters.addwithvalue("@rf", "Saldo Awal") sdasaldoawal.selectcommand.parameters.addwithvalue("@km", kode_mobil) sdasaldoawal.selectcommand.parameters.addwithvalue("@jb", 0)

181 0) 0) 0) 0) 0) jumlah_saldo_temp) harga_pokok_temp) total_saldo_temp) sdasaldoawal.selectcommand.executenonquery() Dim cmd3 = New SqlCommand("SELECT jumlah_saldo, harga_pokok, total_saldo FROM persediaan WHERE kode_mobil='" & kode_mobil & "' ORDER BY kode DESC", koneksi) Dim rdr3 = cmd3.executereader Dim harga_jual_persediaan = 0.0 Dim total_jual_persediaan = 0.0 Dim jumlah_saldo = 0 Dim harga_pokok = 0.0 Dim total_saldo = 0.0 If rdr3.read Then If Not rdr3.getvalue(0) = 0 Then Dim temp_jml = rdr3.getvalue(0) Dim temp_hrg = rdr3.getvalue(1) Dim temp_total = rdr3.getvalue(2) If isbeli Then jumlah_saldo = jumlah_beli + temp_jml total_saldo = total_beli + temp_total harga_pokok = total_saldo / jumlah_saldo Else jumlah_saldo = temp_jml - jumlah_jual harga_pokok = temp_hrg harga_jual_persediaan = temp_hrg total_jual_persediaan = jumlah_jual * harga_pokok total_saldo = temp_total - total_jual_persediaan Else jumlah_saldo = jumlah_beli total_saldo = total_beli harga_pokok = total_saldo / jumlah_saldo Else jumlah_saldo = jumlah_beli total_saldo = total_beli harga_pokok = total_saldo / jumlah_saldo rdr3.close()

182 Dim sda = New SqlDataAdapter("INSERT INTO persediaan(tanggal, ref, kode_mobil, jumlah_beli, harga_beli, total_beli, jumlah_jual, harga_jual, total_jual, jumlah_saldo, harga_pokok, total_saldo) " _ @ts)", koneksi) sda.selectcommand.parameters.addwithvalue("@tg", tanggal) sda.selectcommand.parameters.addwithvalue("@rf", ref) sda.selectcommand.parameters.addwithvalue("@km", kode_mobil) sda.selectcommand.parameters.addwithvalue("@jb", jumlah_beli) sda.selectcommand.parameters.addwithvalue("@hb", harga_beli) sda.selectcommand.parameters.addwithvalue("@tb", total_beli) sda.selectcommand.parameters.addwithvalue("@jj", jumlah_jual) sda.selectcommand.parameters.addwithvalue("@hj", harga_jual_persediaan) sda.selectcommand.parameters.addwithvalue("@tj", total_jual_persediaan) sda.selectcommand.parameters.addwithvalue("@js", jumlah_saldo) sda.selectcommand.parameters.addwithvalue("@hp", harga_pokok) sda.selectcommand.parameters.addwithvalue("@ts", total_saldo) sda.selectcommand.executenonquery() koneksi.close() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan") End Try Public Sub generatelaporanpersediaan(byref bulan As Integer, ByRef tahun As Integer) koneksidb() koneksi.open() Dim cmd4 = New SqlCommand("SELECT kode_mobil FROM mobil", koneksi) Dim rdr4 = cmd4.executereader Dim listmobil = New List(Of String) While rdr4.read listmobil.add(rdr4.getvalue(0)) End While rdr4.close() koneksi.close() For j = 0 To listmobil.count - 1 Dim dataset = New DataSet Try koneksi.open() Dim cmd = New SqlCommand("DELETE FROM persediaan WHERE kode_mobil='" & listmobil(j) & "' AND MONTH(tanggal)='" & bulan & "' AND YEAR(tanggal)='" & tahun & "'", koneksi) cmd.executenonquery() Dim query = "SELECT p.tanggal, p.kode_pembelian as ref, d.jumlah, d.harga_beli as harga, d.subtotal FROM pembelian p, detail_beli d WHERE d.kode_mobil='" & listmobil(j) & "' AND MONTH(p.tanggal)='" & bulan & "' AND YEAR(p.tanggal)='" & tahun & "' AND p.kode_pembelian=d.kode_pembelian ORDER BY p.kode_pembelian" Dim sqldataadapter = New SqlDataAdapter(query, koneksi) sqldataadapter.fill(dataset, "transaksi") query = "SELECT p.tanggal, p.kode_penjualan as ref, d.jumlah, d.harga_jual as harga, d.subtotal FROM

183 penjualan p, detail_jual d WHERE d.kode_mobil='" & listmobil(j) & "' AND MONTH(p.tanggal)='" & bulan & "' AND YEAR(p.tanggal)='" & tahun & "' AND p.kode_penjualan=d.kode_penjualan ORDER BY p.kode_penjualan" Dim sqldataadapter2 = New SqlDataAdapter(query, koneksi) sqldataadapter2.fill(dataset, "transaksi") Catch ex As Exception MsgBox(ex.Message) End Try koneksi.close() Dim dataview As DataView = dataset.tables(0).defaultview dataview.sort = "Tanggal" Dim datatable = dataview.totable For i = 0 To datatable.rows.count - 1 Dim tanggal = datatable.rows(i).item(0) Dim ref = datatable.rows(i).item(1) Dim jumlah = datatable.rows(i).item(2) Dim harga = datatable.rows(i).item(3) Dim subtotal = datatable.rows(i).item(4) Dim tempref = Left(ref, 2) If tempref = "PB" Then savedatapersediaan(true, tanggal, ref, listmobil(j), jumlah, harga, subtotal, 0, 0.0, 0.0) Else savedatapersediaan(false, tanggal, ref, listmobil(j), 0, 0.0, 0.0, jumlah, harga, subtotal) Next Next Private Function gethpp(byref ref As String, ByRef kode_mobil As String) Dim query = "SELECT harga_pokok FROM persediaan WHERE ref='" & ref & "' AND kode_mobil='" & kode_mobil & "'" Dim cmd = New SqlCommand(query, koneksi) Dim rdr As SqlDataReader = cmd.executereader Dim hpp = 0.0 If rdr.read Then hpp = rdr.getvalue(0) rdr.close() Return hpp End Function Public Sub generatelaporanjurnal(byref bulan As Integer, ByRef tahun As Integer) koneksidb() Dim dataset = New DataSet koneksi.open() Try Dim cmd As New SqlCommand("DELETE FROM jurnal WHERE MONTH(tanggal)='" & bulan & "' AND YEAR(tanggal)='" & tahun & "'", koneksi) cmd.executenonquery()

184 Dim cmd2 As New SqlCommand("DELETE FROM buku_besar WHERE MONTH(tanggal)='" & bulan & "' AND YEAR(tanggal)='" & tahun & "'", koneksi) cmd2.executenonquery() Dim cmd3 As New SqlCommand("DELETE FROM laba_rugi WHERE MONTH(tanggal)='" & bulan & "' AND YEAR(tanggal)='" & tahun & "'", koneksi) cmd3.executenonquery() Dim query = "SELECT p.tanggal, p.kode_pembelian as ref, d.kode_mobil as kode, d.jumlah, d.harga_beli as harga, d.subtotal FROM pembelian p, detail_beli d WHERE MONTH(p.tanggal)='" & bulan & "' AND YEAR(p.tanggal)='" & tahun & "' AND p.kode_pembelian=d.kode_pembelian ORDER BY p.kode_pembelian" Dim sqldataadapter = New SqlDataAdapter(query, koneksi) sqldataadapter.fill(dataset, "transaksi") query = "SELECT p.tanggal, p.kode_penjualan as ref, d.kode_mobil as kode, d.jumlah, d.harga_jual as harga, d.subtotal FROM penjualan p, detail_jual d WHERE MONTH(p.tanggal)='" & bulan & "' AND YEAR(p.tanggal)='" & tahun & "' AND p.kode_penjualan=d.kode_penjualan ORDER BY p.kode_penjualan" Dim sqldataadapter2 = New SqlDataAdapter(query, koneksi) sqldataadapter2.fill(dataset, "transaksi") Catch ex As Exception MsgBox(ex.Message) End Try Dim dataview As DataView = dataset.tables(0).defaultview dataview.sort = "Tanggal" Dim datatable = dataview.totable For i = 0 To datatable.rows.count - 1 Dim tanggal As Date = datatable.rows(i).item(0) Dim ref = datatable.rows(i).item(1) Dim kode_mobil = datatable.rows(i).item(2) Dim jumlah = datatable.rows(i).item(3) Dim subtotal = datatable.rows(i).item(5) Dim cmd4 = New SqlCommand("SELECT tipe FROM mobil WHERE kode_mobil='" & kode_mobil & "'", koneksi) Dim rdr4 = cmd4.executereader Dim tipe = "" If rdr4.read Then tipe = rdr4.getvalue(0) rdr4.close() Dim tempref = Left(ref, 2) If tempref = "PB" Then savedatajurnal(tanggal, ref, "Persediaan Mobil " & tipe, subtotal, 0) savedatajurnal(tanggal, ref, " Kas", 0, subtotal) savedatabukubesar(tanggal, ref, "Persediaan Mobil " & tipe, 0, subtotal, "Kas", 1) savedatabukubesar(tanggal, ref, "Persediaan Mobil " & tipe, subtotal, 0, "Persediaan Mobil", 2) Else Dim hpp = gethpp(ref, kode_mobil) * jumlah savedatajurnal(tanggal, ref, "Kas", subtotal, 0) savedatajurnal(tanggal, ref, " Penjualan Mobil " & tipe, 0, subtotal) savedatajurnal(tanggal, ref, "HPP Mobil " & tipe, hpp, 0) savedatajurnal(tanggal, ref, " Persediaan Mobil " & tipe, 0, hpp)

185 savedatabukubesar(tanggal, ref, "Penjualan Mobil " & tipe, subtotal, 0, "Kas", 1) savedatabukubesar(tanggal, ref, "Penjualan Mobil " & tipe, 0, subtotal, "Penjualan Mobil", 3) savedatabukubesar(tanggal, ref, "HPP Mobil " & tipe, hpp, 0, "HPP Mobil", 4) savedatalabarugi(tanggal, ref, "Penjualan", "Penjualan Mobil " & tipe, subtotal) savedatalabarugi(tanggal, ref, "Harga Pokok Penjualan", "HPP Mobil " & tipe, hpp) Next koneksi.close() Sub savedatabukubesar(byref tanggal As Date, ByRef ref As String, ByRef keterangan As String, ByRef debit As Integer, ByRef kredit As Double, ByRef nama_akun As String, ByRef num_order As Integer) Try Dim sda = New SqlDataAdapter("INSERT INTO buku_besar(tanggal, ref, keterangan, debit, kredit, akun, ", koneksi) sda.selectcommand.parameters.addwithvalue("@tg", tanggal) sda.selectcommand.parameters.addwithvalue("@rf", ref) sda.selectcommand.parameters.addwithvalue("@kt", keterangan) sda.selectcommand.parameters.addwithvalue("@db", CDec(debit)) sda.selectcommand.parameters.addwithvalue("@kr", CDec(kredit)) sda.selectcommand.parameters.addwithvalue("@na", nama_akun) sda.selectcommand.parameters.addwithvalue("@no", num_order) sda.selectcommand.executenonquery() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan") End Try Sub savedatalabarugi(byref tanggal As Date, ByRef ref As String, ByRef kelompok As String, ByRef nama_akun As String, ByRef nominal As Double) Try Dim sda = New SqlDataAdapter("INSERT INTO laba_rugi(tanggal, ref, kelompok, akun, @no) ", koneksi) sda.selectcommand.parameters.addwithvalue("@tg", tanggal) sda.selectcommand.parameters.addwithvalue("@rf", ref) sda.selectcommand.parameters.addwithvalue("@kt", kelompok) sda.selectcommand.parameters.addwithvalue("@na", nama_akun) sda.selectcommand.parameters.addwithvalue("@no", nominal) sda.selectcommand.executenonquery() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Pesan Kesalahan") End Try Private Function gettotalterjualperbulan(byref kode As String, ByRef tanggal As String) koneksi.open() Dim cmd As New SqlCommand Dim dtreader As SqlDataReader cmd.connection = koneksi

186 cmd.commandtext = "SELECT jumlah FROM penjualan WHERE kode_buku='" & kode & "' AND MONTH(CONVERT(DATE, tanggal))=month(convert(date, '" & tanggal & "')) AND YEAR(Convert(DATE, tanggal))=year(convert(date, '" & tanggal & "'))" dtreader = cmd.executereader Dim jumlah = 0 While (dtreader.read()) jumlah += dtreader.getvalue(0) End While koneksi.close() Return jumlah End Function Public Function gethargapokok(byref kode As String, ByRef tanggal As String) koneksi.open() Dim cmd As New SqlClient.SqlCommand Dim dtreader As SqlClient.SqlDataReader cmd.connection = koneksi cmd.commandtext = "SELECT jumlah, total FROM pembelian WHERE kode_buku='" & kode & "' AND MONTH(CONVERT(DATE, tanggal))=month(convert(date, '" & tanggal & "')) AND YEAR(Convert(DATE, tanggal))=year(convert(date, '" & tanggal & "'))" dtreader = cmd.executereader Dim jumlah = 0 Dim total = 0 While (dtreader.read()) jumlah += dtreader.getvalue(0) total += dtreader.getvalue(1) End While koneksi.close() Dim harga_pokok = total / jumlah Dim jumlah_terjual = gettotalterjualperbulan(kode, tanggal) Dim hpp = harga_pokok * jumlah_terjual Return hpp End Function Sub deletejurnal(byref no_faktur As String) query = "DELETE FROM jurnal WHERE ref = '" & no_faktur & "'" Dim cmd As New SqlCommand(query, koneksi) koneksi.open() cmd.executenonquery() koneksi.close() Sub deletepersediaan(byref no_faktur As String) query = "DELETE FROM persediaan WHERE id_transaksi = '" & no_faktur & "'" Dim cmd As New SqlCommand(query, koneksi) koneksi.open() cmd.executenonquery() koneksi.close() Sub deletebukubesar(byref no_faktur As String) query = "DELETE FROM buku_besar WHERE ref = '" & no_faktur & "'" Dim cmd As New SqlCommand(query, koneksi)

187 koneksi.open() cmd.executenonquery() koneksi.close() Sub deletelabarugi(byref no_faktur As String) query = "DELETE FROM laba_rugi WHERE ref = '" & no_faktur & "'" Dim cmd As New SqlCommand(query, koneksi) koneksi.open() cmd.executenonquery() koneksi.close() Sub deletelabarugibulanan(byref nama As String, ByRef tanggal As String) query = "DELETE FROM laba_rugi WHERE nama_akun='hpp Buku " & nama & "' AND MONTH(CONVERT(DATE, tanggal))=month(convert(date, '" & tanggal & "')) AND YEAR(Convert(DATE, tanggal))=year(convert(date, '" & tanggal & "'))" Dim cmd As New SqlCommand(query, koneksi) koneksi.open() cmd.executenonquery() koneksi.close() End Module Imports System.Data.SqlClient Module ModuleKoneksi Public koneksi As SqlConnection = Nothing Public cmd As SqlCommand = Nothing Public Sub koneksidb() Dim connstring As String = "Data Source=ELFIANA-PC;Initial Catalog=Honda IDK 1;Integrated Security=True" Try koneksi = New SqlConnection(connString) koneksi.open() koneksi.close() Catch ex As Exception MessageBox.Show("Database Connection Error : " & ex.message) End Try End Module

188

189

190

191

192

193

194

195

196

BAB I PENDAHULUAN. Perhitungan harga penjualan pada perusahaan berdasarkan pengumpulan data

BAB I PENDAHULUAN. Perhitungan harga penjualan pada perusahaan berdasarkan pengumpulan data BAB I PENDAHULUAN I.1. Latar Belakang Perhitungan harga penjualan pada perusahaan berdasarkan pengumpulan data transaksi pembelian mobil, sesuai dengan harga pokok penjualan di dalam perusahaan. Dalam

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI II.1. Akuntansi Akuntansi berasal dari bahasa Inggris yaitu to account yang artinya menghitung atau mempertanggungjawabkan sesuatu yang ada kaitannya dengan pengelolaan bidang keuangan

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI II.1. Akuntansi Akuntansi merupakan bahasa bisnis. Sebagai bahasa bisnis, akuntansi menyediakan cara untuk menyajikan dan meringkas kejadian-kejadian bisnis dalam bentuk informasi

Lebih terperinci

BAB I PENDAHULUAN. Persediaan barang dagangan (merchandise inventory) merupakan barangbarang

BAB I PENDAHULUAN. Persediaan barang dagangan (merchandise inventory) merupakan barangbarang BAB I PENDAHULUAN I.1. Latar Belakang Persediaan barang dagangan (merchandise inventory) merupakan barangbarang yang dimiliki perusahaan untuk dijual kembali dalam kegiatan operasional normal perusahaan.

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA II.1. Sistem Informasi Akuntansi Sistem informasi akuntansi adalah sistem yang bertujuan untuk mengumpulkan dan memproses data serta melaporkan informasi yang berkaitan dengan saksi

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA II.1. Sistem Sistem merupakan sekumpulan elemen-elemen yang saling terintegrasi serta melaksanakan fungsinya masing-masing untuk mencapai tujuan yang telah ditetapkan. Karakteristik

Lebih terperinci

SISTEM INFORMASI PENGGAJIAN DAN INSENTIF PENJUALAN PADA MITRA ABADI SEJAHTERA BERBASIS WEB

SISTEM INFORMASI PENGGAJIAN DAN INSENTIF PENJUALAN PADA MITRA ABADI SEJAHTERA BERBASIS WEB LAPORAN SKRIPSI SISTEM INFORMASI PENGGAJIAN DAN INSENTIF PENJUALAN PADA MITRA ABADI SEJAHTERA BERBASIS WEB Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan program studi Sistem Informasi

Lebih terperinci

SISTEM INVENTORY BARANG PADA PT. STARS INTERNATIONAL MENGGUNAKAN PEMROGRAMAN BERORIENTASI OBJEK LAPORAN TUGAS AKHIR

SISTEM INVENTORY BARANG PADA PT. STARS INTERNATIONAL MENGGUNAKAN PEMROGRAMAN BERORIENTASI OBJEK LAPORAN TUGAS AKHIR SISTEM INVENTORY BARANG PADA PT. STARS INTERNATIONAL MENGGUNAKAN PEMROGRAMAN BERORIENTASI OBJEK LAPORAN TUGAS AKHIR Disusun sebagai salah satu syarat untuk menyelesaikan Program Pendidikan Diploma 3 Oleh

Lebih terperinci

BAB I PENDAHULUAN. Sistem pencatatan atas persediaan, pembelian dan pengeluaran merupakan salah

BAB I PENDAHULUAN. Sistem pencatatan atas persediaan, pembelian dan pengeluaran merupakan salah BAB I PENDAHULUAN I.1. Latar Belakang Perlengkapan kantor adalah barang yang habis pakai yang hanya dapat dipakai 1 kali atau tidak tahan lama yang digunakan untuk membantu suatu pekerjaan yang diharapkan

Lebih terperinci

SISTEM INFORMASI PENGAJUAN KARTU PEGAWAI, KARTU ISTRI/SUAMI BAGI PEGAWAI NEGERI SIPIL PADA BADAN KEPEGAWAIAN DAERAH JEPARA BERBASIS WEB

SISTEM INFORMASI PENGAJUAN KARTU PEGAWAI, KARTU ISTRI/SUAMI BAGI PEGAWAI NEGERI SIPIL PADA BADAN KEPEGAWAIAN DAERAH JEPARA BERBASIS WEB LAPORAN SKRIPSI SISTEM INFORMASI PENGAJUAN KARTU PEGAWAI, KARTU ISTRI/SUAMI BAGI PEGAWAI NEGERI SIPIL PADA BADAN KEPEGAWAIAN DAERAH JEPARA BERBASIS WEB Laporan ini disusun guna memenuhi salah satu syarat

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA II.1. Pengertian Sistem Sistem informasi berbasis komputer merupakan sekelompok perangkat keras dan perangkat lunak yang dirancang untuk mengubah data menjadi informasi yang bermanfaat.

Lebih terperinci

SISTEM INFORMASI PENDAFTARAN WISUDA BERBASIS WEB PADA UNIVERSITAS MURIA KUDUS

SISTEM INFORMASI PENDAFTARAN WISUDA BERBASIS WEB PADA UNIVERSITAS MURIA KUDUS LAPORAN SKRIPSI SISTEM INFORMASI PENDAFTARAN WISUDA BERBASIS WEB PADA UNIVERSITAS MURIA KUDUS Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan program studi Sistem Informasi S-1

Lebih terperinci

II.7.3 Stored Procedured II.7.4 Trigger II.8 C# II.9 Akuntansi II.9.1 Laba Rugi II.9.2 Average Method II.9.

II.7.3 Stored Procedured II.7.4 Trigger II.8 C# II.9 Akuntansi II.9.1 Laba Rugi II.9.2 Average Method II.9. Abstrak Pembuatan aplikasi yang mencakup proses pencatatan data hasil produksi, pencatatan karyawan, penggajian, proses pembelian, proses penjualan, pencatatan data pelanggan dan pemasok, dilakukan secara

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA 11 BAB II TINJAUAN PUSTAKA II.1. Pengertian Sistem Tujuan dasar suatu sistem tergantung pada jenis sistem itu sendiri. Sebagai contoh, sistem peredaran darah manusia merupakan sistem biologi yang memiliki

Lebih terperinci

RANCANG BANGUN SISTEM INFORMASI MATERIAL REQUIREMENT PLANNING (MRP)

RANCANG BANGUN SISTEM INFORMASI MATERIAL REQUIREMENT PLANNING (MRP) LAPORAN SKRIPSI RANCANG BANGUN SISTEM INFORMASI MATERIAL REQUIREMENT PLANNING (MRP) DAN PENJUALAN HASIL PRODUKSI PADA FA. PERCETAKAN MENARA KABUPATEN KUDUS BERBASIS WEB Laporan ini disusun guna memenuhi

Lebih terperinci

LAPORAN SKRIPSI SISTEM INFORMASI PENGAJUAN SUBSIDI TUNJANGAN FUNGSIONAL GURU PADA KANTOR KEMENTERIAN AGAMA KABUPATEN KUDUS BERBASIS WEB

LAPORAN SKRIPSI SISTEM INFORMASI PENGAJUAN SUBSIDI TUNJANGAN FUNGSIONAL GURU PADA KANTOR KEMENTERIAN AGAMA KABUPATEN KUDUS BERBASIS WEB LAPORAN SKRIPSI SISTEM INFORMASI PENGAJUAN SUBSIDI TUNJANGAN FUNGSIONAL GURU PADA KANTOR KEMENTERIAN AGAMA KABUPATEN KUDUS BERBASIS WEB Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan

Lebih terperinci

BAB I PENDAHULUAN. dikorbankan untuk memproduksi suatu barang. Dalam mengelola perusahaan

BAB I PENDAHULUAN. dikorbankan untuk memproduksi suatu barang. Dalam mengelola perusahaan BAB I PENDAHULUAN I.1. Latar Belakang Biaya produksi adalah sejumlah biaya pengorbanan ekonomis yang harus dikorbankan untuk memproduksi suatu barang. Dalam mengelola perusahaan diperlukan adanya suatu

Lebih terperinci

ABSTRAK. Kata Kunci: economic order quantity, inventory. Universitas Kristen Maranatha

ABSTRAK. Kata Kunci: economic order quantity, inventory. Universitas Kristen Maranatha ABSTRAK Perusahaan XXX adalah perusahaan yang bergerak di bidang penjualan onderdil motor. Perusahaan ini masih manual dalam melakukan pencatatan datanya sehingga dapat menyebabkan data yang dicatat rusak

Lebih terperinci

BAB I PENDAHULUAN. Penulis melakukan penelitian di KPP Pratama Medan Timur yang

BAB I PENDAHULUAN. Penulis melakukan penelitian di KPP Pratama Medan Timur yang BAB I PENDAHULUAN I.1. Latar Belakang Pada umumnya perusahaan saat ini membutuhkan sistem informasi yang baik, karena perkembangan teknologi semakin pesat, secara langsung berdampak pada semua perusahaan

Lebih terperinci

LAPORAN SKRIPSI RANCANG BANGUN SISTEM PENJUALAN DAN INVENTORY BAHAN BAKU BANGUNAN BERBASIS WEB STUDY KASUS PADA TOKO BANGUNAN PUTRA PUTRI BAROKAH

LAPORAN SKRIPSI RANCANG BANGUN SISTEM PENJUALAN DAN INVENTORY BAHAN BAKU BANGUNAN BERBASIS WEB STUDY KASUS PADA TOKO BANGUNAN PUTRA PUTRI BAROKAH LAPORAN SKRIPSI RANCANG BANGUN SISTEM PENJUALAN DAN INVENTORY BAHAN BAKU BANGUNAN BERBASIS WEB STUDY KASUS PADA TOKO BANGUNAN PUTRA PUTRI BAROKAH Laporan ini disusun guna memnuhi salah satu syarat untuk

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA II.1. Pengertian Sistem Menurut Prof. Dr. Ir. Marimin, M.Sc; 2011:1. Sistem adalah suatu kesatuan usaha yang terdiri dari bagian bagian yang berkaitan satu sama lain yang berusaha

Lebih terperinci

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM BAB III ANALISIS DAN DESAIN SISTEM III.1. Analisa Sistem yang Sedang Berjalan Sistem yang saat ini sedang berjalan di CV. Aribur dalam hal pengolahan laporan laporan laba rugi masih dilakukan secara semi

Lebih terperinci

Sistem Aplikasi Penentuan Harga Pokok Produksi Tas Pada Konveksi IMA Collection Kudus

Sistem Aplikasi Penentuan Harga Pokok Produksi Tas Pada Konveksi IMA Collection Kudus LAPORAN SKRIPSI Sistem Aplikasi Penentuan Harga Pokok Produksi Tas Pada Konveksi IMA Collection Kudus Disusun Oleh : Nama : Pujiyanto Wibowo NIM : 2007-53-123 Jurusan : Sistem Informasi Fakultas : Teknik

Lebih terperinci

LAPORAN SKRIPSI SISTEM INFORMASI FASHION GALLERY DAN PEMESANAN T-SHIRT PADA DISTRO IRENG PUTEH KUDUS

LAPORAN SKRIPSI SISTEM INFORMASI FASHION GALLERY DAN PEMESANAN T-SHIRT PADA DISTRO IRENG PUTEH KUDUS LAPORAN SKRIPSI SISTEM INFORMASI FASHION GALLERY DAN PEMESANAN T-SHIRT PADA DISTRO IRENG PUTEH KUDUS ACHMAD BAHAR RIFQI NIM. 201253154 DOSEN PEMBIMBING Diana Laily Fithri, M.Kom Yudie Irawan, M.Kom PROGRAM

Lebih terperinci

BAB I PENDAHULUAN. maksimal. Indonesia harus mampu bersaing dengan negara-negara lain, terutama

BAB I PENDAHULUAN. maksimal. Indonesia harus mampu bersaing dengan negara-negara lain, terutama BAB I PENDAHULUAN I.1. Latar Belakang. Pertumbuhan ekonomi dan perkembangan dunia bisnis di zaman era global menuntut seluruh perusahaan untuk memperoleh keuntungan yang maksimal. Indonesia harus mampu

Lebih terperinci

Pemanfaatan Teknologi SMS Gateway Pada Sistem Pembayaran SPP dan Tabungan Sekolah di SMA N 1 Nalumsari

Pemanfaatan Teknologi SMS Gateway Pada Sistem Pembayaran SPP dan Tabungan Sekolah di SMA N 1 Nalumsari LAPORAN SKRIPSI Pemanfaatan Teknologi SMS Gateway Pada Sistem Pembayaran SPP dan Tabungan Sekolah di SMA N 1 Nalumsari Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan Program Studi

Lebih terperinci

SISTEM INFORMASI PENGOLAHAN, TRANSAKSI DAN PRODUKSI BERAS PADA UD. SUMBER PANGAN KUDUS

SISTEM INFORMASI PENGOLAHAN, TRANSAKSI DAN PRODUKSI BERAS PADA UD. SUMBER PANGAN KUDUS LAPORAN SKRIPSI SISTEM INFORMASI PENGOLAHAN, TRANSAKSI DAN PRODUKSI BERAS PADA UD. SUMBER PANGAN KUDUS Disusun Oleh : Nama : Catur Ady Irawan NIM : 2010-53-108 Program Studi : Sistem Informasi Fakultas

Lebih terperinci

LAPORAN SKRIPSI RANCANG BANGUN SISTEM ADMINISTRASI BEASISWA PADA KOPERASI PURA GROUP

LAPORAN SKRIPSI RANCANG BANGUN SISTEM ADMINISTRASI BEASISWA PADA KOPERASI PURA GROUP LAPORAN SKRIPSI RANCANG BANGUN SISTEM ADMINISTRASI BEASISWA PADA KOPERASI PURA GROUP Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan program studi Sistem Informasi S-1 pada Fakultas

Lebih terperinci

BAB I PENDAHULUAN. pendapatan lebih besar dari jumlah biaya yang dibebankan.

BAB I PENDAHULUAN. pendapatan lebih besar dari jumlah biaya yang dibebankan. BAB I PENDAHULUAN I.1. Latar Belakang Biaya Operasional merupakan biaya yang memiliki peran besar dalam mempengaruhi keberhasilan instansi mencapai tujuan, yaitu memperoleh laba. Instansi umumnya akan

Lebih terperinci

RANCANG BANGUN SISTEM INFORMASI PEMESANAN DAN PENDISTRIBUSIAN BARANG RUMAH TANGGA PADA UD.MULYO AGUNG BERBASIS WEB

RANCANG BANGUN SISTEM INFORMASI PEMESANAN DAN PENDISTRIBUSIAN BARANG RUMAH TANGGA PADA UD.MULYO AGUNG BERBASIS WEB LAPORAN SKRIPSI RANCANG BANGUN SISTEM INFORMASI PEMESANAN DAN PENDISTRIBUSIAN BARANG RUMAH TANGGA PADA UD.MULYO AGUNG BERBASIS WEB Laporan ini Disusun guna Memenuhi Salah Satu Syarat untuk Menyelesaikan

Lebih terperinci

BAB I PENDAHULUAN. teknologi informasi dan komunikasi, tanpa membicarakan suatu benda yang

BAB I PENDAHULUAN. teknologi informasi dan komunikasi, tanpa membicarakan suatu benda yang BAB I PENDAHULUAN I.1. Latar Belakang Teknologi informasi pada saat ini telah berkembang sangat pesat sehingga mempunyai dampak dalam meningkatkan efektifitas dan efisiensi dalam melakukan setiap pekerjaan.

Lebih terperinci

LAPORAN SKRIPSI SISTEM INFORMASI PENGELOLAAN BANK DARAH PADA UDD (UNIT DONOR DARAH) PMI KABUPATEN KUDUS

LAPORAN SKRIPSI SISTEM INFORMASI PENGELOLAAN BANK DARAH PADA UDD (UNIT DONOR DARAH) PMI KABUPATEN KUDUS LAPORAN SKRIPSI SISTEM INFORMASI PENGELOLAAN BANK DARAH PADA UDD (UNIT DONOR DARAH) PMI KABUPATEN KUDUS Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan Program Studi Sistem Informasi

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA II.1. Pengertian Sistem Sistem merupakan salah satu yang terpenting dalam sebuah perusahaan yang dapat membentuk kegiatan usaha untuk mencapai kemajuan dan target yang dibutuhkan.

Lebih terperinci

BAB I PENDAHULUAN. laporan keuangan yang cepat dan akurat. Seorang akuntan memiliki tugas untuk

BAB I PENDAHULUAN. laporan keuangan yang cepat dan akurat. Seorang akuntan memiliki tugas untuk BAB I PENDAHULUAN I.1. Latar Belakang Dalam dunia usaha kita mengenal perusahaan jasa dan perusahaan dagang. Perusahaan jasa adalah perusahaan yang bergerak di bidang jasa, sedangkan perusahaan dagang

Lebih terperinci

BAB I PENDAHULUAN. dalam suatu perusahaan, karena persediaan akan dijual secara terus menerus untuk

BAB I PENDAHULUAN. dalam suatu perusahaan, karena persediaan akan dijual secara terus menerus untuk BAB I PENDAHULUAN I.1. Latar Belakang Persediaan Barang merupakan komponen utama yang sangat penting dalam suatu perusahaan, karena persediaan akan dijual secara terus menerus untuk kelangsungan hidup

Lebih terperinci

BAB I PENDAHULUAN. kesinambungan perusahaan (going concern) dan perluasan perusahaan. Untuk

BAB I PENDAHULUAN. kesinambungan perusahaan (going concern) dan perluasan perusahaan. Untuk BAB I PENDAHULUAN BAB I PENDAHULUAN I.1. Latar Belakang Perusahaan merupakan organisasi yang mempunyai berbagai tujuan baik jangka panjang maupun jangka pendek. Salah satu tujuan yang penting untuk dicapai

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA II.1. Sistem Informasi Akuntansi Sistem informasi akuntansi adalah sistem yang bertujuan untuk mengumpulkan dan memproses data serta melaporkan informasi yang berkaitan dengan saksi

Lebih terperinci

SISTEM INFORMASI PEMESANAN DAN PRODUKSI PADA PABRIK TAS MOSLEM KIDS KUDUS BERBASIS WEB

SISTEM INFORMASI PEMESANAN DAN PRODUKSI PADA PABRIK TAS MOSLEM KIDS KUDUS BERBASIS WEB LAPORAN SKRIPSI SISTEM INFORMASI PEMESANAN DAN PRODUKSI PADA PABRIK TAS MOSLEM KIDS KUDUS BERBASIS WEB RITA WIDYA ASTUTI NIM. 201353043 DOSEN PEMBIMBING Supriyono, S.Kom, M.Kom R. Rhoedy Setiawan, S.Kom,

Lebih terperinci

LAPORAN SKRIPSI SISTEM INFORMASI PENGELOLAAN DATA PANTI ASUHAN AISYIYAH KUDUS BEBRBASIS WEB

LAPORAN SKRIPSI SISTEM INFORMASI PENGELOLAAN DATA PANTI ASUHAN AISYIYAH KUDUS BEBRBASIS WEB LAPORAN SKRIPSI SISTEM INFORMASI PENGELOLAAN DATA PANTI ASUHAN AISYIYAH KUDUS BEBRBASIS WEB Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan program studi Sistem Informasi S -1 pada

Lebih terperinci

LAPORAN SKRIPSI SISTEM INFORMASI PENGOLAHAN DATA DAN BIAYA PEJABAT PEMBUAT AKTA TANAH (PPAT) DWI PURWANTI, SH

LAPORAN SKRIPSI SISTEM INFORMASI PENGOLAHAN DATA DAN BIAYA PEJABAT PEMBUAT AKTA TANAH (PPAT) DWI PURWANTI, SH LAPORAN SKRIPSI SISTEM INFORMASI PENGOLAHAN DATA DAN BIAYA PEJABAT PEMBUAT AKTA TANAH (PPAT) DWI PURWANTI, SH Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan Program Studi Sistem

Lebih terperinci

BAB I PENDAHULUAN. bernama komputer. Komputer merupakan suatu media elektronik yang memegang

BAB I PENDAHULUAN. bernama komputer. Komputer merupakan suatu media elektronik yang memegang BAB I PENDAHULUAN I.1. Latar Belakang Dalam era globalisasi sekarang ini kemajuan teknologi mewarnai aspek kehidupan manusia. Manusia selalu mengikuti kemajuan teknologi dan berupaya untuk menimbulkan

Lebih terperinci

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN BAB III ANALISIS DAN PERANCANGAN III.1. Analisa Sistem Yang Berjalan Proses analisa sistem merupakan langkah kedua pada fase pengembangan sistem. Analisa sistem dilakukan untuk mengetahui kelebihan dan

Lebih terperinci

BAB I PENDAHULUAN. Pengelolaan keuangan dalam perusahaan merupakan kunci utama kegiatan

BAB I PENDAHULUAN. Pengelolaan keuangan dalam perusahaan merupakan kunci utama kegiatan BAB I PENDAHULUAN I.1 Latar Belakang Pengelolaan keuangan dalam perusahaan merupakan kunci utama kegiatan operasional perusahaan dan tidak akan terlepas dari kegiatan yang berhubungan dengan kas. Dalam

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA 11 BAB II TINJAUAN PUSTAKA II.1. Pengertian Sistem Menurut Anastasia Diana dan Lilis Setiawati ( 2011;2) Pada bagian ini akan dibahas defenisi sistem informasi akuntansi dan istilah yang berkaitan dengan

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA II.1. Pengertian Sistem Definisi sistem berkembang sesuai dengan konteks dimana sistem itu digunakan. Berikut akan diberikan beberapa definisi sistem secara umum : 1. Kumpulan dari

Lebih terperinci

BAB I PENDAHULUAN. dalam melaksanakan kegiatan yang membuat orang dan perusahaan-perusahaan

BAB I PENDAHULUAN. dalam melaksanakan kegiatan yang membuat orang dan perusahaan-perusahaan BAB I PENDAHULUAN I.1. Latar Belakang Perkembangan komputer dewasa ini semakin menambah kepercayan dunia usaha akan kemampuan komputer yang siap melayani dan membantu manusia dalam melaksanakan kegiatan

Lebih terperinci

BAB I PENDAHULUAN. pada PT. Buana Jaya Lestari menggunakan sistem terkomputerisasi, yaitu dalam

BAB I PENDAHULUAN. pada PT. Buana Jaya Lestari menggunakan sistem terkomputerisasi, yaitu dalam BAB I PENDAHULUAN I.1. Latar Belakang Sistem akuntansi pembelian dan penjualan onderdil yang sedang berjalan pada PT. Buana Jaya Lestari menggunakan sistem terkomputerisasi, yaitu dalam pencatatan pembelian

Lebih terperinci

PERANCANGAN SISTEM INFORMASI MANAJEMEN PADA KANTOR KESEKRETARIATAN CALEG DPRD PDI PERJUANGAN KUDUS BERBASIS WEB

PERANCANGAN SISTEM INFORMASI MANAJEMEN PADA KANTOR KESEKRETARIATAN CALEG DPRD PDI PERJUANGAN KUDUS BERBASIS WEB LAPORAN SKRIPSI PERANCANGAN SISTEM INFORMASI MANAJEMEN PADA KANTOR KESEKRETARIATAN CALEG DPRD PDI PERJUANGAN KUDUS BERBASIS WEB Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan program

Lebih terperinci

SISTEM INFORMASI AKADEMIK PADA NISSAN FORTUNA BERBASIS WEB

SISTEM INFORMASI AKADEMIK PADA NISSAN FORTUNA BERBASIS WEB LAPORAN SKRIPSI SISTEM INFORMASI AKADEMIK PADA NISSAN FORTUNA BERBASIS WEB Laporan ini disusun guna memenuhi salah satu syarat untuk Menyelesaikan program studi Sistem Informasi S-1 pada Fakultas Teknik

Lebih terperinci

BAB I PENDAHULUAN. dalam hal latihan maupun proses rekaman. Saat ini pengguna jasa penyewaan

BAB I PENDAHULUAN. dalam hal latihan maupun proses rekaman. Saat ini pengguna jasa penyewaan BAB I PENDAHULUAN I.1. Latar Belakang Studio musik yang ada pada saat ini sudah banyak memfasilitasi sebuah band dalam hal latihan maupun proses rekaman. Saat ini pengguna jasa penyewaan studio musik melakukan

Lebih terperinci

DAFTAR ISI LEMBAR PENGESAHAN SURAT PERNYATAAN

DAFTAR ISI LEMBAR PENGESAHAN SURAT PERNYATAAN DAFTAR ISI LEMBAR PENGESAHAN... i SURAT PERNYATAAN... ii ABSTRACT... iii ABSTRAKSI... iv KATA PENGANTAR... v DAFTAR ISI... vii DAFTAR TABEL... x DAFTAR GAMBAR... xi DAFTAR SIMBOL... xiii DAFTAR LAMPIRAN...

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA 11 BAB II TINJAUAN PUSTAKA II.1. Sistem Menurut Riyanto, dkk (2009 : 22)Dengan berbagai pendekatan, beragam pula istilah sistem didefinisikan. Sistem adalah suatu pengorganisasian yang saling berinteraksi,

Lebih terperinci

BAB I PENDAHULUAN. keuntungan dan merupakan suatu jantung dari suatu perusahaan. Penjualan bisa

BAB I PENDAHULUAN. keuntungan dan merupakan suatu jantung dari suatu perusahaan. Penjualan bisa BAB I PENDAHULUAN I.1. Latar Belakang Penjualan adalah suatu transaksi yang bertujuan untuk mendapatkan suatu keuntungan dan merupakan suatu jantung dari suatu perusahaan. Penjualan bisa dilakukan dengan

Lebih terperinci

SISTEM INFORMASI PENGELOLAAN BARANG BANTUAN LOGISTIK BAGI DAERAH BENCANA PADA BADAN PENANGGULANGAN BENCANA DAERAH (BPBD) KABUPATEN PATI

SISTEM INFORMASI PENGELOLAAN BARANG BANTUAN LOGISTIK BAGI DAERAH BENCANA PADA BADAN PENANGGULANGAN BENCANA DAERAH (BPBD) KABUPATEN PATI LAPORAN SKRIPSI SISTEM INFORMASI PENGELOLAAN BARANG BANTUAN LOGISTIK BAGI DAERAH BENCANA PADA BADAN PENANGGULANGAN BENCANA DAERAH (BPBD) KABUPATEN PATI Laporan Ini Disusun Guna Memenuhi Salah Satu Syarat

Lebih terperinci

SISTEM INFORMASI PEMELIHARAAN KAPAL DI PT. ASDP INDONESIA FERRY (PERSERO) JEPARA BERBASIS WEB

SISTEM INFORMASI PEMELIHARAAN KAPAL DI PT. ASDP INDONESIA FERRY (PERSERO) JEPARA BERBASIS WEB LAPORAN SKRIPSI SISTEM INFORMASI PEMELIHARAAN KAPAL DI PT. ASDP INDONESIA FERRY (PERSERO) JEPARA BERBASIS WEB Laporan ini disusun guna memenuhi salah satu syarat untuk Menyelesaikan program studi Sistem

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI A. Sistem Informasi Akuntansi 1. Pengertian Sistem Romney dan Steinbart (2014:3) menyatakan bahwa sistem adalah serangkaian dua atau lebih komponen yang saling terkait dan berinteraksi

Lebih terperinci

SISTEM INFORMASI MANAJEMEN ADMINISTRASI PADA LEMBAGA PENDIDIKAN DAN KETERAMPILAN IQRAL BERBASIS DESKTOP JAVA

SISTEM INFORMASI MANAJEMEN ADMINISTRASI PADA LEMBAGA PENDIDIKAN DAN KETERAMPILAN IQRAL BERBASIS DESKTOP JAVA LAPORAN SKRIPSI LAPORAN SKRIPSI SISTEM INFORMASI MANAJEMEN ADMINISTRASI PADA LEMBAGA PENDIDIKAN DAN KETERAMPILAN IQRAL BERBASIS DESKTOP JAVA Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan

Lebih terperinci

SISTEM INFORMASI PENJADWALAN PRODUKSI DENGAN METODE SEQUENCING PADA KONVEKSI SAMPURNA

SISTEM INFORMASI PENJADWALAN PRODUKSI DENGAN METODE SEQUENCING PADA KONVEKSI SAMPURNA LAPORAN SKRIPSI SISTEM INFORMASI PENJADWALAN PRODUKSI DENGAN METODE SEQUENCING PADA KONVEKSI SAMPURNA Laporan ini disusun guna memenuhi salah satu syarat untuk Menyelesaikan program studi Sistem Informasi

Lebih terperinci

BAB I PENDAHULUAN. terdapat beberapa kelemahan pada pencatatan laporan dan mengenai informasi

BAB I PENDAHULUAN. terdapat beberapa kelemahan pada pencatatan laporan dan mengenai informasi BAB I PENDAHULUAN I.1. Latar Belakang Laporan keuangan pada Butik Roemah Gaya yang sedang berjalan saat ini terdapat beberapa kelemahan pada pencatatan laporan dan mengenai informasi keuangan yang terjadi

Lebih terperinci

ABSTRAK. Kata Kunci : Aplikasi Sistem Informasi Inventory pada perusahaan retail. ii Universitas Kristen Maranatha

ABSTRAK. Kata Kunci : Aplikasi Sistem Informasi Inventory pada perusahaan retail. ii Universitas Kristen Maranatha ABSTRAK Perancangan Aplikasi Sistem Informasi Inventory pada Perusahaan Retail adalah sebuah aplikasi yang dirancang untuk mengelola penerimaan, Penjualan, permintaan Barang. Tujuan perancangan sistem

Lebih terperinci

Sistem Informasi Akuntansi Jual Beli Pada King Furniture Berbasis Web

Sistem Informasi Akuntansi Jual Beli Pada King Furniture Berbasis Web LAPORAN SKRIPSI Sistem Informasi Akuntansi Jual Beli Pada King Furniture Berbasis Web Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan program studi Sistem Informasi S-1 pada Fakultas

Lebih terperinci

SISTEM INFORMASI PENDAFTARAN USAHA INDUSTRI PADA KANTOR PELAYANAN PERIJINAN KABUPATEN KUDUS BERBASIS WEB

SISTEM INFORMASI PENDAFTARAN USAHA INDUSTRI PADA KANTOR PELAYANAN PERIJINAN KABUPATEN KUDUS BERBASIS WEB LAPORAN SKRIPSI SISTEM INFORMASI PENDAFTARAN USAHA INDUSTRI PADA KANTOR PELAYANAN PERIJINAN KABUPATEN KUDUS BERBASIS WEB Laporan ini Disusun guna Memenuhi Salah Satu Syarat untuk Menyelesaikan Program

Lebih terperinci

DAFTAR ISI. LAPORAN TUGAS AKHIR... ii. HALAMAN PENGESAHAN... iii. PERNYATAAN... iv. DAFTAR ISI... vii. DAFTAR GAMBAR...xii. DAFTAR TABEL...

DAFTAR ISI. LAPORAN TUGAS AKHIR... ii. HALAMAN PENGESAHAN... iii. PERNYATAAN... iv. DAFTAR ISI... vii. DAFTAR GAMBAR...xii. DAFTAR TABEL... DAFTAR ISI LAPORAN TUGAS AKHIR... i LAPORAN TUGAS AKHIR... ii HALAMAN PENGESAHAN... iii PERNYATAAN... iv DAFTAR ISI... vii DAFTAR GAMBAR...xii DAFTAR TABEL...xx ABSTRACT... xxii BAB I PENDAHULUAN... 1

Lebih terperinci

BAB I PENDAHULUAN. semakin pesat berkembangnya terutama mengenai sistem informasinya. Ini

BAB I PENDAHULUAN. semakin pesat berkembangnya terutama mengenai sistem informasinya. Ini BAB I PENDAHULUAN I.1. Latar Belakang Saat ini di Indonesia perkembangan akan ilmu pengetahuan dan teknologi semakin pesat berkembangnya terutama mengenai sistem informasinya. Ini membuat suatu perusahaan

Lebih terperinci

SISTEM INFORMASI PENGELOLAAN ADMINISTRASI PENYEWAAN SOUND SYSTEM DAN DEKLIT PADA MC BISRI

SISTEM INFORMASI PENGELOLAAN ADMINISTRASI PENYEWAAN SOUND SYSTEM DAN DEKLIT PADA MC BISRI LAPORAN SKRIPSI LAPORAN SKRIPSI SISTEM INFORMASI PENGELOLAAN ADMINISTRASI PENYEWAAN SOUND SYSTEM DAN DEKLIT PADA MC BISRI Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan program

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA II.1. Sistem Sistem merupakan kumpulan elemen yang saling berhubungan satu sama lain yang membentuk satu kesatuan dalam usaha mencapai suatu tujuan (Budi Sutedjo; 2006 : 168). Sistem

Lebih terperinci

SISTEM INFORMASI MAJALAH DINDING BERBASIS WEB PADA SMK NU MA ARIF 2 KUDUS

SISTEM INFORMASI MAJALAH DINDING BERBASIS WEB PADA SMK NU MA ARIF 2 KUDUS LAPORAN SKRIPSI SISTEM INFORMASI MAJALAH DINDING BERBASIS WEB PADA SMK NU MA ARIF 2 KUDUS Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan program studi Sistem Informasi S-1 pada

Lebih terperinci

APLIKASI SISTEM INFORMASI PENGOLAHAN DATA PADA DIREKTORAT RESERSE KRIMINAL KHUSUS POLDA SUMBAR

APLIKASI SISTEM INFORMASI PENGOLAHAN DATA PADA DIREKTORAT RESERSE KRIMINAL KHUSUS POLDA SUMBAR APLIKASI SISTEM INFORMASI PENGOLAHAN DATA PADA DIREKTORAT RESERSE KRIMINAL KHUSUS POLDA SUMBAR Janero Kennedy 1) 1) Magister Teknik Informatika, STMIK AMIKOM, Kota Yogyakarta. Jl Ring road Utara, Condongcatur,

Lebih terperinci

LAPORAN SKRIPSI SISTEM INFORMASI PENJUALAN MOBIL PADA SHOWROOM ANISA JAYA MOTOR KUDUS BERBASIS WEB. Disusun Oleh : : Zainal Arfa :

LAPORAN SKRIPSI SISTEM INFORMASI PENJUALAN MOBIL PADA SHOWROOM ANISA JAYA MOTOR KUDUS BERBASIS WEB. Disusun Oleh : : Zainal Arfa : LAPORAN SKRIPSI SISTEM INFORMASI PENJUALAN MOBIL PADA SHOWROOM ANISA JAYA MOTOR KUDUS BERBASIS WEB Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan Program Studi Sistem Informasi

Lebih terperinci

BAB I PENDAHULUAN. Sistem informasi akuntansi adalah sistem yang bertujuan untuk

BAB I PENDAHULUAN. Sistem informasi akuntansi adalah sistem yang bertujuan untuk BAB I PENDAHULUAN I.1. Latar Belakang Sistem informasi akuntansi adalah sistem yang bertujuan untuk mengumpulkan dan memproses data serta melaporkan informasi yang berkaitan dengan saksi keuangan. Lingkup

Lebih terperinci

BAB I PENDAHULUAN. flour atau tepung. Perusahaan distributor adalah salah satu aspek dari pemasaran.

BAB I PENDAHULUAN. flour atau tepung. Perusahaan distributor adalah salah satu aspek dari pemasaran. BAB I PENDAHULUAN I.1. Latar Belakang PT. Ariro Internasional adalah perusahaan distribusi yang bergerak dibidang flour atau tepung. Perusahaan distributor adalah salah satu aspek dari pemasaran. Distribusi

Lebih terperinci

SISTEM INFORMASI PENGELOLAAN KESEKRETARIATAN KANTOR TAPAK SUCI PUTERA MUHAMMADIYAH KUDUS BERBASIS WEB

SISTEM INFORMASI PENGELOLAAN KESEKRETARIATAN KANTOR TAPAK SUCI PUTERA MUHAMMADIYAH KUDUS BERBASIS WEB LAPORAN SKRIPSI SISTEM INFORMASI PENGELOLAAN KESEKRETARIATAN KANTOR TAPAK SUCI PUTERA MUHAMMADIYAH KUDUS BERBASIS WEB Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan program studi

Lebih terperinci

SISTEM INFORMASI PENGELOLAAN PERENCANAAN PEMBANGUNAN DESA BERBASIS WEB PADA KECAMATAN GEBOG

SISTEM INFORMASI PENGELOLAAN PERENCANAAN PEMBANGUNAN DESA BERBASIS WEB PADA KECAMATAN GEBOG LAPORAN SKRIPSI SISTEM INFORMASI PENGELOLAAN PERENCANAAN PEMBANGUNAN DESA BERBASIS WEB PADA KECAMATAN GEBOG Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan Program Studi Sistem

Lebih terperinci

BAB I PENDAHULUAN. Perusahaan merupakan organisasi yang mempunyai berbagai tujuan baik

BAB I PENDAHULUAN. Perusahaan merupakan organisasi yang mempunyai berbagai tujuan baik BAB I PENDAHULUAN I.1. Latar Belakang Perusahaan merupakan organisasi yang mempunyai berbagai tujuan baik jangka panjang maupun jangka pendek. Salah satu tujuan yang penting untuk dicapai oleh perusahaan

Lebih terperinci

BAB I PENDAHULUAN. Instansi umumnya akan mengharapkan terjadinya laba yaitu jumlah rupiah. pendapatan lebih besar dari jumlah biaya yang dibebankan.

BAB I PENDAHULUAN. Instansi umumnya akan mengharapkan terjadinya laba yaitu jumlah rupiah. pendapatan lebih besar dari jumlah biaya yang dibebankan. BAB I PENDAHULUAN I.1. Latar Belakang Biaya Operasional merupakan biaya yang memiliki peran besar dalam mempengaruhi keberhasilan instansi mencapai tujuan, yaitu memperoleh laba. Instansi umumnya akan

Lebih terperinci

SISTEM INFORMASI PEMESANAN PROPERTI RUMAH TANGGA BERBASIS WEB

SISTEM INFORMASI PEMESANAN PROPERTI RUMAH TANGGA BERBASIS WEB LAPORAN SKRIPSI SISTEM INFORMASI PEMESANAN PROPERTI RUMAH TANGGA BERBASIS WEB Laporan ini disusun guna memenuhi salah satu syarat untuk Menyelesaikan program studi Sistem Informasi S-1 pada Fakultas Teknik

Lebih terperinci

SISTEM INFORMASI PENGELOLAAN DATA JAMINAN KESEHATAN MASYARAKAT PADA DINAS KESEHATAN KABUPATEN KUDUS BERBASIS WEB

SISTEM INFORMASI PENGELOLAAN DATA JAMINAN KESEHATAN MASYARAKAT PADA DINAS KESEHATAN KABUPATEN KUDUS BERBASIS WEB LAPORAN SKRIPSI SISTEM INFORMASI PENGELOLAAN DATA JAMINAN KESEHATAN MASYARAKAT PADA DINAS KESEHATAN KABUPATEN KUDUS BERBASIS WEB Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan

Lebih terperinci

BAB I PENDAHULUAN. Hal ini disebabkan oleh berkembangnya ilmu pengetahuan dan teknologi dan

BAB I PENDAHULUAN. Hal ini disebabkan oleh berkembangnya ilmu pengetahuan dan teknologi dan BAB I PENDAHULUAN I.1. Latar Belakang Perkembangan teknologi pegolahan data saat ini terus berkembang pesat. Hal ini disebabkan oleh berkembangnya ilmu pengetahuan dan teknologi dan adanya perangkat-perangkat

Lebih terperinci

L A P O R A N S K R I P S I SISTEM INFORMASI ANGKA PENILAIAN PELANGGARAN SISWA (APPS) DI SMK PUTRA MAHKOTA KAYEN PATI BERBASIS WEB DAN SMS GATEWAY

L A P O R A N S K R I P S I SISTEM INFORMASI ANGKA PENILAIAN PELANGGARAN SISWA (APPS) DI SMK PUTRA MAHKOTA KAYEN PATI BERBASIS WEB DAN SMS GATEWAY L A P O R A N S K R I P S I SISTEM INFORMASI ANGKA PENILAIAN PELANGGARAN SISWA (APPS) DI SMK PUTRA MAHKOTA KAYEN PATI BERBASIS WEB DAN SMS GATEWAY RIKA ANGGRAENI NIM. 201253151 DOSEN PEMBIMBING R. Rhoedy

Lebih terperinci

BAB I PENDAHULUAN. swasta, khususnya dalam pengolahan data yang relatif besar dan penggunaan data

BAB I PENDAHULUAN. swasta, khususnya dalam pengolahan data yang relatif besar dan penggunaan data 1 BAB I PENDAHULUAN I.1. Latar Belakang Semakin pesatnya perkembangan teknologi informasi saat ini sangat mempengaruhi pola pikir dan sikap perilaku manusia pada umumnya. Hal ini dapat dirasakan pada dunia

Lebih terperinci

PERANCANGAN APLIKASI TELEMARKETING PADA UNIVERSITAS MERCU BUANA MENGGUNAKAN VB.NET. Laporan Tugas Akhir. Diajukan Untuk Melengkapi Salah Satu Syarat

PERANCANGAN APLIKASI TELEMARKETING PADA UNIVERSITAS MERCU BUANA MENGGUNAKAN VB.NET. Laporan Tugas Akhir. Diajukan Untuk Melengkapi Salah Satu Syarat PERANCANGAN APLIKASI TELEMARKETING PADA UNIVERSITAS MERCU BUANA MENGGUNAKAN VB.NET Laporan Tugas Akhir Diajukan Untuk Melengkapi Salah Satu Syarat Memperoleh Gelar Sarjana Sistem Informasi Oleh : ADISTY

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA II.1. Sistem Sistem merupakan serangkaian bagian yang saling tergantung dan bekerja sama untuk mencapai tujuan tertentu. Suatu sistem pasti tersusun dari sub-sub sistem yang lebih

Lebih terperinci

SISTEM INFORMASI PELAYANAN MEMBER PADA COUNTER WIWIK CELL BERBASIS SMS GATEWAY

SISTEM INFORMASI PELAYANAN MEMBER PADA COUNTER WIWIK CELL BERBASIS SMS GATEWAY LAPORAN SKRIPSI SISTEM INFORMASI PELAYANAN MEMBER PADA COUNTER WIWIK CELL BERBASIS SMS GATEWAY Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan program studi Sistem Informasi S-1

Lebih terperinci

BAB I PENDAHULUAN. informasi kepada banyak orang dalam perusahaan, disinilah letak pentingnya

BAB I PENDAHULUAN. informasi kepada banyak orang dalam perusahaan, disinilah letak pentingnya BAB I PENDAHULUAN I.1. Latar Belakang Akuntansi adalah suatu sarana yang menjembatani antar pihak pimpinan dengan pihak lain yang berkepentingan dengan perusahaan, melalui proses akuntansi akan dihasilkan

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA 8 BAB II TINJAUAN PUSTAKA II.1. Sistem Menurut Riyanto, dkk (2009 : 22) Dengan berbagai pendekatan, beragam pula istilah sistem didefinisikan. Sistem adalah suatu pengorganisasian yang saling berinteraksi,

Lebih terperinci

LAPORAN SKRIPSI. Sistem Informasi Pemilihan Ketua OSIS Berbasis SMS Gateway Pada Madrasah Aliyah Darul Ulum

LAPORAN SKRIPSI. Sistem Informasi Pemilihan Ketua OSIS Berbasis SMS Gateway Pada Madrasah Aliyah Darul Ulum LAPORAN SKRIPSI Sistem Informasi Pemilihan Ketua OSIS Berbasis SMS Gateway Pada Madrasah Aliyah Darul Ulum Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan program Studi Sistem Informasi

Lebih terperinci

Aplikasi Booking Room Karaoke Pada New Star Kudus Berbasis Android

Aplikasi Booking Room Karaoke Pada New Star Kudus Berbasis Android LAPORAN SKRIPSI Aplikasi Booking Room Karaoke Pada New Star Kudus Berbasis Android Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan Program Studi Sistem Informasi S-1 pada Fakultas

Lebih terperinci

SISTEM PENDUKUNG KEPUTUSAN DALAM PENENTUAN CALON PENERIMA BANTUAN ORANG TUA ASUH DI SMA 1 BAE KUDUS

SISTEM PENDUKUNG KEPUTUSAN DALAM PENENTUAN CALON PENERIMA BANTUAN ORANG TUA ASUH DI SMA 1 BAE KUDUS LAPORAN SKRIPSI SISTEM PENDUKUNG KEPUTUSAN DALAM PENENTUAN CALON PENERIMA BANTUAN ORANG TUA ASUH DI SMA 1 BAE KUDUS Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan program studi

Lebih terperinci

SISTEM INFORMASI PEMBELIAN TIKET KAPAL DAN PELAYANAN BIRO JASA / TRAVEL PADA PERUSAHAAN PT. ASDP INDONESIA FERRY (PERSERO) JEPARA

SISTEM INFORMASI PEMBELIAN TIKET KAPAL DAN PELAYANAN BIRO JASA / TRAVEL PADA PERUSAHAAN PT. ASDP INDONESIA FERRY (PERSERO) JEPARA LAPORAN SKRIPSI SISTEM INFORMASI PEMBELIAN TIKET KAPAL DAN PELAYANAN BIRO JASA / TRAVEL PADA PERUSAHAAN PT. ASDP INDONESIA FERRY (PERSERO) JEPARA Laporan ini disusun guna memenuhi salah satu syarat untuk

Lebih terperinci

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM BAB III ANALISIS DAN DESAIN SISTEM III.1. Analisis Masalah Pada SMEC (Sumatera Medical Eye Center) kegunaan obat-obatan sudah menjadi kebutuhan primer, sehingga stok obat harus selalu terjaga agar kebutuhan

Lebih terperinci

BAB I PENDAHULUAN. dihasilkan laporan keuangan yang akan dipakai untuk mengkomunikasikan aktivitas

BAB I PENDAHULUAN. dihasilkan laporan keuangan yang akan dipakai untuk mengkomunikasikan aktivitas BAB I PENDAHULUAN I.1. Latar Belakang Akuntansi adalah suatu sarana yang menjembatani antar pihak pimpinan dengan pihak lain yang berkepentingan dengan perusahaan, melalui proses akuntansi akan dihasilkan

Lebih terperinci

BAB I PENDAHULUAN. Keterbatasan yang dimiliki oleh pihak intern dalam penyajian informasi akan

BAB I PENDAHULUAN. Keterbatasan yang dimiliki oleh pihak intern dalam penyajian informasi akan BAB I PENDAHULUAN I.1. Latar Belakang Perkembangan teknologi komputer yang sangat pesat membawa imbas pada seluruh lapisan bidang usaha, sehingga komputerisasi dalam berbagai bidang sudah merupakan tuntutan

Lebih terperinci

Disusun oleh : Nama : Noor Jannah NIM : Program Studi : Sistem Informasi Fakultas : Teknik

Disusun oleh : Nama : Noor Jannah NIM : Program Studi : Sistem Informasi Fakultas : Teknik LAPORAN SKRIPSI SISTEM INFOMASI PERSEDIAAN DAN PROMOSI PADA SRI REJEKI CATERING BERBASIS WEB Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan Program Studi Sistem Informasi S-1 pada

Lebih terperinci

BAB I PENDAHULUAN. saatnya pengelola dapat memberikan data pensiun. tahun 2004 hingga 2010 terjadi penurunan jumlah dana pensiun.

BAB I PENDAHULUAN. saatnya pengelola dapat memberikan data pensiun. tahun 2004 hingga 2010 terjadi penurunan jumlah dana pensiun. BAB I PENDAHULUAN I.1. Latar Belakang Perusahaan pengelola dana pensiun merupakan perusahaan yang menarik iuran setiap waktu yang ditentukan kepada karyawan untuk diberikan kembali pada suatu waktu yang

Lebih terperinci

SISTEM INFORMASI ORDER CONTROL MANAGEMENT PADA DIPONEGORO DIGITAL PRINTING KUDUS

SISTEM INFORMASI ORDER CONTROL MANAGEMENT PADA DIPONEGORO DIGITAL PRINTING KUDUS LAPORAN SKRIPSI SISTEM INFORMASI ORDER CONTROL MANAGEMENT PADA DIPONEGORO DIGITAL PRINTING KUDUS Disusun Oleh : Nama : Widi Shofiyan Noor NIM : 2010-53-154 Program Studi : Sistem Informasi Fakultas : Teknik

Lebih terperinci

SISTEM INFORMASI PERAMALAN KETERSEDIAAN STOK BAHAN BAKU UTAMA UNTUK PROSES PRODUKSI PADA CV. SURYA OFFSET

SISTEM INFORMASI PERAMALAN KETERSEDIAAN STOK BAHAN BAKU UTAMA UNTUK PROSES PRODUKSI PADA CV. SURYA OFFSET LAPORAN SKRIPSI SISTEM INFORMASI PERAMALAN KETERSEDIAAN STOK BAHAN BAKU UTAMA UNTUK PROSES PRODUKSI PADA CV. SURYA OFFSET Laporan ini disusun guna memenuhi salah satu syarat untuk Menyelesaikan program

Lebih terperinci

SISTEM INFORMASI REKAM DATA PADA RUMAH BERSALIN ANUGERAH BERBASIS WEB

SISTEM INFORMASI REKAM DATA PADA RUMAH BERSALIN ANUGERAH BERBASIS WEB LAPORAN SKRIPSI SISTEM INFORMASI REKAM DATA PADA RUMAH BERSALIN ANUGERAH BERBASIS WEB Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan program studi Sistem Informasi S-1 pada Fakultas

Lebih terperinci

SISTEM INFORMASI SERTIFIKASI LAIK SEHAT PADA DEPOT AIR MINUM DI DINAS KESEHATAN KABUPATEN KUDUS BERBASIS WEB

SISTEM INFORMASI SERTIFIKASI LAIK SEHAT PADA DEPOT AIR MINUM DI DINAS KESEHATAN KABUPATEN KUDUS BERBASIS WEB LAPORAN SKRIPSI SISTEM INFORMASI SERTIFIKASI LAIK SEHAT PADA DEPOT AIR MINUM DI DINAS KESEHATAN KABUPATEN KUDUS BERBASIS WEB Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan program

Lebih terperinci

SISTEM INFORMASI MANAJEMEN KULIAH KERJA LAPANGAN BERBASIS WEB PADA PROGRAM STUDI SISTEM INFORMASI UNIVERSITAS MURIA KUDUS

SISTEM INFORMASI MANAJEMEN KULIAH KERJA LAPANGAN BERBASIS WEB PADA PROGRAM STUDI SISTEM INFORMASI UNIVERSITAS MURIA KUDUS LAPORAN SKRIPSI SISTEM INFORMASI MANAJEMEN KULIAH KERJA LAPANGAN BERBASIS WEB PADA PROGRAM STUDI SISTEM INFORMASI UNIVERSITAS MURIA KUDUS Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan

Lebih terperinci

LAPORAN S K R I P S I

LAPORAN S K R I P S I LAPORAN S K R I P S I SISTEM PENDUKUNG KEPUTUSAN PEMILIHAN KAYU JATI BERKUALITAS MENGGUNAKAN METODE WEIGHT PRODUCT BERBASIS WEB RESPONSIVE DI UD. LANGGENG JATI RISAL MAULANA FAILUN NIM. 2012-53-078 DOSEN

Lebih terperinci