i
SISTEM INFORMASI PRODUKSI
MENGGUNAKAN METODE HARGA POKOK PESANAN
BERBASIS WEB
(Studi Kasus di Percetakan Sablon St. Leter,
Kabupaten Batang, Propinsi Jawa Tengah)
SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Informatika
Oleh :
Alim Untung Widodo
065314071
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
ii
Kabupaten Batang, Propinsi Jawa Tengah)
A Thesis
Presented as Partial Fullfillment of the Requirements To Obtain the Sarjana Teknik Degree
In Study Program of Informatics Engineering
By :
Alim Untung Widodo
065314071
INFORMATICS ENGINEERING STUDY PROGRAM
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
iii
HALAMAN PERSETUJUAN
SKRIPSI
Sistem Informasi Produksi
Menggunakan Metode Harga Pokok Pesanan Berbasis Web
(Studi Kasus di Percetakan Sablon St. Leter,
Kabupaten Batang, Propinsi Jawa Tengah)
Oleh :
Alim Untung Widodo
065314071
Telah Disetujui Oleh :
Pembimbing
iv
Sistem Informasi Produksi
Menggunakan Metode Harga Pokok Pesanan Berbasis Web (Studi Kasus di Percetakan Sablon St. Leter,
Kabupaten Batang, Propinsi Jawa Tengah)
Dipersiapkan dan ditulis oleh : Alim Untung Widodo
NIM : 065314071
Telah dipertahankan di depan panitia Penguji Pada tanggal 24 September 2010 Dan dinyatakan memenuhi syarat
Susunan Panitia Penguji
Ketua : P. H. Prima Rosa, S.Si., M.Sc. __________________
Sekretaris : Ridowati Gunawan, S.Kom., M.T. __________________
Anggota : St. Eko Hari Parmadi, S.Si., M.Kom. __________________
Yogyakarta, September 2010 Fakultas Sains dan Teknologi
Universitas Sanata Dharma Dekan,
v
Kesuksesan hari esok ditentukan oleh hari ini…
Mengalir bagai air tetapi jangan sampai engkau terhanyut…
vi
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilimiah.
Yogyakarta, 27 September 2010
Penulis
vii
ABSTRAK
St. Leter adalah sebuah home industry yang bergerak dibidang percetakan sablon. Percetakan ini menerima beberapa jenis cetak sablon seperti sablon plastik dan sablon kertas. Percetakan ini melakukan produksi berdasarkan pesanan konsumen. Barang yang diproduksi bergantung pada jenis pesanan dan jumlah pesanan sehingga setiap barang yang diproduksi memiliki harga pokok pesanan yang berbeda. Hal tersebut memunculkan ide untuk membuat sistem informasi yang dapat membantu dalam melakukan perhitungan harga pokok produksi menggunakan metode harga pokok pesanan.
Sistem yang dibuat dimulai dari pembelian bahan baku, produksi hingga penjualan produk jadi kepada pemesan. Teknologi yang digunakan dalam pembuatan sistem ini adalah teknologi berbasis web dengan menggunakan Java Server Pages (JSP) dan teknologi database MySQL.
viii
St. Leter is a home industry which move in the screen printing level. This printing received some kind of screen printing such as plastic and paper. This printing do the production based on customer orders. Goods produced depends on the type of orders and number of orders so that each item produced has a base price of different orders. The condition giving one idea to make a information system which can helping to calculate the main production cost using job order costing method.
The system start at buying the raw material, production until selling the product to customer. The technologi used for making this system is web technology with using Java Server Pages (JSP) and MySQL database technology.
ix
LEMBAR PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma : Nama : Alim Untung Widodo
NIM : 065314071
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :
SISTEM INFORMASI PRODUKSI
MENGGUNAKAN METODE HARGA POKOK PESANAN
BERBASIS WEB
(STUDI KASUS DI PERCETAKAN SABLON ST. LETER,
KABUPATEN BATANG, PROPINSI JAWA TENGAH)
Berserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikannya secara terbatas, dan mempublikasikannya di internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap mencatumkan nama saya sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya.
Dibuat di Yogyakarta
Pada tanggal 27 September 2010 Yang menyatakan
x
Dalam nama Bapa, Putra, dan Roh Kudus, penulis selalu diberi kekuatan untuk berkembang dan menjadi lebih. Puji syukur penulis panjatkan atas Kehadirat Tuhan Yang Maha Esa, yang telah melimpahkan rahmat dan berkatNya sehingga penulis dapat menyelesaikan tugas akhir yang berjudul “Sistem Informasi Produksi Menggunakan Metode Harga Pokok Pesanan Berbasis
Web (Studi Kasus Di Percetakan Sablon St. Leter, Kabupaten Batang,
Propinsi Jawa Tengah)”. Tugas akhir ini ditulis sebagai salah satu syarat memperoleh gelar sarjana program studi Teknik Informatika, Fakultas Sains dan Teknologi Universitas Sanata Dharma.
Dalam kesempatan ini, penulis mengucapkan terimakasih yang sebesar-besarnya kepada :
1. Ibu Ridowati Gunawan, S.Kom., M.T. selaku dosen pembimbing, terimakasih
atas segala bimbingan dan kesabaran dalam mengarahkan dan membimbing penulis dalam menyelesaikan tugas akhir ini.
2. Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T., selaku kaprodi Teknik
Informatika.
3. Ibu P.H. Prima Rosa, S.Si., M.Sc. dan Bapak St. Eko Hari Parmadi, S.Si., M.Kom. selaku dosen penguji.
4. Seluruh staff pengajar Prodi Teknik Informatika Fakultas Sains dan Teknologi Universitas Sanata Dharma.
5. Papa dan Mama tercinta, terima kasih untuk semua perhatian dan dukungan baik spiritual maupun material.
xi
7. Teman-teman seperjuangan, Robin Steven, Cresensia Devi, Hertartik Clarasita Devy, Tulus Wardoyo, Yustinus Prima, terima kasih atas segala bantuan dan dukungannya.
8. Teman-teman prodi Teknik Informatika angkatan 2006, atas kebersamaanya
selama penulis menjalani masa studi.
9. Serta semua pihak yang tidak dapat disebutkan satu-persatu yang telah
membantu penulis dalam menyelesaikan skripsi ini.
Penulis menyadari bahwa tugas akhir ini jauh dari sempurna, oleh karena itu kritik dan saran yang sifatnya membangun sangat penulis harapkan.
Akhir kata, penulis berharap semoga skripsi ini dapat bermanfaat bagi pembaca dan pihak lain yang membutuhkannya.
Penulis
xii
Halaman Judul (Inggris) ………..………..…. ii
Halaman Persetujuan ……….………. iii
Halaman Pengesahan ……….……….……… iv
Halaman Persembahan ……….…..………..……….. v
Halaman Pernyataan Keaslian ……….……….. vi
Abstrak ………..……….….……… vii
Abstract ……… viii
Lembar Pernyataan Persetujuan ……….………... ix
Kata Pengantar ……….……… x
II.3.1. Karakteristik Metode Harga Pokok Pesanan ……….... 8
II.3.2. Aliran Kegiatan Produksi ………. 9
II.3.3. Jenis Biaya pada Metode Harga Pokok Pesanan ………. 10
II.4. Java Server Pages ….……… 10
xiv
Gambar 3.1 Blok Proses Produksi ………….……… 18
Gambar 3.2 Diagram Konteks ……… 18
Gambar 3.3 Diagram Use Case ………...……… 19
Gambar 4.1 Halaman Login ………...……… 25
Gambar 4.2 Jendela Konfirmasi Gagal Login ……… 27
Gambar 4.3 Halaman Utama Pemilik .……… 27
Gambar 4.4 Halaman Manual Untuk Pemilik ………. 27
Gambar 4.5 Halaman Tentang Kami Untuk Pemilik .……… 28
Gambar 4.6 Halaman Tambah User ……….………. 28
Gambar 4.7 Halaman Pencarian Data User ……… 29
Gambar 4.8 Halaman Awal Laporan Penjualan ………. 30
Gambar 4.9 Halaman Data Laporan Penjualan ……….. 30
Gambar 4.10 Laporan Penjualan Dengan Format PDF ……… 30
Gambar 4.11 Halaman Utama Karyawan …..……….……. 33
Gambar 4.12 Halaman Manual Untuk Karyawan ……….. 34
Gambar 4.13 Halaman Manual Karyawan Untuk Input Data Master Konsumen ………..… 34
Gambar 4.14 Halaman Awal Pesanan ……….……. 35
Gambar 4.15 Halaman Input Produk Pesanan ……… 35
Gambar 4.16 Halaman Hitung Harga Pokok Produksi …….……….. 36
Gambar 4.17 Halamn Input Harga Jual ………..….. 36
Gambar 4.18 Halaman Input Produk Pesanan Dan Daftar Pesanan ………. 37
Gambar 4.19 Halaman Awal Penjualan ……….……….. 38
Gambar 4.20 Halaman Pencarian Pesanan Yang Akan Dijual ……… 38
Gambar 4.21 Halaman Penjualan ……… 39
Gambar 4.22 Pesan Data Penjualan Berhasil Disimpan ……….. 39
Gambar 4.23 Halaman Pilih Supplier ……….. 40
xv
Baku ………... 41
Gambar 4.26 Halaman Simpan Data Pembelian ………….……… 41
Gambar 4.27 Halaman Awal Kamus Bahan Baku ………. 42
Gambar 4.28 Halaman Pilih Bahan Baku Yang Digunakan ………... 43
Gambar 4.29 Halaman Awal Kamus Overhead ……… 43
Gambar 4.30 Halaman Pilih Overhead Yang Digunakan ……… 44
Gambar 4.31 Halaman Awal Kamus Pekerjaan ………….……… 45
Gambar 4.32 Halaman Pilih Pekerjaan Yang Digunakan ……… 45
Gambar 4.33 Halaman Awal Kamus Kategori ……… 46
Gambar 4.34 Halaman Kamus Kategori ……….. 46
Gambar 4.35 Halaman Input Data Master Konsumen ………….………… 47
Gambar 4.36 Halaman Data Konsumen Berhasil Ditambah ……… 47
Gambar 4.37 Pesan Data Konsumen Gagal Disimpan ………. 48
Gambar 4.38 Halaman Pencarian Pesanan ……..……… 49
Gambar 4.39 Halaman Hasil Pencarian Tanpa Kata Kunci Dan Tanggal … 49 Gambar 4.40 Halaman Detail Pesanan ………..…….……….. 49
Gambar 4.41 Halaman Pencarian Data Master ……….…..…………. 50
Gambar 4.42 Halaman Hasil Pencarian Data Master Tabel Bahan Baku …. 50 Gambar 4.43 Halaman Awal Sebelum Data Konsumen Dan Tanggal Pesan Serta Tanggal Harus Selesai Diisi ………. 51
Gambar 4.44 Halaman Awal SetelahData Konsumen Dan Tanggal Pesan Serta Tanggal Harus Selesai Diisi ……… 52
Gambar 4.45 Halaman Tambah Produk Pesanan Pertama Sebelum Diisi … 52 Gambar 4.46 Halaman Tambah Produk Pesanan Pertama Setelah Diisi …. 53 Gambar 4.47 Halaman Hitung Harga Pokok Produksi Nota NCR Rangkap Dua ……….. 53
Gambar 4.48 Halaman Input Harga Jual Produk Nota Sebelum Diisi …….. 56
Gambar 4.49 Halaman Input Harga Jual Produk Nota Setelah Diisi ……... 56
Gambar 4.50 Halaman Tambah Produk Pesanan Setelah Input Produk Pesanan Pertama ……….………….... 57
xvi
xvii
DAFTAR TABEL
1
I.1. Latar Belakang
Banyak orang yang ingin membuka lowongan pekerjaan baru. Tak jarang mereka membuka usaha yang sebenarnya sudah banyak digeluti oleh orang lain. Hal itu menyebabkan persaingan yang semakin ketat. Dengan adanya persaingan yang ketat, masing-masing orang harus pandai memanfaatkan teknologi yang ada. Teknologi yang semakin berkembang memungkinkan untuk melakukan apa saja, termasuk membuat sistem informasi. Sistem informasi dibutuhkan oleh pengusaha pada saat ini karena dapat menghasilkan informasi yang akurat dan dapat dipercaya.
Demikian halnya dengan percetakan sablon St. Leter di Kabupaten Batang, Jawa Tengah, sebuah home industry percetakan sablon yang menerima beberapa jenis cetak sablon seperti sablon plastik dan kertas. Contohnya adalah plastik-plastik toko, plastik-plastik pembungkus obat, nota penjualan, surat jalan, piagam, brosur, kartu nama, sertifikat, stiker, payung, dan lain sebagainya.
2
Percetakan ini melakukan produksi berdasarkan pesanan konsumen. Barang yang diproduksi bergantung pada jenis pesanan dan jumlah pesanan sehingga setiap barang yang diproduksi memiliki harga pokok produksi yang berbeda. Hal ini memungkinkan untuk dibuatnya suatu sistem yang dapat menangani perhitungan harga pokok produksi berdasarkan pesanan secara tepat dan teliti.
Karena itu dalam penulisan tugas akhir ini topik yang diambil adalah pembuatan sistem informasi produksi percetakan yang berfokus pada perhitungan harga pokok produksi berdasarkan pesanan.
I.2. Rumusan Masalah
Dari latar belakang tersebut, maka rumusan masalah adalah bagaimana menganalisa, mendesain, dan mengimplementasikan sistem informasi produksi percetakan dengan perhitungan harga pokok produksi menggunakan metode harga pokok pesanan.
I.3. Tujuan
Tujuan dari penulisan tugas akhir ini adalah membuat sebuah sistem informasi berbasis web yang dapat menangani perhitungan harga pokok pesanan pada kasus percetakaan.
I.4. Batasan Masalah
harga pokok produksi menggunakan metode harga pokok pesanan. 2. Perhitungan harga pokok produksi berdasarkan pada biaya bahan baku,
biaya tenaga kerja, dan biaya overhead.
3. Sistem informasi produksi yang dibuat tidak menangani penggajian
karyawan.
4. Teknologi yang digunakan pada sistem ini adalah teknologi berbasis
web dengan database menggunakan MySQL Server.
I.5. Metodologi Penelitian
Metodologi yang digunakan untuk penyusunan tugas akhir ini adalah : 1. Peninjauan lapangan
Mencari informasi dan melakukan wawancara langsung dengan pemilik percetakan St. Leter tentang proses biaya pokok produksi secara manual.
2. Studi literatur
Memahami dan mempelajari konsep-konsep tentang sistem informasi produksi khususnya perhitungan harga pokok pesanan dan mempelajari konsep tentang perangkat lunak yang digunakan.
4
4. Implementasi Sistem
Mengimplementasikan metode harga pokok pesanan ke dalam sistem dengan menggunakan bahasa pemrograman JavaServer Page (JSP). 5. Penerapan Sistem
Menerapkan sistem informasi yang sudah dibuat ke percetakan St. Leter.
I.6. Sistematika Penulisan
BAB I PENDAHULUAN
Berisi tentang latar belakang penulisan, rumusan masalah, tujuan, batasan masalah, metodologi penelitian, dan sistematika penulisan.
BAB II LANDASAN TEORI
Membahas tentang landasan teori yang dipergunakan dalam penulisan tugas akhir ini, yang meliputi konsep sistem informasi, teori-teori akuntansi biaya, metode harga pokok pesanan dan juga mengenai teknologi yang akan digunakan yaitu web based.
BAB III ANALISIS DAN DESAIN
Pada bab ini berisi tentang cara penerapan konsep dasar yang telah diuraikan pada bab sebelumnya untuk menganalisa dan merancang tentang sistem yang dibuat, meliputi analisa sistem dan desain sistem.
BAB IV IMPLEMENTASI SISTEM
BAB V ANALISA HASIL PERANGKAT LUNAK
Menganalisa perangkat lunak yang sudah dibuat, kelebihan dan kekurangan pada sistem ini.
BAB VI PENUTUP
6
BAB II
LANDASAN TEORI
II.1. Sistem Informasi
Sistem informasi adalah pengaturan orang, data, proses, dan teknologi informasi yang berinteraksi untuk mengumpulkan, memproses, menyimpan, dan menyediakan sebagai output informasi yang diperlukan untuk mendukung sebuah organisasi (Whitten, 2004).
II.1.1 Sistem Informasi Produksi
Sistem informasi produksi adalah sistem yang memproses data mengenai semua aktivitas yang mencakup produksi yang baik.
Tujuan dari sistem informasi ini :
1. Digunakan dalam merencanakan, memantau dan mengontrol proses produksi yang terjadi sehingga lebih efisien.
2. Menghasilkan efisiensi proses produksi, kontrol kualitas yang ketat serta menghasilkan produk yang lebih bagus.
3. Mengurangi biaya dari penggunaan berbagai inventarisasi dengan mendapatkan kontrol material yang baik.
II.2. Konsep Akuntansi Biaya
serta menyajikan informasi biaya dalam bentuk laporan biaya (Supriyono, 1983). Konsep dan terminologi yang digunakan dalam akuntansi biaya :
a. Harga perolehan atau harga pokok (cost)
Harga perolehan atau harga pokok dapat diartikan sebagai nilai yang dapat diukur dalam satuan uang dalam rangka memperoleh barang atau jasa. Contohnya adalah kas yang dibayarkan, tambahan modal dan hutang yang timbul.
b. Biaya (expenses)
Biaya merupakan harga perolehan yang dikorbankan atau digunakan dalam rangka memperoleh penghasilan (revenues) dan akan dipakai sebagai pengurang penghasilan.
c. Penghasilan (revenue)
Penghasilan dapat didefinisikan sebagai nilai yang dapat diukur dengan satuan uang dalam rangka penjualan barang dagangan, produk, jasa yang dilakukan perusahaan kepada pihak lain. Contoh penghasilan antara lain : kas yang diterima, pihutang yang timbul, nilai aktiva lainnya yang diterima, nilai jasa yang diterima, pengurangan hutang dan pengurangan modal.
d. Laba dan rugi (profit and loss)
8
Rugi merupakan berkurangnya kekayaan perusahaan yang bukan karena pengambilan modal oleh pemilik, dimana tidak ada manfaat yang diperoleh dari berkurangnya aktiva tersebut.
II.3. Metode Harga Pokok Pesanan
Metode harga pokok pesanan adalah metode pengumpulan harga pokok produk dimana biaya dikumpulkan untuk setiap pesanan atau kontrak atau jasa secara terpisah, dan setiap pesanan atau kontrak dapat dipisahkan identitasnya (Supriyono, 1983). Kegiatan pengolahan produk mulai dilakukan jika pelanggan sudah memesan melalui dokumen pesanan penjualan (sales order). Dokumen ini berisi jenis dan jumlah produksi yang akan dipesan, spesifikasi pesanan, tanggal pesanan diterima dan tanggal pesanan harus diserahkan. Atas dasar pesanan penjualan tersebut akan dibuat perintah produksi untuk melaksanan kegiatan produksi sesuai dengan pesanan. Tujuan produksi adalah untuk melayani pesanan dan sifatnya terputus-putus. Maksudnya setelah pesanan yang satu selesai dikerjakan maka akan dilanjutkan dengan pesanan yang lain.
Penentuan harga pokok pesanan penting untuk menetapkan harga jual dan mengendalikan biaya. Biasanya calon pemesan meminta perkiraan harga untuk dibandingkan dengan perusahaan lain. Maka dari itu sebuah perusahaan harus bisa memperkirakan biaya secara akurat agar dapat bersaing dengan perusahaan lain.
II.3.1. Karakteristik Metode Harga Pokok Pesanan
b. Bentuk produk tergantung pada spesifikasi pemesan.
c. Pengumpulan biaya produksi dilakukan pada kartu biaya pesanan yang memuat rincian untuk masing-masing pesanan.
d. Total harga pokok untuk setiap pesanan dihitung ketika pesanan yang
bersangkutan selesai dikerjakan.
e. Biaya produksi per item dihitung dengan membagi total biaya
produksi dengan total item yang dipesan.
f. Produk yang sudah jadi segera diserahkan kepada pemesan.
II.3.2. Aliran Kegiatan Produksi
Aliran kegiatan dalam produksi barang sesuai pemesanan sebagai berikut : a. Pengadaan
Pengadaan adalah kegiatan untuk memperoleh barang dan jasa yang akan digunakan dalam kegiatan produksi.
b. Produksi
Produksi adalah kegiatan pengolahan bahan baku menjadi bahan jadi. c. Penyimpanan produk jadi
Produk yang telah diproduksi akan dipindahkan ke gudang, menunggu untuk diserahkan kepada pemesan.
d. Penjualan produk jadi
10
II.3.3. Jenis Biaya pada Metode Harga Pokok Pesanan
Ada beberapa biaya, antara lain : a. Biaya bahan baku.
Biaya yang timbul karena adanya pemakaian bahan baku. Biaya bahan baku merupakan harga pokok bahan baku yang dipakai dalam proses produksi untuk membuat barang.
b. Biaya tenaga kerja.
Biaya tenaga kerja timbul sebagai akibat dari pemakaian tenaga kerja untuk mengolah bahan baku menjadi barang jadi. Biaya tenaga kerja merupakan gaji atau upah yang diberikan kepada tenaga kerja yang terlibat dalam proses produksi.
c. Biaya overhead.
Biaya overhead merupakan biaya yang paling komplek, untuk keadilan dan ketelitian pembebanan harus digunakan tarif biaya overhead yang ditentukan dimuka. Contohnya adalah biaya listrik, pajak, air, tenaga kerja tidak langsung, dan lainnya.
II.4. Java Server Pages
Kode JSP pada dasarnya merupakan kode HTML yang dilengkapi dengan tag-tag JSP yang disisipi dengan menggunakan bahasa java (Kadir, 2004). Pada tag-tag inilah program menyisipkan kode dalam bahasa java.
Contoh kode JSP: <HTML>
out.print(“Selamat Belanjar JSP”); %>
</BODY> </HTML>
II.5. Desain Sistem
II.5.1. Use Case
Use case adalah sebuah diagram yang menggambarkan interaksi antara sistem dengan eksternal sistem dan pengguna. Secara grafik digambarkan dalam bentuk elips dengan nama use case tertera didalamnya (Whitten, 2004). Gambar 2.1 merupakan simbol use case.
Gambar 2.1 Simbol Use Case (Whitten, 2004)
12
Gambar 2.2 Simbol Aktor(Whitten, 2004)
Use case depends on relationship merupakan sebuah relasi use case yang menentukan bahwa use case yang lain harus dibuat sebelum use case yang sekarang. Digambarkan sebagai anak panah yang dimulai dari suatu use case dan menunjuk ke use case yang depend on kepadanya. Setiap relasi depend on diberi label “<<depend on>>”. Gambar 2.3 merupakan simbol depend on.
Gambar 2.3 Simbol Depend On (Whitten, 2004)
II.5.2. Diagram Aktivitas
Diagram aktivitas merupakan sebuah diagram yang dapat digunakan untuk menggambarkan secara grafis aliran proses bisnis, langkah-langkah sebuah use case atau logika bahaviour (metode) objek (Whitten, 2004). Berikut ini adalah simbol-simbol yang digunakan dalam diagram aktivitas:
a. Titik solid menggambarkan awal sebuah proses.
c. Panah menggambarkan sasaran yang mengawali kegiatan.
d. Teks di dalam [ ] menggambarkan sebuah sasaran yang merupakan sebuah hasil dari kegiatan keputusan.
e. Belah ketupat menggambarkan sebuah kegiatan keputusan.
f. Titik solid di dalam sebuah lingkaran berlubang menggambarkan akhir
dari sebuah proses.
II.5.3. Diagram Sequential
Diagram sequential adalah diagram UML yang memodelkan logika sebuah use case dengan menggambarkan interaksi pesan-pesan diantara objek dalam urutan waktu (Whitten, 2004). Ada 3 simbol objek yang digunakan dalam diagram ini, diantaranya adalah :
a. Objek antarmuka/interface object merupakan objek yang menyediakan peralatan dimana pengguna dapat mengantarmuka dengan sistem tersebut. Contohnya adalah sebuah window, dialogue box, atau screen. Untuk aktor bukan manusia, application program interface (API) adalah objek antarmuka (Whitten, 2004).
Gambar 2.4 Objek Antarmuka(Whitten, 2004)
b. Objek kontrol/control object merupakan objek yang berisi logika aplikasi
14
objek. Objek kontrol mengkoordinasi pesan antara objek antarmuka dan objek entiti dan sekuensi dimana pesan terjadi (Whitten, 2004).
Gambar 2.5 Objek Kontrol(Whitten, 2004)
c. Objek entiti/entity object merupakan objek yang berisi informasi yang berhubungan dengan bisnis yang bersifat menetap dan disimpan pada sebuah database (Whitten, 2004).
Gambar 2.6 Objek Entiti (Whitten, 2004)
II.5.4. Diagram Kelas
15
III.1. Gambaran Umum Sistem Lama
Percetakan sablon St. Leter memproduksi barang berdasarkan pesanan konsumen. Konsumen datang ke Percetakan sablon St. Leter untuk memesan satu ataupun beberapa unit barang. Setiap pesanan akan dicatat ke dalam dokumen pesanan. Dokumen pesanan tersebut berisi nama konsumen, spesifikasi pesanan, tanggal pesan, tanggal harus selesai, uang muka. Selanjutnya dilakukan proses produksi berdasarkan dokumen pesanan tersebut. Proses produksi untuk satu unit pesanan akan dikerjakan oleh satu atau beberapa karyawan. Setelah pesanan selesai diproduksi, setiap karyawan akan mencatat dalam buku berapa unit barang yang telah selesai mereka kerjakan. Hal tersebut dilakukan untuk pesanan-pesanan lainnya.
Dalam menentukan harga pokok barang, pemilik tetap memperhitungkan biaya overhead, biaya bahan baku dan biaya tenaga kerja yang dikeluarkan, tetapi perhitungan dilakukan dengan perkiraan yang sewajarnya. Untuk biaya tenaga kerja, perhitungan dilakukan dengan cara mengalikan jumlah barang yang dikerjakan dengan upah satu pekerjaan (sistem borongan).
16
III.2. Analisis Kebutuhan Sistem Tabel 3.1 Analisis Kebutuhan Sistem
Analisis Sebab – Akibat Tujuan Perbaikan Sistem Rumusan Masalah Sebab – Akibat Tujuan Batasan Pemesanan barang
dari konsumen dicatat secara manual pada buku.
Dokumen dan upah tenaga kerja.
Laporan
pembelian bahan baku dan laporan penjualan dibuat secara manual di buku.
1.Perhitungan akuntansi dalam pembuatan laporan bisa salah.
III.3. Gambaran Umum Sistem Yang Akan Dibuat
Dalam sistem ini terdapat dua user, yaitu pemilik dan karyawan. Pemilik dapat mengelola user-user yang menggunakan sistem ini dan juga melihat data laporan pembelian dan penjualan. User karyawan dapat melakukan input data bahan baku, overhead, tenaga kerja (pekerjaan), konsumen, supplier, kategori, kamus bahan baku, kamus, overhead, kamus pekerjaan, kamus kategori, pesanan, penjualan, dan data pembelian. Dalam sistem ini tidak menggunakan istilah tenaga kerja karena sistem penggajian karyawan menggunakan sistem borongan dimana banyaknya upah tergantung dari banyaknya pekerjaan yang bisa dilakukan. Sehingga istilah tenaga kerja diganti menjadi pekerjaan.
Sistem mempunyai kemampuan untuk menghitung harga pokok dari suatu produk berdasarkan biaya overhead, biaya bahan baku, dan biaya pekerjaan. Maka dari itu, sistem akan menyimpan biaya overhead, biaya bahan baku, dan biaya pekerjaan dari suatu produk yang diinputkan oleh karyawan. Sistem juga bisa menyimpan data-data transaksi berupa transaksi pembelian bahan baku dan transaksi pesanan serta transaksi penjualan.
18
karyawan harus memastikan bahwa data konsumen, data kategori produk yang berisi semua kebutuhan bahan baku, kebutuhan overhead, dan kebutuhan pekerjaan (kamus kategori), sudah dimasukkan ke sistem terlebih dahulu. Transaksi penjualan berasal dari data pesanan. Transaksi penjualan bisa terjadi jika transaksi pemesanan sudah dilakukan.
Gambar 3.1 Blok Proses Produksi
Sistem yang akan dibuat menggunakan bahasa pemrograman JavaServer Pages (JSP) dan database yang digunakan adalah MySQL Server 5.1. Untuk menggunakan sistem informasi produksi ini setiap user diberi username dan password yang berbeda-beda. Password hanya diketahui oleh username yang bersangkutan.
III.4. Diagram Konteks
III.5. Use Case
III.5.1 Diagram Use Case
20
Tabel 3.2 Daftar Use Case
No Nama Use Case Deskripsi Use Case Aktor 1. Login Use case ini mendeskripsikan suatu
kejadian yang dilakukan oleh pemilik dan karyawan. Pemilik dan karyawan melakukan login untuk dapat mengakses sistem ini.
Pemilik, Karyawan
2. Logout Use case ini mendeskripsikan suatu kejadian yang dilakukan oleh pemilik dan karyawan. Pemilik dan karyawan melakukan logout atau keluar dari sistem.
Pemilik, Karyawan
3. Tambah Bahan Baku
Use case ini mendeskripsikan suatu kejadian yang dilakukan oleh karyawan. Karyawan melakukan penambahan data bahan baku untuk pembuatan sebuah produk. Penambahan data bahan baku terjadi ketika perusahaan melakukan pembelian dari supplier.
Karyawan
4. Ubah Bahan Baku
Use case ini mendeskripsikan suatu kejadian yang dilakukan oleh karyawan. Karyawan melakukan pengubahan data bahan baku ke dalam sistem. Perubahan data yang dilakukan bisa disebabkan adanya penambahan ataupun pengurangan pasokan dari supplier, perubahan harga atau disebabkan oleh human error (kesalahan ketik).
Karyawan
5. Cari Bahan Baku
Use case ini mendeskripsikan suatu kejadian yang dilakukan oleh karyawan. Karyawan melakukan pencarian data bahan baku yang tersimpan di sistem. Kegiatan ini dilakukan untuk mengecek kelengkapan data yang diinputkan atau sekedar ingin mengetahui data-data bahan baku yang telah diinputkan sebelumnya.
Karyawan
6. Tambah Pesanan
Use case ini mendeskripsikan suatu kejadian yang dilakukan oleh karyawan. Karyawan melakukan penambahan data pesanan ke dalam sistem.
Karyawan
7. Cari Pesanan Use case ini mendeskripsikan suatu kejadian yang dilakukan oleh karyawan. Karyawan melakukan pencarian data pesanan pada sistem. Kegiatan ini dilakukan untuk mengetahui data pesanan
yang telah diinputkan sebelumnya. 8. Tambah
Penjualan
Use case ini mendeskripsikan suatu kejadian yang dilakukan oleh karyawan pada sistem. Karyawan melakukan penambahan data penjualan. Pesanan yang selesai dikerjakan akan diserahkan (dijual) kepada konsumen. Penambahan data penjualan selalu terjadi setelah suatu pesanan selesai dikerjakan.
Karyawan
9. Tambah Pembelian
Use case ini mendeskripsikan suatu kejadian yang dilakukan oleh karyawan. Karyawan melakukan penambahan data pembelian bahan ke dalam sistem. Penambahan data pembelian bahan terjadi jika ada transaksi pembelian bahan baku dari supplier.
Karyawan
10. Tambah User Use case ini mendeskripsikan suatu kejadian yang dilakukan oleh pemilik. Pemilik melakukan penambahan data user baru pada sistem. Penambahan data bisa terjadi karena adanya karyawan baru yang akan menggunakan sistem ini.
Pemilik
11. Ubah User Use case ini mendeskripsikan suatu kejadian yang dilakukan oleh pemilik. Pemilik melakukan perubahan data user pada sistem. Perubahan data yang dilakukan lebih disebabkan kesalahan yang terjadi karena human error (kesalahan ketik) dan perubahan data user.
Pemilik
12. Hapus User Use case ini mendeskripsikan suatu kejadian yang dilakukan oleh pemilik. Pemilik menghapus data user pada sistem. Kegiatan ini dilakukan ketika seorang user tidak bekerja lagi pada perusahaan.
Pemilik
13. Cari User Use case ini mendeskripsikan suatu kejadian yang dilakukan oleh pemilik. Pemilik melakukan pencarian data user pada sistem. Kegiatan ini dilakukan untuk mengecek kelengkapan data yang diinputkan atau sekedar ingin mengetahui data user yang telah diinputkan sebelumnya.
Pemilik
14. Lihat Laporan Pembelian
Use case ini mendeskripsikan suatu kejadian yang dilakukan oleh pemilik
22
pada sistem. Pemilik melihat laporan pembelian bahan baku pada waktu tertentu. Laporan dapat dilihat dengan berbagai segi, bisa dilihat dari faktur pembelian, tanggal pembelian, bahan baku yang dibeli dan juga dari segi supplier. Laporan tersebut juga dapat dicetak.
15. Lihat Laporan Penjualan
Use case ini mendeskripsikan suatu kejadian yang dilakukan oleh pemilik pada sistem. Pemilik melihat laporan penjualan produk pada waktu tertentu. Laporan dapat dilihat dengan berbagai segi, bisa dilihat dari faktur penjualan, tanggal penjualan, produk yang dijual dan juga dari segi konsumen. Laporan tersebut juga dapat dicetak.
Pemilik
III.5.2. Narasi Use Case
Setiap use case pada tabel akan dirinci dalam sebuah narasi yang merupakan deskripsi tekstual. Untuk lebih jelas dapat dilihat pada lampiran 1.
III.6. Diagram Aktivitas
Diagram aktivitas merupakan diagram yang menjelaskan aktivitas user dengan program. Untuk lebih jelas dapat dilihat pada lampiran 2.
III.7. Diagram Sequential
III.8. Diagram Kelas Dan Desain Basis Data
Tahap selanjutnya adalah pembuatan diagram kelas beserta atributnya. Diagram kelas dibuat secara keseluruhan. Dari diagram kelas yang sudah dibuat, maka dilanjutkan dengan mendesain basis data untuk implementasi sistem. Untuk lebih jelas dapat dilihat pada lampiran 4.
III.9. Desain Interface Sistem
24
BAB IV
IMPLEMENTASI SISTEM
IV.1. Perangkat Implementasi Sistem
Spesifikasi software yang digunakan dalam implementasi sistem ini adalah : Sistem Operasi : Microsoft Windows XP Professional
Bahasa pemrograman : JavaServer Pages menggunakan NetBeans IDE 6.5 Basis data : MySQL Server 5.1
Spesifikasi hardware yang digunakan dalam implementasi sistem ini adalah : Processor : AMD Athlon™ 64 X2 3600+ 1.9 GHz
Memory : 3 GB DDR2 Harddisk : 80 GB
VGA : NVIDIA GeForce 9400 GT
IV.2. Koneksi Database
Untuk melakukan koneksi antara Java dengan MySQL, maka harus digunakan suatu driver / interface JDBC (Java Database Connectifity) yang berisi kelas-kelas untuk mengakses database server. Driver yang digunakan pada sistem ini adalah mysql-connector-java-5.1.5-bin.jar. Berikut ini adalah langkah-langkah serta method untuk koneksi dari java ke database :
private String jdbcURL = "jdbc:mysql://localhost:3306/stleter2"; private String user = "root";
private String password = "";
public Koneksi() { try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(jdbcURL, user, password); System.out.println("koneksi berhasil");
} catch (Exception ex) {
System.out.println("message: " + ex.getMessage()); }
}
Listing di atas berisi konstruktor dari class Koneksi yang digunakan untuk membangun koneksi (connection) dengan url, user dan password yang sudah diinisialisasi terlebih dahulu.
IV.3. Antar Muka Pemilik
IV.3.1. Halaman Login
Gambar 4.1 Halaman Login
String username = request.getParameter("username"); String password = request.getParameter("password"); User user = new User();
user.setUsername(username); user.setPassword(password);
kontrolUser kUser = new kontrolUser();
boolean isUsernamePasswordValid = kUser.cekUsernamePassword(user); if (isUsernamePasswordValid) {
String jabatan = kUser.cariJabatan(user); if (jabatan.equalsIgnoreCase("karyawan")) { session.setAttribute("username", username); session.setAttribute("password", password); RequestDispatcher rd =
sc.getRequestDispatcher("/h_karyawan/homeKaryawan.jsp"); rd.forward(request, response);
} else if (jabatan.equalsIgnoreCase("pemilik")) { session.setAttribute("username", username); session.setAttribute("password", password); RequestDispatcher rd =
sc.getRequestDispatcher("/h_pemilik/homePemilik.jsp"); rd.forward(request, response);
} } else {
26
sc.getRequestDispatcher("/index.jsp?wrongUserPass=yes"); rd.forward(request, response);
}
public boolean cekUsernamePassword(User user) { Koneksi koneksi = new Koneksi();
boolean status = false;
String query = "SELECT * FROM user " +
"WHERE username LIKE '" + user.getUsername() + "' AND " + "password like md5('" + user.getPassword() + "');"; try {
ResultSet hasilPencarian = koneksi.lihatData(query); hasilPencarian.beforeFirst();
if (hasilPencarian.next()) {
public String cariJabatan(User user) { Koneksi koneksi = new Koneksi(); String statusJabatan = "";
String query = "SELECT jabatan FROM user " +
"WHERE username LIKE '" + user.getUsername() + "' AND " + "password like md5('" + user.getPassword() + "');"; try {
ResultSet hasilPencarian = koneksi.lihatData(query); if (hasilPencarian.next()) {
statusJabatan = String.valueOf(hasilPencarian.getString(1)); }
} catch (SQLException ex) {
Logger.getLogger(kontrolUser.class.getName()).log(Level.SEVERE,null,ex); }
return statusJabatan; }
Halaman login merupakan halaman pertama yang harus diakses oleh pemilik agar bisa masuk ke dalam sistem. Pada halaman ini, pemilik mengisikan username dan password pada field yang telah disediakan, kemudian klik tombol Login untuk masuk ke dalam halaman utama pemilik.
Gambar 4.2 Jendela Konfirmasi Gagal Login
IV.3.2. Halaman Utama Pemilik
Gambar 4.3 Halaman Utama Pemilik
Pada halaman utama pemilik, ada beberapa menu yang dapat diakses yaitu Beranda, Manual, Tentang Kami, Logout, Kelola User | Tambah, Kelola User | Cari, Laporan | Penjualan, dan Laporan | Pembelian.
IV.3.3. Halaman Manual
Jika ada menu yang susah untuk dipahami, pemilik dapat membaca manual yang sudah disediakan pada sistem ini. Pemilik dapat membuka manual dengan mengakses menu Manual seperti pada gambar 4.4, kemudian memilih bagian yang ingin dipelajari.
28
IV.3.4. Halaman Tentang Kami
Halaman Tentang Kami berisi tentang identitas perusahaan. Identitas tersebut berupa alamat percetakan dan informasi mengenai pelayanan yang diberikan. Gambar 4.5 merupakan gambar halaman Tentang Kami untuk pemilik.
Gambar 4.5 Halaman Tentang Kami untuk Pemilik
IV.3.5. Halaman Kelola User
Pemilik bisa melakukan tambah user dan pencarian data user. Untuk tambah user, pemilik mengakses menu Kelola User | Tambah. Gambar 4.6 adalah halaman untuk tambah user, sedangkan untuk pencarian data user, pemilik mengakses menu Kelola User | Cari. Gambar 4.7 adalah halaman untuk pencarian user. Pencarian bisa berdasarkan nama ataupun kode.
Gambar 4.6 Halaman Tambah User
public int tambahUser(User user) throws SQLException { Koneksi koneksi = new Koneksi();
String query = "CALL spTambahUser(?, ?, ?, ?, ?, ?, ?)"; CallableStatement callablestatement = null;
int i = 0;
callablestatement =
callablestatement.setString(1, user.getKodeUser()); i = callablestatement.executeUpdate();
return i; }
Gambar 4.7 Halaman Pencarian Data User
Pada halaman pencarian data user, pemilik dapat melihat detail, mengubah dan menghapus data user. Kecuali data dengan kode US-0001 hanya bisa dilihat dan diubah saja karena ini merupakan user pemilik.
IV.3.6. Halaman Laporan
30
4.10, pemilik bisa menyimpan tab tersebut dengan format pdf ataupun mencetaknya.
Gambar 4.8 Halaman Awal Laporan Penjualan
Gambar 4.9 Halaman Data Laporan Penjualan
Gambar 4.10 Laporan Penjualan dengan Format PDF
String dasar = request.getParameter("d");
String tanggalAwal = request.getParameter("aw"); String tanggalAkhir = request.getParameter("ak"); //cek format tanggal
tanggalAwal = tanggalAwal.substring(6, 10) + "-" +
tanggalAwal.substring(3, 5) + "-" + tanggalAwal.substring(0, 2); tanggalAkhir = tanggalAkhir.substring(6, 10) + "-" +
tanggalAkhir.substring(3, 5) + "-" + tanggalAkhir.substring(0, 2); //memilih tanggal yg lebih awal dan diletakkan didepan
String queryTgl = "SELECT '" +tanggalAwal+ "' > '" +tanggalAkhir+ "';"; ResultSet rsTanggal = null;
Koneksi koneksi = new Koneksi(); String tanggalAwal2 = "";
rsTanggal = koneksi.lihatData(queryTgl); rsTanggal.next();
if (rsTanggal.getString(1).equals("0")) { tanggalAwal2 = tanggalAwal;
tanggalAkhir2 = tanggalAkhir;
} else if (rsTanggal.getString(1).equals("1")) { tanggalAwal2 = tanggalAkhir;
tanggalAkhir2 = tanggalAwal; }
} catch (SQLException ex) {
Logger.getLogger(laporanPembelian.class.getName()).log(Level.SEVERE,null, ex);
}
ServletOutputStream servletOutputStream = response.getOutputStream(); InputStream reportStream = getServletConfig().getServletContext(). getResourceAsStream("/report/laporanPenjualanFaktur.jasper"); try {
String query = "";
//cek laporan berdasarkan if (dasar.equals("Faktur")) {
query = "SELECT pj.tgl_faktur, pj.kode_penjualan, SUM(dp.harga_pokok) AS harga_pokok, " + "SUM(dp.harga_jual) AS harga_jual, SUM(dp.harga_jual-dp.harga_pokok) AS laba, " + "(SELECT SUM(SUM(dp.harga_jual-dp.harga_pokok) " + "FROM detail_pesanan dp NATURAL JOIN pesanan NATURAL JOIN penjualan pj " + "WHERE pj.tgl_faktur BETWEEN '" + tanggalAwal2 + "' AND '" + tanggalAkhir2 + "') AS total_pokok, " + "(SELECT SUM(dp.harga_jual) " + "FROM detail_pesanan dp NATURAL JOIN pesanan NATURAL JOIN penjualan pj " + "WHERE pj.tgl_faktur BETWEEN '" + tanggalAwal2 + "' AND '" + tanggalAkhir2 + "') AS total_jual, " + "(SELECT SUM(dp.harga_jual-dp.harga_pokok) " + "FROM detail_pesanan dp NATURAL JOIN pesanan NATURAL JOIN penjualan pj " + "WHERE pj.tgl_faktur BETWEEN '" + tanggalAwal2 + "' AND '" + tanggalAkhir2 + "') AS total_laba, " + "'" + tanggalAwal2 + "' AS tanggal_awal, '" + tanggalAkhir2 + "' AS tanggal_akhir " + "FROM detail_pesanan dp NATURAL JOIN pesanan NATURAL JOIN penjualan pj " + "WHERE pj.tgl_faktur BETWEEN '" + tanggalAwal2 + "' AND '" + tanggalAkhir2 + "' " + "GROUP BY pj.kode_penjualan;";
reportStream = getServletConfig().getServletContext().
getResourceAsStream("/report/laporanPenjualanFaktur.jasper"); } else if (dasar.equals("Tanggal")) {
query = "SELECT pj.tgl_faktur, COUNT(DISTINCT pj.kode_penjualan) AS jml_trans, " + "SUM(dp.harga_pokok) AS harga_pokok, " + "SUM(dp.harga_jual) AS harga_jual, SUM(dp.harga_jual-dp.harga_pokok) AS laba, " + "(SELECT SUM(dp.harga_pokok) " + "FROM detail_pesanan dp NATURAL JOIN pesanan NATURAL JOIN penjualan pj " + "WHERE pj.tgl_faktur BETWEEN '" + tanggalAwal2 + "' AND '" + tanggalAkhir2 + "') AS total_pokok, " + "(SELECT SUM(dp.harga_jual) " + "FROM detail_pesanan dp NATURAL JOIN pesanan NATURAL JOIN penjualan pj " + "WHERE pj.tgl_faktur BETWEEN '" + tanggalAwal2 + "' AND '" + tanggalAkhir2 + "') AS total_jual, " + "(SELECT SUM(dp.harga_jual-dp.harga_pokok) " + "FROM detail_pesanan dp NATURAL JOIN pesanan NATURAL JOIN penjualan pj " + "WHERE pj.tgl_faktur BETWEEN '" + tanggalAwal2 + "' AND '" + tanggalAkhir2 + "') AS total_laba, " + "'" + tanggalAwal2 + "' AS tanggal_awal, '" + tanggalAkhir2 + "' AS tanggal_akhir " + "FROM detail_pesanan dp NATURAL JOIN pesanan NATURAL JOIN penjualan pj " + "WHERE pj.tgl_faktur BETWEEN '" + tanggalAwal2 + "' AND '" + tanggalAkhir2 + "' " + "GROUP BY pj.tgl_faktur;";
reportStream = getServletConfig().getServletContext().
getResourceAsStream("/report/laporanPenjualanTanggal.jasper"); } else if (dasar.equals("Produk")) {
32
pj.tgl_faktur BETWEEN '" + tanggalAwal2 + "' AND '" + tanggalAkhir2 + "') AS total_harga_pokok, " + "(SELECT SUM(dp.harga_jual) " + "FROM detail_pesanan dp NATURAL JOIN penjualan pj " + "WHERE pj.tgl_faktur BETWEEN '" + tanggalAwal2 + "' AND '" + tanggalAkhir2 + "') AS total_harga_jual, " + "(SELECT SUM(dp.harga_jual)-SUM(dp.harga_pokok) " + "FROM detail_pesanan dp NATURAL JOIN penjualan pj " + "WHERE pj.tgl_faktur BETWEEN '" + tanggalAwal2 + "' AND '" + tanggalAkhir2 + "') AS total_laba, " + "'" + tanggalAwal2 + "' AS 'tanggal_awal', '" + tanggalAkhir2 + "' AS tanggal_akhir " + "FROM kategori k NATURAL JOIN detail_pesanan dp NATURAL JOIN penjualan pj " + "WHERE pj.tgl_faktur BETWEEN '" + tanggalAwal2 + "' AND '" + tanggalAkhir2 + "';";
reportStream = getServletConfig().getServletContext().
getResourceAsStream("/report/laporanPenjualanProduk.jasper"); } else if (dasar.equals("Konsumen")) {
query = "SELECT k.nama_konsumen, COUNT(DISTINCT pj.kode_penjualan) AS jml_trans, SUM(dp.harga_pokok) AS harga_pokok, " + "SUM(dp.harga_jual) AS harga_jual, SUM(dp.harga_jual-dp.harga_pokok) AS laba, " + "ROUND(dp.harga_pokok)*100/(SELECT SUM(dp.harga_jual-dp.harga_pokok) " + "FROM konsumen k NATURAL JOIN pesanan p NATURAL JOIN detail_pesanan dp NATURAL JOIN penjualan pj " + "WHERE pj.tgl_faktur BETWEEN '" + tanggalAwal2 + "' AND '" + tanggalAkhir2 + "'), 2) AS persentase_laba, " + "(SELECT SUM(dp.harga_pokok) " + "FROM konsumen k NATURAL JOIN pesanan p NATURAL JOIN detail_pesanan dp NATURAL JOIN penjualan pj " + "WHERE pj.tgl_faktur BETWEEN '" + tanggalAwal2 + "' AND '" + tanggalAkhir2 + "') AS total_harga_pokok, " + "(SELECT SUM(dp.harga_jual) " + "FROM konsumen k NATURAL JOIN pesanan p NATURAL JOIN detail_pesanan dp NATURAL JOIN penjualan pj " + "WHERE pj.tgl_faktur BETWEEN '" + tanggalAwal2 + "' AND '" + tanggalAkhir2 + "') AS total_penjualan, " + "(SELECT SUM(dp.harga_jual-dp.harga_pokok) " + "FROM konsumen k NATURAL JOIN pesanan p NATURAL JOIN detail_pesanan dp NATURAL JOIN penjualan pj " + "WHERE pj.tgl_faktur BETWEEN '" + tanggalAwal2 + "' AND '" + tanggalAkhir2 + "') AS total_laba, " + "'" + tanggalAwal2 + "' AS tanggal_awal, '" + tanggalAkhir2 + "' AS tanggal_akhir " + "FROM konsumen k NATURAL JOIN pesanan p NATURAL JOIN detail_pesanan dp NATURAL JOIN penjualan pj " + "WHERE pj.tgl_faktur BETWEEN '" + tanggalAwal2 + "' AND '" + tanggalAkhir2 + "' " + "GROUP BY k.kode_konsumen;";
reportStream = getServletConfig().getServletContext().
getResourceAsStream("/report/laporanPenjualanKonsumen.jasper"); }
ResultSet resultSet = koneksi.lihatData(query);
JRResultSetDataSource dataSource = new JRResultSetDataSource(resultSet); try {
JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, new HashMap(), dataSource); response.setContentType("application/pdf");
servletOutputStream.flush(); servletOutputStream.close(); } catch (JRException e) {
// display stack trace in the browser
StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter); e.printStackTrace(printWriter);
response.setContentType("text/plain");
response.getOutputStream().print(stringWriter.toString()); }
} catch (Exception e) {
System.out.println("gagal tampil pdf ke browser"); }
IV.4. Antar Muka Karyawan
Pada antar muka karyawan, ada beberapa halaman yang sama yaitu halaman login dan halaman tentang kami. Kedua halaman tersebut tidak dibahas lagi pada subbab ini.
IV. 4.1. Halaman Utama Karyawan
Gambar 4.11 Halaman Utama Karyawan
Untuk bisa masuk ke sistem karyawan, karyawan harus login terlebih dahulu. Gambar 4.11 adalah gambar halaman pertama setelah karyawan berhasil login.
34
IV. 4.2. Halaman Manual
Pada antar muka karyawan juga terdapat manual untuk memudahkan pengguna sistem dalam menggunakan sistem. Karyawan dapat membuka manual dengan mengakses menu Manual kemudian memilih bagian yang ingin dipelajari seperti pada gambar 4.12.
Sebagai contoh jika ingin mengetahui cara penggunaan menambahkan data konsumen, karyawan hanya perlu memilih Konsumen pada bagian Input Data Master maka akan muncul halaman baru seperti pada gambar 4.13.
Gambar 4.12 Halaman Manual untuk Karyawan
Gambar 4.13 Halaman Manual Karyawan untuk Input Data Master Konsumen
IV. 4.3. Halaman Transaksi
IV. 4.3.1. Halaman Transaksi Pesanan
mengklik Pilih Konsumen, maka akan muncul halaman pencarian data konsumen. User mengklik Pilih pada salah satu data konsumen sebagai tanda bahwa konsumen tersebut yang akan melakukan transaksi pesanan (jika data konsumen belum ada, user harus memasukkan data konsumen terlebih dahulu sebagai data master). Halaman awal yang berkaitan dengan data konsumen yang tadinya kosong akan terisi. Pada halaman ini user perlu memasukan tanggal pesan (nilai awal tanggal pesan adalah tanggal pada saat sistem diakses) dan tanggal harus selesai. Kemudian user menekan tombol Proses Berikutnya, dan muncul form baru seperti gambar 4.15.
Gambar 4.14 Halaman Awal Pesanan
Gambar 4.15 Halaman Input Produk Pesanan
36
4.16. Pada halaman tersebut tertera informasi yang berkaitan dengan pesanan dan perhitungan harga pokok produksi. Selanjutnya user mengklik tombol proses dan muncul form baru seperti gambar 4.17. Pada halaman ini, user memasukan harga jual produk, kemudian klik Tambah ke Daftar Pesanan dan muncul form seperti gambar 4.18.
Gambar 4.16 Halaman Hitung Harga Pokok Produksi
Gambar 4.18 Halaman Input Produk Pesanan dan Daftar Pesanan
public int simpanDataPesanan(Pesanan pesanan) throws SQLException { Koneksi koneksi = new Koneksi();
String query = "CALL spSimpanDataPesanan(?, ?, ?, ?, ?)"; CallableStatement callablestatement = null;
int i = 0;
callablestatement =
(CallableStatement) koneksi.getConnection().prepareCall(query); callablestatement.setString(1, pesanan.getTanggalPesan());
callablestatement.setString(2, pesanan.getTanggalHarusSelesai()); callablestatement.setString(3, pesanan.getKodeKonsumen());
callablestatement.setString(4, pesanan.getKodePesanan()); callablestatement.setInt(5, pesanan.getUangMuka()); i = callablestatement.executeUpdate();
return i; }
Pada halaman ini, user boleh mengklik tombol Simpan Data Pesanan jika seorang konsumen hanya memesan 1 produk saja. Jika konsumen memesan banyak produk, maka user perlu menginputkan produk lagi dengan langkah-langkah seperti yang telah dijelaskan sebelumnya.
IV. 4.3.2. Halaman Transaksi Penjualan
38
Gambar 4.19 Halaman Awal Penjualan
Setelah klik Pilih Pesanan, maka akan muncul halaman baru seperti gambar 4.20.
Gambar 4.20 Halaman Pencarian Pesanan yang akan Dijual
Pada halaman ini, user bisa mencari pesanan berdasarkan interval tanggal tertentu, atau dengan tanggal tertentu saja. Selain itu, user juga dapat melakukan pencarian dengan kata kunci tertentu. Jika tanggal dan kata kunci kosong maka semua pesanan yang sudah selesai diproduksi akan ditampilkan.
Gambar 4.21 Halaman Penjualan
public int simpanDataPenjualan(Penjualan penjualan) throws SQLException { Koneksi koneksi = new Koneksi();
String query = "CALL spSimpanDataPenjualan(?, ?, ?);"; CallableStatement callablestatement = null;
int i = 0;
callablestatement =
(CallableStatement) koneksi.getConnection().prepareCall(query); callablestatement.setString(1, penjualan.getKodePenjualan()); callablestatement.setString(2, penjualan.getKodePesanan()); callablestatement.setString(3, penjualan.getTanggalFaktur()); i = callablestatement.executeUpdate();
return i; }
Jika data transaksi penjualan berhasil disimpan maka muncul pesan seperti berikut ini.
Gambar 4.22 Pesan Data Penjualan Berhasil Disimpan
IV. 4.3.3. Halaman Transaksi Pembelian
40
Gambar 4.23 Halaman Pilih Supplier
User mengklik Pilih Supplier, maka akan muncul halaman pencarian data supplier. Pada halaman ini, terdapat daftar supplier yang bertransaksi dengan perusahaan. User mengklik Pilih pada salah satu supplier sebagai tanda bahwa supplier tersebut yang akan melakukan transaksi pembelian (jika data supplier belum ada, user harus memasukkan data supplier terlebih dahulu sebagai data master). Halaman awal yang berkaitan dengan data supplier yang tadinya kosong akan terisi, pada halaman ini user perlu memasukan tanggal pembelian (nilai awaltanggal pembelian adalah tanggal pada saat sistem diakses). Kemudian user menekan tombol Proses Berikutnya, dan muncul halaman baru seperti gambar 4.24.
Gambar 4.24 Halaman Pilih Bahan Baku
maka akan muncul form pencarian data bahan baku. Pada form ini terdapat daftar bahan baku. User memilih salah satu bahan baku yang terdapat dalam daftar. Kemudian muncul form seperti gambar 4.25. Pada form ini user harus memasukkan jumlah barang terlebih dahulu kemudian tekan tombol Tambah Ke Daftar Beli. Kemudian muncul halaman baru seperti pada gambar 4.26.
Gambar 4.25 Halaman Input Harga Satuan dan Jumlah Barang Bahan Baku
Gambar 4.26 Halaman Simpan Data Pembelian
public int simpanDataPembelian(Pembelian pembelian) throws SQLException { Koneksi koneksi = new Koneksi();
String query = "CALL spSimpanDataPembelian(?, ?, ?, ?, ?);"; CallableStatement callablestatement = null;
int i = 0;
callablestatement =
(CallableStatement) koneksi.getConnection().prepareCall(query); callablestatement.setString(1, pembelian.getKodePembelian()); callablestatement.setString(2, pembelian.getKodeSupplier()); callablestatement.setInt(3, pembelian.getTotalFaktur()); callablestatement.setInt(4, pembelian.getDiskon());
callablestatement.setString(5, pembelian.getTanggalBeli()); i = callablestatement.executeUpdate();
42
}
Jika bahan baku yang dibeli hanya 1 item maka user dapat langsung menekan tombol Simpan Data Pembelian, jika bahan baku yang dibeli lebih dari 1 item maka klik lagi Pilih Bahan Baku Yang Dibeli dan lakukan langkah-langkah seperti yang telah dijelaskan sebelumnya.
IV. 4.4. Halaman Kamus Kategori
IV. 4.4.1. Halaman Kamus Bahan Baku
Untuk memasukkan data kamus bahan baku user dapat mengklik menu Kamus Kategori | Bahan Baku. Gambar 4.27 adalah halaman yang pertama kali muncul ketika user mengakses menu ini. Pada halaman ini user memilih kategori dengan cara klik Pilih Kategori. Setelah itu akan muncul halaman pencarian data kategori. User memilih salah satu data kategori yang akan ditambah daftar bahan baku yang digunakannya.
Gambar 4.27 Halaman Awal Kamus Bahan Baku
kategori tersebut lalu tekan Tambahkan Ke Daftar. Jika bahan baku yang digunakan Cuma ada 1 maka user dapat langsung menekan tombol Simpan Data Kamus Bahan Baku. Akan tetapi, jika masih ada bahan baku yang digunakan maka silakan ulangi langkah dari memilih bahan baku dari drop down menu.
Gambar 4.28 Halaman Pilih Bahan Baku Yang Digunakan
public void tambahKamusBahanbaku() throws SQLException { Koneksi koneksi = new Koneksi();
String query = "SELECT * FROM temp_kamus_bahanbaku;"; ResultSet rs = koneksi.lihatData(query);
while (rs.next()) {
String queryInsert = "INSERT INTO kamus_bahanbaku (kode_kategori, kode_bahanbaku, kebutuhan) " + "values ('" + rs.getString(1) + "', '" + rs.getString(2) + "', " + rs.getString(3) + ");"; koneksi.add2DB(queryInsert);
} }
IV. 4.4.2. Halaman Kamus Overhead
Gambar 4.29 Halaman Awal Kamus Overhead
44
pencarian data kategori. User memilih salah satu data kategori yang akan ditambah daftar bahan baku yang digunakannya. Kemudian berilah tanda centang (3) pada overhead yang digunakan (lihat gambar 4.30). Berbeda dengan kamus bahan baku, kamus overhead tidak perlu mengisi nilai kebutuhan karena setiap harga pokok pesanan akan dikenai sebanyak satu kali nilai tiap overhead.
Gambar 4.30 Halaman Pilih Overhead Yang Digunakan
public void tambahKamusOverhead(Kategori kategori, Overhead overhead) throws SQLException {
Koneksi koneksi = new Koneksi();
String query = "INSERT INTO kamus_overhead (kode_kategori, kode_overhead)" + " VALUES('" + kategori.getKodeKategori() + "', '" + overhead.getKodeOverhead() + "');";
koneksi.add2DB(query); }
IV. 4.4.3. Halaman Kamus Pekerjaan
Gambar 4.31 Halaman Awal Kamus Pekerjaan
User dapat memasukkan data pekerjaan yang digunakan dengan cara memilih salah satu pekerjaan yang digunakan pada drop down menu Nama Pekerjaan, mengisi nilai kebutuhan untuk membuat produk dengan kategori tersebut dan juga memilih apakah pekerjaan tersebut dikalikan jumlah warna produk atau tidak lalu tekan Tambahkan Ke Daftar. Jika pekerjaan yang digunakan cuma ada 1 maka user dapat langsung menekan tombol Simpan Data Kamus Pekerjaan. Akan tetapi, jika masih ada pekerjaan yang digunakan maka silakan ulangi langkah dari memilih pekerjaan dari drop down menu.
Gambar 4.32 Halaman Pilih Pekerjaan Yang Digunakan
public void tambahKamusPekerjaan() throws SQLException { Koneksi koneksi = new Koneksi();
String query = "SELECT * FROM temp_kamus_pekerjaan;"; ResultSet rs = koneksi.lihatData(query);
while (rs.next()) {
String queryInsert = "INSERT INTO kamus_pekerjaan (kode_kategori, kode_pekerjaan, kebutuhan, dikalikan_jumlah_warna) " + "values ('" + rs.getString(1) + "', '" + rs.getString(2) + "', "
+ rs.getInt(3) + ", '" + rs.getString(4) + "');"; koneksi.add2DB(queryInsert);
46
IV. 4.4.4. Halaman Kamus Kategori
Setelah menginputkan semua data kamus bahan baku, kamus overhead dan kamus pekerjaan, user dapat melihat semua data tersebut dalam menu Kamus Kategori | Kategori. Ketika pertama mengakses halaman ini maka akan muncul halaman seperti pada gambar 4.33.
Gambar 4.33 Halaman Awal Kamus Kategori
Gambar 4.34 Halaman Kamus Kategori
bahan baku, kamus overhead ataupun data kamus pekerjaan. Hal ini digunakan untuk menangani apabila terjadi kesalahan pada waktu input data kamus.
IV. 4.5. Halaman Input Data Master
Halaman input data master digunakan untuk menginputkan semua data master yang digunakan dalam sistem ini. Data master tersebut meliputi data konsumen, supplier, bahan baku, overhead, pekerjaan dan data kategori. Langkah-langkah untuk menginputkan data master memiliki kemiripan oleh sebab itu hanya input data master konsumen yang akan dijelaskan.
Pertama user mengakses menu Input Data Master | Konsumen. User menginput data konsumen kemudian klik tombol Simpan (lihat gambar 4.35). Untuk bagian kode konsumen akan diisi secara otomatis oleh sistem berdasarkan urutan yang ada.
Gambar 4.35 Halaman Input Data Master Konsumen
48
Jika data berhasil dimasukkan akan muncul pesan seperti pada gambar 4.36. Tetapi jika data gagal disimpan maka akan muncul pesan berikut ini.
Gambar 4.37 Pesan Data Konsumen Gagal Disimpan
IV. 4.7. Halaman Pencarian
Sistem ini juga dapat melakukan pencarian terhadap data-data yang sudah disimpan di dalam sistem. Pencarian yang disediakan sistem ini meliputi pencarian data pesanan, penjualan, pembelian, produk dan data master. Untuk pencarian pesanan, penjualan, pembelian dan pencarian produk memiliki form yang hampir sama sehingga hanya pencarian pesanan yang akan dijelaskan.
Gambar 4.38 Halaman Pencarian Pesanan
Gambar 4.39 Halaman Hasil Pencarian Pesanan tanpa Kata Kunci dan Tanggal
Gambar 4.40 Halaman Detail Pesanan
50
maka halaman akan berubah menjadi halaman ubah data master. Hal ini digunakan untuk menangani kesalahan ketika input data master. Untuk lebih jelasnya dapat dilihat pada gambar 4.41 dan 4.42.
Gambar 4.41 Halaman Pencarian Data Master
Gambar 4.42 Halaman Hasil Pencarian Data Master Tabel Bahan Baku
IV.5. Contoh Implementasi Sistem
Berikut ini adalah contoh kasus untuk transaksi pemesanan.
Konsumen Widodo mengharapkan pesanan berupa nota dan amplopnya tersebut sudah jadi dalam waktu 1 minggu setelah pemesanan.
Dengan contoh kasus seperti di atas cara menjalankan Sistem Informasi Percetakan Sablon St. Leter adalah sebagai berikut :
Diawali dengan login ke sistem dengan username dan password karyawan. Setelah berhasil login, karyawan memasukkan data pesanan yang diawali dengan memasukkan data konsumen, tanggal pesan, dan tanggal harus selesai. Untuk memasukkan data konsumen, karyawan harus mengklik Pilih Konsumen dan memilih salah stu konsumen dalam daftar tabel. Form awal untuk melakukan transaksi pesanan adalah seperti pada gambar 4.43. Gambar 4.44 adalah keadaan form setelah data konsumen, tanggal pesan dan tanggal harus selesai dimasukkan.
52
Gambar 4.44 Halaman Awal Setelah Data Konsumen dan Tanggal Pesan serta Tanggal Harus Selesai Diisi
Setelah form terisi dengan data yang diperlukan, karyawan menekan tombol Proses Berikutnya dan muncul halaman baru seperti pada gambar 4.45. Pada halaman ini disajikan informasi pesanan yang terdiri dari nama pemesan/konsumen, tanggal pesanan dan tanggal harus selasai. Pada halaman ini juga karyawan memasukkan data produk yang dipesan berupa kategori produk, jumlah warna untuk pembuatan produk, dan jumlah item. Setelah data produk dimasukkan, dilanjutkan dengan menekan tombol Hitung DPP. Gambar 4.46 adalah gambar setelah data produk selesai dimasukkan.
Gambar 4.46 Halaman Tambah Produk Pesanan Pertama Setelah Diisi
Pada gambar 4.47 dilakukan perhitungan harga pokok produksi dengan menggunakan metode harga pokok pesanan. Pada halaman ini ditampilkan beberapa informasi yaitu informasi pesanan, informasi produk, informasi bahan baku yang digunakan, informasi overhead yang digunakan, dan informasi pekerjaan yang digunakan.
54
Pada bagian informasi bahan baku, total pengeluaran untuk bahan baku dihitung dengan cara mengalikan jumlah pakai dengan harga per item bahan baku kemudian subtotal tersebut dijumlahkan. Untuk kasus di atas maka perhitungannya adalah sebagai berikut.
Untuk pesanan dengan kode PS-0810-0006, bahan baku yang digunakan :
a. Kode Bahan Baku BB-0008 ; jumlah pakai = 5 rim, harga satuan per 1 rim
adalah Rp. 34.000,00 (harga satuan Rp. 34.000,00 didapat dari transaksi pembelian bahan baku dengan supplier). Jumlah harga untuk bahan baku BB-0008 adalah 5x Rp. 34.000,00 = Rp. 170.000,00
b. Kode Bahan Baku BB-0010; perhitungannya sama dengan poin a.
c. Kode bahan baku BB-0011 ; jumlah pakai = 50 lembar, karena untuk membuat
nota 1 rim membutuhkan sampul sebanyak 10 lembar (satu buku nota membutuhkan 50 lembar kertas NCR bottom dan 50 lembar kertas NCR top). Jadi untuk pesanan sebanyak 5 rim nota, sampul yang dibutuhkan sebanyak 50 lembar. Harga satuan per lembar sampul adalah Rp. 140,00. Jumlah harga untuk bahan baku BB-0011 adalah 50 lembar x Rp. 140,00 = Rp. 7.000,00. d. Kode Bahan Baku BB-0012; perhitungannya sama dengan poin c.
Perhitungan pengeluaran overhead dilakukan dengan cara menambahkan biaya masing-masing overhead yang dibutuhkan. Berbeda dengan bahan baku, overhead tidak perlu dikalikan dengan jumlah pakai karena banyaknya overhead yang digunakan adalah satu untuk satu produk.
pekerjaan. Perhitungan jumlah pakai bisa dilakukan dengan dua cara, yaitu perhitungan yang berpengaruh terhadap banyaknya warna produk pesanan dan perhitungan yang tidak berpengaruh terhadap banyaknya warna produk pesanan. Cara menghitung jumlah pakai yang berpengaruh terhadap banyaknya warna produk adalah dengan mengalikan banyaknya pekerjaan, jumlah pesanan dan jumlah warna. Sedangkan cara menghitung jumlah pakai yang tidak berpengaruh terhadap warna produk pesanan adalah dengan mengalikan banyaknya pekerjaan dengan jumlah pesanan. Contoh untuk kasus diatas :
a. Pekerjaan dengan kode PK-0002 adalah pekerjaan yang berpengaruh terhadap
jumlah warna produk pesanan. Jumlah pakai pekerjaan PK-0002 adalah 10.000. Penjelasannya adalah sebagai berikut : untuk satu produk nota membutuhkan 2 rim (1000 lembar) kertas yang terdiri dari 1 rim (500 lembar) kertas NCR Top dan 1 rim (500 lembar) kertas NCR Bottom. Untuk pesanan PS-0810-0006 dengan jumlah pesanan 5 rim tersebut, perhitungan jumlah pekerjaan adalah 1000 lembar * 5 rim * 2 jumlah warna = 10.000. Upah untuk pekerjaan PK-0002 adalah Rp. 8,00. Jadi jumlah pekerjaan PK-0002 adalah 10.000 * Rp. 8,00 = Rp. 80.000,00.
56
NCR Bottom. Jadi, jumlah pekerjaan PK-0005 adalah 5 * Rp. 2.000,00 = Rp. 10.000,00.
Dengan mendapatkan jumlah total dari bahan baku, overhead, dan pekerjaan, perhitungan harga pokok pesanan bisa dilakukan yaitu dengan menjumlahkan jumlah total bahan baku, jumlah total overhead, dan jumlah total pekerjaan. Kemudian klik tombol Lanjutkan Proses, maka muncul form baru seperti gambar 4.48. Pada form ini, karyawan memasukkan harga jual untuk produk PR-0810-0008, kemudian dilanjutkan dengan klik tombol Tambah Ke Daftar Pesanan. Gambar 4.48 adalah gambar form sebelum harga jual dimasukkan sedangkan gambar 4.49 adalah gambar form sesudah harga jual dimasukkan.
Gambar 4.48 Halaman Input Harga Jual Produk Nota Sebelum Diisi
Setelah karyawan menekan tombol Tambahkan ke Daftar Pesanan, muncul form baru seperti gambar 4.50. Pada form ini, produk dengan kode PR-0810-0008 sudah masuk dalam daftar pesanan.
Gambar 4.50 Halaman Tambah Produk Pesanan Setelah Input Produk Pesanan Pertama
58
Gambar 4.51 Halaman Tambah Produk Pesanan Setelah Input Produk Pesanan Pertama dan Akan Menginputkan Pesanan Kedua
Gambar 4.53 Halaman Input Harga Jual Produk Amplop Surat
Form pada gambar 4.54 menampilkan 2 produk pesanan yang sudah masuk ke daftar pesanan. Langkah selanjutnya adalah karyawan menginputkan uang muka. Jika konsumen memberikan uang muka, nominalnya diinputkan ke field yang sudah disediakan, jika konsumen tidak memberikan uang muka, maka field uang muka diisi dengan 0. Gambar 4.55 adalah pesan konfirmasi yang menginformasikan bahwa produk pesanan berhasil disimpan dalam sistem.
60
Gambar 4.55 Halaman Input Uang Muka Pesanan.