(STUDI KASUS : CV. TUNAS UTAMA)
ARIEF ARDIYUANDA
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
(STUDI KASUS: CV TUNAS UTAMA)
Skripsi
Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Komputer
Pada Fakultas Sains dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta
Oleh:
ARIEF ARDI YUANDA 105091002862
Menyetujui,
Pembimbing I,
Yusuf Durachman, MIT, M.Sc NIP. 1971 0522 2006 04 1 002
Pembimbing II,
Husni Teja Sukmana, PhD NIP. 1977 1030 2001 12 1 003
Mengetahui,
Ketua Program Studi Teknik Informatika
(STUDI KASUS : CV. TUNAS UTAMA)
Oleh:
ARIEF ARDIYUANDA 105091002862
Skripsi
Sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
BENAR HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN
SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI
ATAU LEMBAGA MANAPUN.
JAKARTA, JUNI 2010
ARIEF ARDIYUANDA
105091002862
Harga merupakan salah satu faktor kepuasan pelanggan. Perusahaan harus menentukan harga yang sesuai dengan harapan konsumen. Dalam menentukan harga satuan produk maka perusahaan harus mengetahui biaya produksi produk tersebut. Untuk mengetahui biaya produksi maka dibutuhkan perhitungan terhadap faktor produksi dan salah satunya adalah biaya bahan baku. Bahan baku kertas pada bidang percetakan diasumsikan sebagai permasalahan 0 1 knapsack dan menggunakan dynamic programming dalam penyelesaiannya. Metode pengembangan sistem menggunakan model proses rapid application development karena aplikasi yang akan dibuat menggunakan komponen-komponen yang sudah ada dan merupakan aplikasi sederhana. Aplikasi dibuat berbasis web dengan menggunakan PHP sebagai bahasa pemrograman untuk membuat aplikasi dan MySQL sebagai perangkat lunak Sistem Manajemen Basis Data. Aplikasi dapat memaksimalkan bahan baku sehingga meminimalisir biaya produksi dan berdampak langsung pada harga satuan produk.
Kata kunci : 0 1 knapsack, dynamic programming, Biaya Produksi.
memberikan kesabaran, semangat serta petunjuk dalam proses penyelesaian
skripsi ini.
Penulisan skripsi ini adalah sebagai syarat kelulusan untuk memperoleh
gelar Sarjana Komputer.
Penulis mengucapkan terima kasih berkat bimbingan, dorongan dan
bantuan kepada:
1. Bpk. DR. Syopiansyah Jaya Putra, M.Sis, selaku Dekan Fakultas Sains &
Teknologi.
2. Bpk. Yusuf Durachman, MIT, selaku Ketua Program Studi Teknik
Informatika dan juga selaku Dosen Pembimbing I yang senantiasa sabar
dalam membimbing penulis serta telah memberikan ilmunya yang sangat
berharga bagi penulis.
3. Bpk. Husni Teja Sukmana, PhD, selaku Dosen Pembimbing II yang juga
senantiasa sabar dalam membimbing penulis serta telah memberikan
ilmunya yang sangat berharga bagi penulis.
4. Kedua Orang Tua Tercinta, yang telah memberikan motivasi serta
dukungan moril maupun materil.
5. Karyawan CV. TUNAS UTAMA.
6. Dosen dan Pegawai Tata Usaha Fakultas Sains dan Teknologi.
7. Teman-teman D’Kans Organizer.
8. Teman-teman kelas TI-C 2005.
vi
Penulis selalu menerima saran dan kritik dari pembaca. Semoga tulisan ini
bermanfaat bagi kita semua. AMIN.
Jakarta, Mei 2010
HALAMAN PENGESAHAN ... ii
HALAMAN PERNYATAAN... iii
ABSTRAK... iv
KATA PENGANTAR... v
DAFTAR ISI... vii
DAFTAR TABEL... x
DAFTAR GAMBAR... xi
BAB I. PENDAHULUAN... 1
1.1. LATAR BELAKANG... 1
1.2. RUMUSAN MASALAH... 2
1.3. BATASAN MASALAH... 3
1.4. TUJUAN DAN MANFAAT PENELITIAN... 3
1.4.1. Tujuan Penelitian... 3
1.4.2. Manfaat Penelitian... 3
1.5. METODOLOGI PENELITIAN... 4
1.5.1. Metode Pengumpulan Data... 4
1.5.2. Metode Pengembangan Sistem... 4
1.6. SISTEMATIKA PENULISAN... 5
BAB II. LANDASAN TEORI... 6
2.1. ALGORITMA... 6
2.1.4. Kompleksitas Waktu... 13
2.2. DYNAMIC PROGRAMMING... 13
2.3. KNAPSACK PROBLEM... 15
2.4. BIAYA... 20
2.5. PRODUKSI... 20
2.6. BIAYA PRODUKSI... 21
2.6.1. Analisis Biaya Jangka Pendek... 22
2.7. WEB BASED APPLICATION... 23
2.8. PHP... 23
2.9. MySQL... 24
2.10. STUDI SEJENIS... 26
BAB III. METODOLOGI PENELITIAN... 30
3.1. METODE PENGUMPULAN DATA... 30
3.2. METODE PENGEMBANGAN SISTEM... 31
3.2.1. Communication... 33
3.2.2. Planning... 33
3.2.1. Modelling... 33
3.2.2. Construction... 33
3.2.1. Deployment... 34
3.3. ALASAN MENGGUNAKAN RAD... 34
ix
4.2. PLANNING... 35
4.3. MODELLING... 36
4.3.1. Business Modelling... 36
4.3.2. Data Modelling... 37
4.3.3. Process Modelling... 40
4.3.4. Perancangan Interface... 51
4.4. CONSTRUCTION... 58
4.5. DEPLOYMENT... 59
4.5.1. Spesifikasi Hardware dan Software... 59
4.5.2. Pengenalan Tampilan... 59
4.5.3. Pengujian... 69
4.5.3. Implementasi... 81
BAB V. KESIMPULAN DAN SARAN... 82
5.1. KESIMPULAN... 82
5.2. SARAN... 82
DAFTAR PUSTAKA... 83
Tabel 4.1. Data Admin ...37
Tabel 4.2. Data Kertas ...38
Tabel 4.3. Data Proses ...38
Tabel 4.4. Data Finishing ...39
Tabel 4.5. Data Ukuran ...39
Gambar 2.2. Contoh algoritma menggunakan pseudocode...7
Gambar 2.3. Contoh flowchart perhitungan luas...9
Gambar 2.4. Struktur Runtunan...10
Gambar 2.5. Struktur Percabangan...10
Gambar 2.6. Struktur Perulangan ...11
Gambar 2.7. Algoritma Dynamic Programming Pada 0 1 Knapsack...17
Gambar 2.8. Hasil perhitungan aplikasi optimasi biaya...27
Gambar 2.9. Hasil perhitungan salah satu fitur pada sistem informasi percetakan ...29
Gambar 3.1. The RAD Model...32
Gambar 4.1. Use Case Diagram...36
Gambar 4.2. Flowchart input data kertas ...40
Gambar 4.3. Flowchart update data kertas...41
Gambar 4.4. Flowchart delete data kertas...42
Gambar 4.5. Flowchart input data proses...42
Gambar 4.6. Flowchart update data proses...43
Gambar 4.7. Flowchart delete data proses ...44
Gambar 4.8. Flowchart input data finishing ...44
Gambar 4.9. Flowchart update data finishing ...45
Gambar 4.10. Flowchart delete data finishing ...46
Gambar 4.14. Flowchart perhitungan biaya bahan baku ...48
Gambar 4.15. Flowchart update password administrator ...49
Gambar 4.16. Flowchart proses perhitungan biaya produksi...50
Gambar 4.17. Rancangan tampilan home pengguna ...51
Gambar 4.18. Rancangan tampilan home Administrator ...51
Gambar 4.19. Rancangan tampilan input data kertas ...52
Gambar 4.20. Rancangan tampilan update data kertas ...52
Gambar 4.21. Rancangan tampilan delete data kertas...53
Gambar 4.22. Rancangan tampilan input data proses ...53
Gambar 4.23. Rancangan tampilan update data proses...54
Gambar 4.24. Rancangan tampilan delete data proses ...54
Gambar 4.25. Rancangan tampilan input data finishing ...55
Gambar 4.26. Rancangan tampilan update data finsihing...55
Gambar 4.27. Rancangan tampilan delete data finishing ...56
Gambar 4.28. Rancangan tampilan input data ukuran...56
Gambar 4.29. Rancangan tampilan update data ukuran...57
Gambar 4.30. Rancangan tampilan delete data ukuran ...57
Gambar 4.31. Rancangan tampilan update password administrator ...58
Gambar. 4.32. Tampilan home pengguna...60
Gambar. 4.32. Tampilan home administrator...60
xiii
Gambar. 4.37. Tampilan input data proses cetak ...63
Gambar.4.38. Tampilan update data proses cetak...64
Gambar. 4.39. Tampilan delete data proses cetak ...64
Gambar. 4.40. Tampilan input data finishing...65
Gambar. 4.41. Tampilan update data finishing ...66
Gambar. 4.42. Tampilan delete data finishing...66
Gambar. 4.43. Tampilan input data ukuran kertas ...67
Gambar. 4.44. Tampilan update data ukuran kertas...68
Gambar. 4.45. Tampilan delete data ukuran kertas ...68
BAB I
PENDAHULUAN
1.1. LATAR BELAKANG
Kepuasan pelanggan (Customer Satisfaction) ditentukan oleh
persepsi pelanggan atas performance produk atau jasa dalam memenuhi
harapan pelanggan. Pelanggan merasa puas apabila harapannya terpenuhi
atau akan sangat puas jika harapan pelanggan terlampaui. Terdapat lima
faktor utama yang menentukan tingkat kepuasan pelanggan yaitu kualitas
produk, harga, kualitas pelayanan, emosional, kemudahan untuk
mendapatkan produk atau jasa tersebut (Irawan,2003:37).
CV. Tunas Utama merupakan salah satu perusahaan yang bergerak
di bidang percetakan. Layaknya sebuah perusahaan pada umumnya,
kepuasan pelanggan sangat dikedepankan terutama masalah harga. Dalam
menentukan harga sebuah produk, diperlukan perhitungan biaya produksi
yang dikeluarkan. Terdapat empat faktor yang mempengaruhi biaya
produksi yaitu bahan baku, tenaga kerja, overhead pabrik, dan pengusaha.
( Soeharno,2009:97).
Perusahaan harus menghitung empat faktor yang telah disebutkan,
salah satunya adalah biaya bahan baku. Pada bidang percetakan bahan
baku yang digunakan adalah kertas. Terdapat beberapa jenis kertas yang
memiliki beberapa ukuran panjang dan lebar, perusahaan harus bisa
memilih ukuran mana yang akan digunakan untuk meminimalisir biaya
pada harga pokok produksi. Harga pokok produksi yang didapat digunakan
untuk menentukan harga jual sebuah produk.
Berdasarkan permasalahan yang ada pada CV. Tunas Utama,
penulis menginginkan agar perangkat teknologi, seperti komputer dapat
dipergunakan untuk melakukan perhitungan biaya produksi yang terjadi,
sehingga penulis akan melakukan penelitian dengan judul
“IMPLEMENTASI ALGORITMA DYNAMIC PROGRAMMING PADA
APLIKASI PERHITUNGAN BIAYA PRODUKSI PRODUK
PERCETAKAN BERBASIS WEB (Studi Kasus : CV. Tunas Utama)”.
1.2. RUMUSAN MASALAH
Seperti yang telah dijabarkan dalam subbab sebelumnya, masalah
yang timbul yaitu:
1. Perhitungan biaya produksi yang masih manual.
2. Menentukan ukuran kertas mana yang akan digunakan sebagai bahan
baku produksi.
Dari masalah tersebut maka penulis merumuskan masalah pada
penelitian ini yaitu bagaimana merancang sebuah aplikasi yang dapat
melakukan perhitungan penentuan bahan baku yang digunakan sehingga
dapat menghitung biaya produksi produk percetakan dengan perangkat
1.3. BATASAN MASALAH
Batasan permasalahan pada penelitian ini adalah:
1. Melakukan perhitungan biaya produksi produk percetakan seperti:
brosur, undangan, kalender dan nota.
2. Perhitungan penentuan bahan baku kertas yang digunakan pada proses
pembuatan produk percetakan.
3. Implementasi 0 1 knapsack menggunakan dynamic programming.
1.4. TUJUAN DAN MANFAAT PENELITIAN 1.4.1. Tujuan Penelitian
Tujuan dari penelitian ini yaitu:
1. Menghitung biaya produksi produk percetakan secara
terkomputerisasi.
2. Menentukan ukuran bahan baku kertas yang akan digunakan.
1.4.2. Manfaat Penelitian
Manfaat dari penelitian ini adalah:
1. Aplikasi ini dapat melakukan perhitungan biaya produksi produk
percetakan.
2. Aplikasi ini dapat menentukan ukuran kertas yang akan digunakan
1.5. METODOLOGI PENELITIAN 1.5.1. Metode Pengumpulan Data
1. Observasi
Yaitu terjun langsung ke CV. Tunas Utama, Dengan cara
observasi ini akan diperoleh data yang lengkap dan tepat. Selain itu,
metode observasi mempunyai kelebihan yaitu peneliti mengetahui
sendiri dengan jelas tentang masalah knapsack yang terjadi serta
mengetahui perhitungan biaya produksi.
2. Studi Pustaka
Penelitian yang dilakukan dengan data atau keterangan dari
perpustakaan serta mencari referensi yang diperlukan dari buku–buku
acuan yang ada berhubungan dengan masalah knapsack dan
perhitungan biaya produksi.
1.5.2. Metode Pengembangan Sistem
Metode pengembangan sistem yang akan digunakan dalam penelitian
ini menggunakan RAD (Rapid Application Development) yang
dikembangkan oleh James Martin pada tahun 1971. Metode ini memiliki
lima tahapan (Pressman, 2005:81 ), yaitu :
1. Communication
2. Planning
3. Modelling
4. Construction
1.6. SISTEMATIKA PENULISAN
Dalam skripsi ini, pembahasan yang penulis sajikan terbagi dalam
lima bab, yang secara singkat dapat diuraikan sebagai berikut :
BAB I PENDAHULUAN
Bab ini membahas tentang latar belakang, perumusan
masalah, batasan masalah, tujuan dan manfaat penelitian,
metodologi penelitian dan sistematika penulisan.
BAB II LANDASAN TEORI
Bab ini membahas secara singkat teori yang diperlukan
dalam penelitian skripsi.
BAB III METODOLOGI PENELITIAN
Pada bab ini akan dijelaskan metodologi yang digunakan
penulis dalam melakukan penelitian.
BAB IV HASIL DAN PEMBAHASAN
Dalam bab ini diuraikan hasil analisis dan perancangan
sistem yang dibuat.
BAB V KESIMPULAN DAN SARAN
Bab ini adalah bab terakhir yang menyajikan kesimpulan
serta saran dari apa yang telah diterangkan dan diuraikan
BAB II
LANDASAN TEORI
2.1. ALGORITMA
Untuk menyelesaikan persoalan-persoalan yang kita hadapi, kita perlu menyusun langkah dan strategi. Langkah dan stratergi dalam menyelesaikan suatu persoalan disebut algoritma. Algoritma berasal dari
kata algorism, yaitu penulis buku arab yang terkenal, Abu Ja’far Muhammad Ibnu Musa Al-Khowarizmi (Sismoro,2005:29).
Algoritma adalah kumpulan instruksi/perintah/langkah yang berhingga jumlahnya, dituliskan secara sistematis, dan digunakan untuk menyelesaikan masalah/persoalan logika dan matematika dengan bantuan
komputer (Sismoro,2005:29).
Algoritma adalah urutan langkah-langkah untuk memecahkan suatu
masalah (Munir,2007:4)
Algoritma adalah alur pikiran dalam menyelesaikan suatu pekerjaan, yang dituangkan dalam bentuk tertulis yang dapat dimengerti
oleh orang lain (Sjukani,2007:1).
Algoritma adalah deretan langkah-langkah komputasi yang
mentransformasikan data masukan menjadi keluaran (Cormen,2002:5) Dari beberapa penjabaran di atas, maka dapat disimpulkan bahwa algoritma adalah tahapan-tahapan yang diproses untuk memperoleh
Bila digambarkan maka proses penyelesaian masalah sampai
memperoleh pemecahannya adalah sebagai berikut :
Masalah Algoritma Solusi
Gambar 2.1. Hubungan masalah, algoritma dan solusi
2.1.1. Penyajian Algoritma
Algoritma disajikan dengan tulisan atau gambar. Algoritma yang disajikan dengan tulisan memiliki struktur bahasa tertentu dan
pseudocode, sedangkan yang disajikan dengan gambar, misalnya
flowchart program, data flow diagram, diagram chart dan lain-lain.
1. Pseudocode berasal dari kata pseudo (mirip/menyerupai) dan code,
yang berarti kode yang mirip dengan kode program yang sebenarnya. Sebagai contoh, algoritma yang ditulis dengan pseudocode untuk
menyelesaikan permasalahan akan menukarkan isi dari dua nilai yang berbeda, yaitu A = 10 dan B = 20.
C B
B A
A C
Output (A,B)
Gambar 2.2. Contoh algoritma menggunakan pseudocode
2. flowchart adalah bagan yang menggambarkan urutan logika dari suatu
simbol-simbol yang dipergunakan dalam flowchart beserta dengan nama dan
fungsi masing-masing simbol.
Tabel. 2.1. Simbol-simbol yang dipergunakan dalam flowchart
Simbol Nama Fungsi
terminal symbol menunjukkan awal dan akhir dari
program
preparation symbol memberikan nilai awal pada suatu
variabel
processing symbol Menunjukkan pengolahan
aritmatika dan pemindahan data
input/output symbol menunjukkan proses input atau
output
desicion symbol mewakili operasi perbandingan
dengan logika. predefined process
symbol
proses yang ditulis sebagai
subprogram, yaitu prosedur/fungsi
connector symbol penghubung pada halaman yang
sama
off page connector symbol
penghubung pada halaman yang
berbeda.
Gambar 2.3 memperlihatkan flowchart untuk menghitung luas lingkaran, pertama memulai program kemudian memasukkan jari-jari dan program akan
menghitung luas sesuai dengan rumus yang telah dibuat dan menghasilkan
keluaran berupa luas:
Mulai
Masukan jari_jari
Luas 3,14 x jari_jari x jari_jari
Keluaran Luas
Selesai
Gambar 2.3. Contoh flowchart perhitungan luas
2.1.2. Struktur Dasar Algoritma
Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut bisa berupa aksi (kejadian/tindakan), pemilihan aksi, dan pengulangan aksi. Berikut adalah tiga struktur dasar algoritma,
1. Sequence Structure (Struktur Runtunan)
Struktur runtunan adalah struktur dasar algoritma di mana instruksi akan dieksekusi secara berurutan. Digunakan untuk program yang instruksinya berurutan. Gambar 2.4. menjelaskan algoritma dengan
struktur runtunan, jika langkah 1 telah dikerjakan maka lanjut ke langkah 2 tanpa ada persyaratan.
Langkah 1 Langkah 2
Gambar 2.4. Struktur Runtunan
2. Selection Structure (Struktur percabangan)
Struktur percabangan adalah struktur dasar algoritma di mana instruksi/pernyataan akan dieksekusi apabila memerlukan atau
memnuhi suatu kondisi. Gambar 2.5. menggambarkan algoritma yang berstruktur percabangan, jika kondisi telah terpenuhi maka akan menjalankan langkah 1 dan menghasilkan output tetapi jika kondisi
tidak terpenuhi maka akan menjalankan langkah 2. F
kondisi T
Gambar 2.5. Struktur Percabangan Langkah 1 Langkah 2
3. Repetition Structure (Struktur Perulangan)
Struktur perulangan adalah struktur dasar algoritma di mana instruksi akan dieksekusi secara berulang-ulang apabila memenuhi atau tidak memenuhi suatu kondisi. Gambar 2.5. menggambarkan algoritma
yang berstruktur percabangan, jika kondisi terpenuhi maka akan berulang sampai kondisi tidak terpenuhi.
Gambar 2.6. Struktur Perulangan
2.1.3. Dasar Penyusunan Algoritma
Sejauh ini tidak ada standarisasi tentang bagaimana menyusun algoritma. Secara prinsip anda mempunyai kebebasan untuk menyusun algoritma. Anda dapat menggunakan kata-kata dalam bahasa manusia
ataupun flowchart untuk mewujudkan suatu algoritma.
Walaupun begitu ada beberapa hal yang perlu diperhatikan dalam
menyusun suatu algoritma. Menurut Knuth yang terkutip dalam (Kadir,2005:42), ada lima ciri penting yang harus dimiliki sebuah algoritma, yaitu berupa finiteness, definiteness, masukan, keluaran, dan
efektifitas.
F
T
Kondisi
1. Finiteness, menyatakan bahwa suatu algoritma harus berakhir untuk
semua kondisi setelah memproses sejumlah langkah.
2. Definiteness, menyatakan setiap langkah harus dinyatakan dengan jelas (tidak rancu atau mendua-arti).
3. Masukan, setiap algoritma dapat tidak memiliki masukan atau mempunyai satu atau beberapa masukan. Masukan merupakan suatu
besaran yang diberikan diawal sebelum algoritma diproses.
4. Keluaran, setiap algoritma memiliki keluaran, entah hanya sebuah keluaran atau banyak keluaran. Keluaran merupakan besaran yang
mempunyai kaitan atau hubungan dengan masukan.
5. Efektifitas, setiap algoritma diharapkan bersifat efektif, dalam arti
semua operasi yang dilaksanakan oleh algoritma harus sederhana dan dapat dikerjakan dalam waktu yang terbatas. Secara prinsip, setiap instruksi dalam algoritma dapat dikerjakan oleh orang hanya
dengan menggunakan kertas dan pensil.
Sebuah algoritma dikatakan benar, untuk beragam masukan, jika
algoritma berakhir dengan keluaran yang benar. Pada keadaan ini algoritma menyelesaikan masalah komputasi yang diberikan.
2.1.4. Kompleksitas Waktu
Kompleksitas waktu adalah lamanya waktu tempuh sebuah algoritma. Terdapat tiga keadaan yang bisa muncul selama masa tempuh algoritma yaitu worst case, average case, best case. Penjelasan
masing-masing kompleksitas adalah sebagai berikut : 1. Worst Case
Merupakan waktu tempuh yang bernilai maksimum dari suatu fungsi
f(n) untuk setiap input yang mungkin. Keadaan ini disebut sebagai keadaan terburuk dari sebuah algoritma.
2. Average Case
Merupakan seuatu keadaan dari waktu tempuh yang ekivalen dengan
nilai suatu fungsi f(n).
3. Best Case
Merupakan waktu tempuh yang bernilai minimum dari suatu fungsi f(n)
untuk setiap input yang mungkin. Keadaan ini disebut keadaan terbaik dari sebuah proses algoritma dalam menyelesaikan masalah.
2.2. DYNAMIC PROGRAMMING
Dynamic Programming merupakan prosedur optimasi yang
dikembangkan oleh Richar Bellman pada tahun 1952.
rangkaian keputusan. Menghitung semua urutan keputusan dan kemudian
memilih yang terbaik (Hanchate,2007:3-1).
Dynamic Programming merupakan metode yang secara umum memecahkan masalah optimasi yang melibatkan urutan keputusan, solusi
optimal dari masalah yang asli dapat ditemukan dari solusi optimal
subproblem. (Lew,2007:5)
Dynamic Programming adalah sebuah metode yang dapat digunakan saat permasalahan dapat diurai menjadi beberapa permasalahan.
Dynamic programming menyelesaikan setiap permasalahan hanya sekali
kemudian jawaban tersebut disimpan dalam sebuah tabel, itu dilakukan untuk menghindari perhitungan kembali permasalahan yang ditemui
selanjutnya.(Cormen,2002:323).
Dari beberapa pengertian yang telah dipaparkan sebelumnya, maka dapat disimpulkan bahwa dynamic programming adalah sebuah metode
yang digunakan untuk mendapatkan sebuah solusi masalah utama dengan cara menyatukan solusi-solusi optimal sub masalah.
Dynamic Programming biasa digunakan dalam permasalahan
optimalisasi. Pada sebuah masalah bisa didapatkan banyak kemungkinan solusi. Tiap solusi mempunyai nilai dan kita ingin menemukan sebuah
nilai yang optimal pada masalah tersebut.
1. Karakteristikan bahwa masalah adalah solusi optimal.
2. Secara berulang mendefinisikan nilai dari solusi optimal. 3. Menghitung nilai solusi optimal dengan cara bottom-up.
4. Membangun solusi optimal dari informasi yang telah didapat.
Pada dynamic programming menggunakan teknik bottom-up. Ada tiga maksud dalam teknik bottom-up yaitu;
1. Mulai dengan bagian permasalahan yang paling kecil
2. Kombinasikan solusi yang didapatkan dan ukuran dinaikkan 3. Kerjakan hingga dicapai solusi permasalah asli.
Dynamic programming menggunakan prinsip-prinsip optimal, artinya setiap bagian dari penyelesaian yang dijalankan harus optimal,
solusi bagian tersebut lalu dikombinasikan sehingga menghasilkan solusi yang optimal.
2.3. KNAPSACK PROBLEM
Knapsack Problem dapat digambarkan sebagai berikut terdapat sebuah wadah dengan kapasitas (W) akan diisi dengan benda sebanyak (n),
masing-masing benda memiliki keuntungan berupa value (v) dan berat berupa weight (w). (Kellerer,2004:2)
Knapsack Problem dapat digambarkan sebagai berikut: Seorang Pencuri merampok toko, menemukan sejumlah n benda, benda ke i
barang yang berharga sebanyak mungkin, namun ia hanya bisa membawa
barang seberat W pon.( Cormen,2002:382)
Dari penggambaran yang dipaparkan dapat ditarik kesimpulan bahwa Knapsack Problem dapat digambarkan sebagai memilih dari antara
berbagai macam barang yang paling bernilai mengingat bahwa wadah memiliki kapasitas terbatas. Tujuannya adalah memilih benda yang ada
sehingga keuntungan total yang dipilih dapat menjadi maksimal serta ukuran tidak melebihi batasan.
Dari penjabaran di atas maka muncul dua permasalahan knapsack
yaitu fractional knapsack dan 0-1 knapsack problem. Contoh penerapan dari permasalahan knapsack adalah pemotongan bahan baku manufaktur.
Penjelasan dari kedua versi adalah sebagai berikut : 1. Fractional knapsack problem
Maksud dari fractional knapsack adalah objek-objek yang
tersedia boleh diambil sebagian saja. Misal terdapat objek yang mempunyai berat 5 kg dengan nilai Rp. 5000, maka diperbolehkan hanya mengambil 2 kg dengan nilai Rp. 2000.
2. 0-1 knapsack problem
Inti dari knapsack 0-1 adalah objek yang tersedia harus diambil
secara keseluruhan atau tidak sama sekali
Algoritma mengambil masukan maksimum dengan berat W,
jumlah objek berupa n, dan dua urutan yaitu v= (v1,v2…,vn) dan w= (w1,w2,….,wn). Keadaan ini akan disimpan dalam tabel c[0…n,0…W] yang didalamnya terdapat hasil perhitungan pada baris
pertama dari kolom kiri ke kanan sepanjang W kemudian dilanjutkan pada baris kedua dan seterusnya sebanyak objek n. Pada akhir
perhitungan akan terdapat c[n,W] yang berisi nilai maksimum.
Gambar 2.7. merupakan algoritma dynamic programming pada penyelesaian masalah 0 1 knapsack, pada penyelesaiannya algoritma
ini menyimpan nilai optimal dalam sebuah array :
for w ← 0 to W do
Gambar. 2.7. Algoritma Dynamic Programming Pada 0 1 Knapsack
Dengan melihat tabel c[n,W], maka dapat ditelusuri dari mana nilai optimal itu didapat. Jika c[i,w] = c[i-1,w], maka objek ke i bukan bagian dari solusi, dan melanjutkan penelusuran dengan c[i,w] =
c[i-1,w], Jika objek ke i merupakan bagian dari solusi maka melanjutkan penelusuran dengan c[i,w] = v[i] + c[i-1,w-w[i]], algoritma ini
memakan waktu n x W.
Berikut contoh kasus penggunaan metode dynamic programming dalam menyelesaikan masalah 0 1 knapsack :
Terdapat knapsack dengan ruang maksimal W = 6. Kemudian ingin dimasukkan beberapa jenis barang (n) = 4. Masing-masing
barang memiliki berat(w) dan keuntungan(v) sebagai berikut : (w1,w2,w3,w4) = (3,2,5,4) , (v1,v2,v3,v4) = (6,5,9,8)
Berapakah keuntungan maksimal yang bisa didapat?
Langkah 1 : inisialisasikan array [0,0] dengan nilai 0 karena tidak ada objek yang dipilih.
Kondisi : i=0 v[0]=0 w[0]=0
for w ← 0 to W do c[0,w] ←0 for i ← 1 to n do c[i,0] ← 0
i/w 0 1 2 3 4 5 6 0 0 0 0 0 0 0 0
1 0
2 0
3 0
Kondisi : i=4 v[4]=8 w[4]=4
i/w 0 1 2 3 4 5 6 0 0 0 0 0 0 0 0 1 0 0 0 6 6 6 12
2 0 0 5 6 10 11 15
3 0 0 5 6 10 11 15
4 0 0 5 6 10 11 15
2.4. BIAYA
Biaya adalah semua pengeluaran untuk mendapatkan barang/jasa dari pihak ketiga (Kuswadi,2006:60).
Dalam hal ini biaya adalah uang tunai atau kas atau ekivalen kas (harta non-kas yang dapat ditukar untuk barang atau jasa yang diinginkan) yang dikorbankan untuk barang atau jasa yang diharapkan dapat
memberikan laba baik untuk masa kini maupun masa mendatang. (Kuswadi,2006:60).
Biaya adalah uang yg dikeluarkan untuk mengadakan (mendirikan,
melakukan, dsb) sesuatu.(Kamus Besar Bahasa Indonesia).
Berdasarkan dua penjelasan di atas, maka dapat disimpulkan
bahwa biaya adalah pengeluaran untuk mendapatkan sesuatu yang dinilai dalam bentuk uang.
2.5. PRODUKSI
Produksi ialah suatu proses mentransfer masukan-masukan (inputs)
Produksi adalah suatu usaha atau kegiatan untuk menambah
kegunaan (nilai guna) suatu barang. Kegunaan suatu barang akan bertambah bila memberikan manfaat baru atau lebih dari bentuk semula (Putong,2005:203).
Produksi adalah suatu kegiatan untuk meningkatkan manfaat dengan cara mengkombinasikan faktor-faktor produksi kapital, tenaga
kerja, teknologi, managerial skill (Soeharno,2009:67)
Dari beberapa definisi yang disebutkan, maka dapat ditarik kesimpulan bahwa produksi adalah proses mengubah masukan sebagai
nilai guna/manfaat sebuah barang menjadi keluaran sebagai barang yang memiliki pertambahan nilai guna.
2.6. BIAYA PRODUKSI
Biaya Produksi adalah semua pengeluaran yang dilakukan oleh
perusahaan untuk memperoleh faktor-faktor produksi dan bahan-bahan mentah yang akan digunakan untuk menciptakan barang-barang yang di produksikan perusahaan tersebut (sadono,2006:205)
Biaya Produksi adalah adalah semua pengorbanan yang dikeluarkan untuk suatu proses produksi yang dinyatakan dalam bentuk
uang menurut harga yang berlaku. ( Sumarsono,2007:154)
Berdasarkan beberapa pengertian di atas, dapat disimpulkan bahwa
biaya produksi adalah pengeluaran dalam bentuk uang untuk memperoleh faktor-faktor produksi, yang digunakan dalam proses produksi sehingga menghasilkan suatu produk.
Produksi meliputi empat unsur penting, yang disebut faktor-faktor produksi, yaitu:
1. Biaya bahan baku
Biaya yang dikeluarkan untuk pembelian bahan baku produk. 2. Biaya tenaga kerja
Biaya yang dikeluarkan sebagai upah pekerja dalam melakukan proses produksi dari bahan mentah menjadi barang jadi.
3. Biaya overhead pabrik (BOP)
Biaya yang dikeluarkan sebagai sarana pembantu yang digunakan dalam memproduksi barang.
4. Pengusaha
Biaya atas resiko yang diambil oleh para inisiator suatu perusahaan. Hasil biaya produksi yang telah didapat akan digunakan untuk
menentukan harga satuan produk.
2.6.1. Analisis Biaya jangka pendek
Dalam analisis jangka pendek konsep-konsep biaya yang digunakan
adalah :
1. Biaya tetap, yaitu biaya yang tidak tergantung pada banyak sedikitnya produk yang dihasilkan.
2. Biaya variabel , yaitu biaya yang tergantung pada banyak sedikitnya produk yang dihasilkan.
3. Biaya total, yaitu biaya tetap yang ditambah dengan biaya variabel. 4. Biaya rata-rata yaitu biaya total dibagi produk yang dihasilkan.
5. Biaya marginal yaitu tambahan terhadap biaya total sebagai akibat
ditambahnya satu unit produk yang dihasilkan. 6.
2.7. HARGA SATUAN PRODUK
Harga satuan produk atau harga pokok produksi adalah perhitungan yang mencakup semua biaya yang telah diadakan untuk suatu
produk sampai barang itu terjual, memberikan informasi yang penting untuk penentuan harga jual(Gilarso,2003:128).
Tujuan kalkulasi harga pokok adalah
1. Sebagai dasar untuk menentukan harga jual.
2. Sebagai alat untuk mengawasi efisiensi perusahaan.
3. Untuk penentuan besarnya laba/rugi.
2.8. WEB BASED APPLICATION
Web based application adalah sebuah aplikasi yang berjalan pada jaringan sebagai sebuah sarana aplikasi yang melakukan fungsi atau kemampuannya. (Shi,2003:257). Web based application berjalan pada web
browser untuk saling berinteraksi dengan users dan menggunakan protocol HTTP (HyperText Transfer Protocol) yang memungkinkan user
berinteraksi dengan web pages, menyebarkan dan menghubungkan aplikasi.
2.9. PHP
PHP (Hypertext Preprocessing) adalah bahasa pemrograman yang
cocok untuk pengembangan web dan dapat ditanamkan kedalam HTML (http://www.php.net). PHP adalah bahasa pemrograman script yang paling banyak dipakai saat ini. PHP banyak dipakai untuk memrogram situs web
dinamis, walaupun tidak tertutup kemungkinan digunakan untuk pemakaian lain
Keuntungan menggunakan PHP :
1. Open Source, PHP didistribusikan dibawah lisensi Apache yang membolehkan penggunaan pada sisi komersil maupun nonkomersil.
2. Komunitas, PHP memiliki basis komunitas dann pengembang yang luas. Sangat mudah menemukan programmer yang mahir menggunakan PHP sehingga mudah mendapatkan informasi yang
3. Database support, PHP mendukung koneksi database open source
seperti MySQL dan PostgreSQL, dan komersial seperti Microsoft SQL Server.
4. Multiplatform, PHP bisa berjalan pada berbagai sistem operasi seperti
windows, unix, Mac OS 2, OS/2 dan sistem operasi lainnya.
2.10. MySQL
Basis data MySQL telah menjadi basis data open source paling populer karena memiliki kecepatan performa yang tetap, tingkat keamanan
yang tinggi dan mudah digunakan (http://www.mysql.com/why-mysql). MySQL adalah sebuah perangkat lunak Sistem Manajemen Basis Data
SQL (Database Management Sistem) yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia.
MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial
Swedia MySQL AB, dimana memegang hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan
Michael "Monty" Widenius.
MySQL adalah Relational Database Management Sistem
(RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Dimana setiap orang bebas untuk menggunakan MySQL, namun tidak boleh dijadikan produk turunan yang bersifat
utama dalam basis data sejak lama, yaitu SQL (Structured Query
Language). SQL adalah sebuah konsep pengoperasian basis data, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis. Keandalan
suatu sistem basis data (DBMS) dapat diketahui dari cara kerja optimizer -nya dalam melakukan proses perintah-perintah SQL, yang dibuat oleh user
maupun program-program aplikasinya. Sebagai basis data server, MySQL dapat dikatakan lebih unggul dibandingkan basis data server lainnya dalam query data.
2.11. STUDI SEJENIS
Studi sejenis merupakan salah satu kegiatan penting dalam melakukan penelitian ilmiah.
Pada penelitian ini penulis menggunakan studi sejenis yang akan digunakan sebagai acuan pembuatan aplikasi untuk membedakan hal-hal yang sudah dilakukan dan menentukan hal-hal yang perlu dilakukan. Studi
literatur ini di ambil dari beberapa penelitian yang telah dilakukan sebelumnya.
Pendekatan Mundur” Pada Percetakan Paperindo Harsa. Hingga saat ini pelanggan yang akan mencetak kebutuhan masing-masing, sulit untuk menentukan jumlah biaya yang harus disiapkan untuk kebutuhan cetak mereka. Tujuan penelitian ini adalah merancang sebuah
program komputer untuk menyelesaikan model yang dapat mengoptimalkan biaya produksi dengan mengaplikasikan pemodelan
matematika dalam dunia industri pada suatu perusahaan dengan metode pendekatan mundur. Aplikasi yang dibuat peneliti dapat memenuhi perhitungan yang biasa dilakukan perusahaan dalam merekomendasikan
produk sesuai budget yang tersedia. Kekurangan aplikasi ini tidak bisa merubah ukuran kertas sesuai kehendak pengguna, aplikasi ini hanya
Gambar 2.8. Hasil perhitungan aplikasi optimasi biaya
Gambar 2.8. mengilustrasikan tampilan aplikasi optimasi biaya,
terdapat form yang harus diisi oleh pengguna sesuai kebutuhannya. Setelah form terisi dan diproses maka akan menghasilkan rekomendasi sesuai dengan input yang dilakukan pengguna sebelumnya.
Penelitian yang dilakukan oleh Kevin Tanadi (2008).
persoalan Integer Knapsack dimana terdapat n buah objek dan sebuah
knapsack (karung, tas, buntilan, dsb) dengan kapasitas bobot k. Setiap objek memiliki sebuah bobot (weight) w dan keuntungan (profit) p. Tujuan dari permasalahan ini adalah dengan mengunakan Knapsack
yang hanya dapat menampung beban maksimal k mendapatkan keuntungan sebesar - besarnya. Kita dapat mengimplementasi algoritma
sesuai dengan keperluan kita, kita dapat mengimplementasi algoritma Greedy jika kita hanya memiliki sedikit waktu dan jawaban yang optimal tidak terlalu diperlukan. Kita dapat memilih metode
Kombinasi Brute-Force dan Runut balik apabila ukuran kertas yang dipakai kecil. Dan kita dapat mengimplementasikan algoritma Program
Dinamis apabila kita memiliki cukup waktu untuk mengimplementasikannya dan solusi yang optimal sangatlah penting. Kekurangan karya ilmiah ini hanya sebatas perbandingan dan
tidak diimplementasikan pada suatu kasus.
Penelitian yang dilakukan oleh Henrywae (2008). “Sistem
Informasi Percetakan”. Permasalahan perhitungan pola pemotongan yang terjadi pada percetakan dalam hal ini adalah kertas sebagai bahan
baku produksi. Tujuan aplikasi sebagai salah satu fitur yang terdapat pada sistem ini adalah menghitung jumlah potongan kertas yang dihasilkan serta membuat pola pemotongannya. Aplikasi ini dapat menghitung dan
aplikasi ini, tidak menggunakan database kertas sehingga pengguna harus
menghapal jenis kertas beserta ukuran dan harganya.
Gambar 2.9. Hasil perhitungan salah satu fitur dalam sistem informasi percetakan
Gambar 2.9. mengilustrasikan hasil perhitungan fitur yang tersedia dalam sistem informasi percetakan, setelah pengguna memasukan ukuran awal dan
3.1. METODE PENGUMPULAN DATA
Untuk memenuhi data yang diperlukan dalam penelitian ini, maka
dilakukan pengumpulan data dengan menggunakan beberapa teknik
pengumpulan data yaitu:
1. Observasi
Pada teknik observasi ini, penulis mempelajari secara langsung
proses perhitungan biaya produksi di CV. Tunas Utama, hal ini
dilakukan untuk memahami dan mendapatkan informasi jelas seputar
proses perhitungan bahan baku secara khusus maupun perhitungan
biaya produksi secara umum.
2. Studi Pustaka
Penulis membaca dan mempelajari buku-buku mengenai
dynamic programming terutama pada masalah 0 1 knapsack yang
menjadi masalah pada penentuan bahan baku yang akan digunakan
pada proses produksi serta mempelajari perhitungan yang dikeluarkan
pada tahap produksi atau biasa disebut biaya produksi, serta
buku-buku lainnya yang berkaitan dengan masalah pada penulisan ini.
sebuah model proses pengembangan perangkat lunak sekuensial linear
yang menekankan siklus pengembangan cepat. Model RAD ini merupakan
adaptasi "kecepatan tinggi" dari model sekuensial linear di mana
pengembangan cepat dicapai dengan menggunakan model pendekatan
konstruksi berbasis komponen. Jika kebutuhan dipahami dengan baik,
proses RAD memungkinkan tim pengembang menciptakan "sistem
fungsional yang utuh" dalam periode waktu periode yang sangat pendek
kira-kira 60-90 hari. (Pressman,2010: 82).
Model RAD digunakan dengan tujuan mempersingkat waktu
pengerjaan aplikasi serta proses yang dihasilkan, didapatkan secara cepat
dan tepat. ilustrasi model RAD seperti berikut:
Gambar 3.1. The RAD Model Communication
Modelling Planning
Business modelling Data modeling Process modelling
Construction Component reuse
Automatic code generation
60 – 90 days
Deployment Integration Delivery Feedback
diakomodasi oleh aplikasi yang akan dibuat. Dengan pemahaman terhadap
masalah dan informasi yang akan diakomodasi tadi diharapkan aplikasi
yang akan dibuat ini dapat menjadi solusi yang baik terhadap masalah
serta mengakomodasi informasi yang dibutuhkan pengguna.
3.2.2. Planning
Pada tahap ini melakukan perencanaan proses yang terjadi, perencanaan data yang diperlukan serta pembagian tugas pembuatan
aplikasi kepada beberapa tim yang bekerja secara bersamaan.
3.2.3. Modelling
Pada tahap ini melakukan pemodelan informasi yang harus di
akomodasi, proses-proses yang terjadi pada aplikasi, interface yang akan
dipergunakan, dan data yang diperlukan selama penggunaan aplikasi.
3.2.4 Construction
Pada tahap ini melakukan pembuatan aplikasi dengan
menggunakan komponen yang sudah ada seandainya itu dapat dilakukan
dan menggunakan tools yang dapat mempermudah dan mempercepat
proses pembuatan aplikasi. Hal ini dilakukan sampai aplikasi dapat
berjalan dengan baik dan dapat dipergunakan untuk memecahkan masalah
yang ada.
35
menggunakan aplikasi baru tersebut serta mendapatkan feedback dari
pengguna.
3.3. ALASAN MENGGUNAKAN RAD
Alasan penulis menggunakan RAD dalam implementasi algoritma dynamic programming pada aplikasi perhitungan biaya produksi berbasis
web yaitu:
• Karena aplikasi yang dibuat merupakan aplikasi sederhana yang
mengimplementasikan beberapa baris algoritma dan memerlukan
waktu yang singkat yaitu selama 60 - 90 hari, sehingga metode RAD
tepat dipergunakan karena menekankan siklus perkembangan yang
pendek.
• Karena menggunakan kembali komponen-komponen yang sudah ada
BAB IV
HASIL DAN PEMBAHASAN
4.1. COMMUNICATION
Berdasarkan pada latar belakang permasalahan yang telah
dijabarkan pada sub-bab 1.1, CV. Tunas Utama membutuhkan adanya aplikasi yang berguna untuk melakukan perhitungan biaya produksi terutama pada perhitungan penentuan bahan baku yang akan digunakan
pada proses produksi. Sehingga bahan baku yang digunakan sesuai dengan kebutuhan produksi.
Perhitungan biaya produksi yang telah didapatkan sebagai output
aplikasi perhitungan biaya produksi ini, digunakan sebagai pertimbangan penentuan harga jual kepada konsumen.
4.2. PLANNING
Berdasarkan permasalahan yang telah diketahui pada tahap
sebelumnya, maka dapat diketahui fungsi-fungsi yang harus diakomodasi oleh aplikasi yang akan dibuat seperti perhitungan biaya bahan baku yang digunakan untuk menghitung biaya produksi, kemudian perhitungan biaya
produksi yang digunakan untuk menghitung harga pokok produksi dan selanjutnya perhitungan harga jual kepada konsumen. Dapat diketahui juga
proses bisnis yang terjadi serta data-data yang diperlukan seperti data ertas, proses dan finishing yang akan digunakan untuk perhitungan biaya produksi itu sendiri.
4.3. MODELLING
4.3.1. Business Modelling
Pemodelan ini dilakukan untuk menggambarkan urutan aktifitas yang menghasilkan suatu nilai atau objek yang dapat
dilihat bagi satu pihak atau entitas tertentu.
pengguna
Menghitung biaya produksi Menghitung biaya bahan baku
Memasukkan data kertas Merubah data kertas Menghapus data kertas Memasukkan data proses Administrator Merubah data proses
Menghapus data proses Memasukkan data finishing
Merubah data finishing Menghapus data finishing Memasukkan data ukuran
Merubah data ukuran Menghapus data ukuran
Merubah password
Menghitung biaya produksi
37
4.3.2. Data Modelling
Tahap selanjutnya adalah menyimpan variabel-variabel statis yang akan dipergunakan nantinya pada saat proses perhitungan dilakukan. Oleh karena itu variabel-variabel tersebut
penulis masukkan ke dalam database dengan menggunakan MYSQL.
Berdasarkan observasi yang telah dilakukan peneliti, maka dibutuhkan tabel-tabel untuk penyimpanan data, seperti tabel admin sebagai penyimpan data accountadministrator, tabel kertas sebagai
penyimpan data jenis kertas, harga kertas dan ukuran awal kertas, tabel proses sebagai penyimpan data proses dan harga cetak, tabel
finishing sebagai penyimpan data proses dan harga finishing, dan tabel ukuran sebagai penyimpan data ukuran potong standar kertas. Lima tabel tersebut terdapat pada database tunasutama.dbf.
Adapun rincian pembuatan tabel sebagai berikut :
1. admin
Nama Tabel : admin
Keterangan : account admin
Tabel 4.1. Data Admin
Nama_field Tipe Panjang Keterangan Username
Password
Varchar Varchar
25 60
Username admin Password admin
2. kertas
Nama Tabel : kertas Keterangan : data kertas Primary Key : id_kertas
Tabel 4.2. Data Kertas
Nama_field Tipe Panjang Keterangan id_kertas Jenis kertas Panjang kertas 1 Lebar kertas 1 Harga kertas 1 Panjang kertas 2 Lebar kertas 2 Harga kertas 2 Panjang kertas 3 Lebar kertas 3 Harga kertas 3
3. proses
Nama Tabel : proses Keterangan : data proses
Primary Key : id_proses
Tabel 4.3. Data Proses
Nama_field Tipe Panjang Keterangan Id_proses Nama proses Harga gestener
GTO_46
4. finishing
Nama Tabel : finishing Keterangan : data finishing Primary Key : id_finishing
Tabel 4.4. Data Finishing
Nama_field Tipe Panjang Keterangan Id_finishing
Id Finishing Nama finishing Harga per cm Harga minimal
5. ukuran
Nama Tabel : ukuran
Keterangan : data ukuran kertas Primary Key : id_ukuran
Tabel 4.5. Data Ukuran
Nama_field Tipe Panjang Keterangan Id_ukuran Nama ukuran Ukuran panjang Ukuran lebar
4.3.3. Process Modelling
Pada tahap sebelumnya telah didefinisikan data yang dibutuhkan, data ini kemudian ditransformasi untuk mendapatkan aliran informasi yang mungkin dan diperlukan untuk
mengimplementasikan fungsi bisnis. Penulis menggunakan
flowchart untuk menggambarkan proses bisnis yang telah
dimodelkan sebelumnya. Flowchart aplikasi perhitungan biaya produksi :
1. Flowchart proses input data kertas.
Gambar 4.2. menjelaskan proses input data kertas, setelah memasukkan data kemudian di cek oleh aplikasi, jika data
kertas belum ada maka data yang dimasukkan akan disimpan tetapi jika sudah ada maka akan keluar.
Mulai
input data kertas
Gambar 4.2. Flowchartinput data kertas
Data kertas input = kertas dbase
Y
N
Data kertas input
Selesai
Simpan data kertas
2. Flowchart proses update data kertas
Gambar 4.3. menjelaskan proses update data kertas, setelah memilih jenis kertas, kemudian aplikasi menampilkan data kertas tersebut, setelah data dirubah maka akan disimpan
kembali ke dalam database.
Mulai
Pilih data kertas
Tampilkan data kertas
Data kertas pilihan
Update data kertas
Selesai
Gambar 4.3. Flowchartupdate data kertas
3. Flowchart proses delete data kertas.
Gambar 4.4. menjelaskan proses hapus data kertas, setelah data kertas ditampilkan kemudian memilih data kertas yang akan
dihapus, lalu hapus data kertas tersebut maka data kertas yang dipilih akan terhapus dari database.
Mulai
Pilih data kertas
Tampilkan data kertas
Data kertas pilihan
Deletedata kertas
Selesai
Gambar 4.4. Flowchartdelete data kertas 4. Flowchart proses input data proses
Gambar 4.5 menjelaskan proses input data proses, setelah
memasukkan data kemudian di cek oleh aplikasi, jika data proses belum ada maka data yang dimasukkan akan disimpan tetapi jika sudah ada maka akan keluar.
Mulai
input jenis proses
Jenis proses input = jenis proses dbase
Jenis Proses input
Selesai
Y
N
Simpan jenis proses
43
5. Flowchart proses update data proses
Gambar 4.6. menjelaskan proses update data proses, setelah memilih proses, kemudian aplikasi menampilkan data proses tersebut, setelah data dirubah maka akan disimpan kembali ke
dalam database.
Mulai
Pilih jenis proses
Tampilkan jenis proses
Jenis Proses pilihan
Update jenis proses
Selesai
Gambar 4.6. Flowchart update data proses
6. Flowchart proses delete data proses
Gambar 4.7. menjelaskan proses hapus data proses, setelah data proses ditampilkan kemudian memilih data proses yang
akan dihapus, lalu hapus data proses tersebut maka data proses yang dipilih akan terhapus dari database.
Mulai
Pilih jenis proses
Tampilkan jenis proses
jenis proses pilihan
Delete data proses
Selesai
Gambar 4.7. Flowchartdelete data proses 7. Flowchart proses input data finishing
Gambar 4.8. menjelaskan proses input data finishing, setelah
memasukkan data kemudian di cek oleh aplikasi, jika data finishing belum ada maka data yang dimasukkan akan disimpan tetapi jika sudah ada maka akan keluar.
Mulai
input jenis finishing
jenis finishing input= jenis finishing dbase
Gambar 4.8. Flowchartinput data finishing
Jenis finishing
Selesai
Y
N
Simpan jenis finishing
8. Flowchart proses update data finishing.
Gambar 4.9. menjelaskan proses update data finishing, setelah memilih finishing, kemudian aplikasi menampilkan data finishing tersebut, setelah data dirubah maka akan disimpan
kembali ke dalam database.
Mulai
Pilih finishing
Tampilkan finishing
Finishing pilihan
Update finishing
Selesai
Gambar 4.9. Flowchartupdate data finishing
9. Flowchart proses delete data finishing.
Gambar 4.10 menjelaskan proses hapus data finishing, setelah data finishing ditampilkan kemudian memilih data finishing
yang akan dihapus, lalu hapus data finishing tersebut maka data finishing yang dipilih akan terhapus dari database.
Mulai
Pilih jenis finishing
Tampilkan jenis finishing
jenis finishing pilihan
Delete data finishing
Selesai
Gambar 4.10. Flowchartdelete data finishing 10.Flowchart proses input data ukuran kertas.
Gambar 4.11. menjelaskan proses input data ukuran kertas,
setelah memasukkan data kemudian di cek oleh aplikasi, jika data ukuran kertas belum ada maka data yang dimasukkan akan disimpan tetapi jika sudah ada maka akan keluar.
Mulai
input jenis ukuran
11.Flowchart proses update data ukuran kertas.
jenis uran in
uk
put=jenis ukuran dbase
Jenis ukuraninput
Y
N
Selesai
Simpan jenis ukuran
11.Flowchart proses delete data ukuran kertas.
Gambar 4.12. menjelaskan proses update data ukuran kertas, setelah memilih ukuran kertas, kemudian aplikasi menampilkan data ukuran kertas tersebut, setelah data dirubah
maka akan disimpan kembali ke dalam database.
Mulai
Pilih ukuran kertas
Tampilkan ukuran kertas
Ukuran kertas pilihan
Update ukuran kertas
Selesai
Gambar 4.12. Flowchartupdate data ukuran kertas
12.Flowchart proses delete data ukuran kertas.
Gambar 4.13. menjelaskan proses hapus data ukuran kertas,
setelah data ukuran kertas ditampilkan kemudian memilih data ukuran kertas yang akan dihapus, lalu hapus data ukuran kertas
tersebut maka data ukuran kertas yang dipilih akan terhapus dari database.
Mulai
Pilih ukuran kertas
Tampilkan ukuran kertas
Ukuran kertas pilihan
Deleteukuran kertas
Selesai
Gambar 4.13. Flowchartdelete data ukuran kertas 13.Flowchart proses perhitungan biaya bahan baku.
Gambar 4.14. menjelaskan proses perhitungan biaya bahan
baku, setelah memasukan quantity, jenis kertas kemudian ukuran potong, maka aplikasi akan melakukan perhitungan sesuai rumus yang telah dimasukkan dan akan menghasilkan
biaya bahan baku produksi.
Mulai
Quantitty, jenis kertas,ukuran, potongan
14.Flowchart proses update data password administrator Gambar 4.14. Flowchart perhitungan biaya bahan baku
Selesai
Biaya bahan baku Quantity/potongan x harga
Biaya bahan baku
14.Flowchartupdate password administrator
Mulai
inputpassword lama dan passwordbaru 1
md5.password lama
Password lama enkrip input
Passwordlama enkrip dbase
N Passwordlama enkrip
input = passwordlama enkrip dbase
Gambar 4.15. Flowchartupdate password administrator Password baru 1
= password baru
md5.password baru
Password baru enkrip
Y
N
Y
UpdatePassword
Selesai
Gambar 4.15 menjelaskan tentang proses perubahan password
administrator, pertama masukan password lama dan password
baru, kemudian password lama di enkripsi dan di cek oleh aplikasi. Jika password lama sama dengan password dalam
database maka password baru di enkripsi dan di simpan ke dalam database.
15.Flowchart proses perhitungan biaya produksi
Gambar 4.16 menjelaskan tentang proses perhitungan biaya
produksi, setelah memasukan quantity, jenis kertas, proses ukuran potong kemudian finishing, maka aplikasi akan
melakukan perhitungan sesuai rumus yang telah dimasukkan dan akan menghasilkan harga jual persatuan produk.
Gambar 4.16. Flowchart proses perhitungan biaya produksi
Biaya bahan baku Quantity/potongan x harga Mulai
quantity, ukuran, jenis kertas, proses, finishing,potongan
Biaya produksi biaya bahan baku + proses + finishing quantity
Biaya produksi
Selesai
4.3.4. Perancangan Interface
Berikut ini adalah perancangan halaman tampilan pada aplikasi perhitungan biasa produksi produk percetakan yang penulis buat.
1. Perancangan halaman home pengguna.
Berikut merupakan tampilan awal yang disajikan pada saat mengakses aplikasi ini.
Header
Form Login
Form masukan variabel biaya
produksi
Harga satuan produk
Gambar 4.17. Rancangan tampilan home pengguna 2. Perancangan tampilan home Administrator
Berikut merupakan tampilan awal admin setelah login
dengan account administrator.
Header
Menu
Form masukan variabel biaya
bahan baku
Biaya bahan baku
52
3. Perancangan tampilan input data kertas.
Berikut merupakan tampilan untuk memasukkan data kertas setelah login dengan accountadministrator.
Header
Menu aplikasi
Form input data kertas
Gambar 4.19. Rancangan tampilan input data kertas 4. Perancangan tampilan update data kertas
Berikut merupakan tampilan untuk merubah data kertas
setelah login dengan accountadministrator.
Header
Menu aplikasi
Form update data kertas
Gambar 4.20. Rancangan tampilan update data kertas
5. Perancangan tampilan delete data kertas.
Berikut merupakan tampilan untuk menghapus data kertas setelah login dengan accountadministrator.
Header
Menu aplikasi
Form delete data kertas
Gambar 4.21. Rancangan tampilan delete data kertas 6. Perancangan tampilan input data proses
Berikut merupakan tampilan untuk memasukkan data proses
setelah login dengan accountadministrator.
Header
Menu aplikasi
Form input data proses
Gambar 4.22. Rancangan tampilan input data proses
7. Perancangan tampilan update data proses.
Berikut merupakan tampilan untuk merubah data proses setelah login dengan accountadministrator.
Header
Menu aplikasi
Form update data proses
Gambar 4.23. Rancangan tampilan update data proses 8. Perancangan tampilan delete data proses
Berikut merupakan tampilan untuk menghapus data kertas
setelah login dengan accountadministrator.
Header
Menu aplikasi
Form delete data proses
Gambar 4.24. Rancangan tampilan delete data proses
9. Perancangan tampilan input data finishing
Berikut merupakan tampilan untuk memasukkan data finishing setelah login dengan accountadministrator.
Header
Menu aplikasi
Form input data finishing
Gambar 4.25. Rancangan tampilan input data finishing 10.Perancangan tampilan update data finishing
Berikut merupakan tampilan untuk merubah data finishing
setelah login dengan accountadministrator.
Header
Menu aplikasi
Form update finishing
Gambar 4.26. Rancangan tampilan update data finsihing
11.Perancangan tampilan delete data finishing
Berikut merupakan tampilan untuk menghapus data finishing setelah login dengan accountadministrator.
Header
Menu aplikasi
Form delete data finishing
Gambar 4.27. Rancangan tampilan delete data finishing 12.Perancangan tampilan input data ukuran kertas.
Berikut merupakan tampilan untuk memasukkan data ukuran
kertas setelah login dengan accountadministrator.
Header
Menu aplikasi
Form input data ukuran
Gambar 4.28. Rancangan tampilan input data ukuran
13.Perancangan tampilan update data ukuran kertas.
Berikut merupakan tampilan untuk merubah data ukuran kertas setelah login dengan accountadministrator.
Header
Menu aplikasi
Form update ukuran
Gambar 4.29. Rancangan tampilan update data ukuran 14.Perancangan tampilan delete data ukuran
Berikut merupakan tampilan untuk menghapus data ukuran
kertas setelah login dengan accountadministrator.
Header
Menu aplikasi
Form delete data ukuran
Gambar 4.30. Rancangan tampilan delete data ukuran
15.Perancangan tampilan update password administrator
Berikut merupakan tampilan untuk merubah data password administrator setelah login dengan accountadministrator.
Header
Menu aplikasi
update password
administrator
Gambar 4.31. Rancangan tampilan update password
administrator
4.3.5. Pemodelan knapsack
Tahap ini merupakan pemodelan knapsack yang terjadi serta pembahasan algoritma sebagai solusi dari masalah knapsack tersebut. Berikut merupakan algoritma dynamic programming pada
penyelesaian masalah knapsack : for w ← 0 to W do c[0,w] ←0 end for
for i ← 1 to n do c[i,0] ← 0 end for
for i ← 1 to n do for w=0 to W do if w[i] ≤ w then
if v[i] + c[ i,w-w[i] ] > c[i – 1, w ] then c[i,w] ←v[i] + c[i-1, w-w[i] ] else
c[i,w] ← c [i–1,w] end if
else
c[i,w] ← c[i-1,w] end if
end for end for
Algoritma dynamic programming akan digunakan sebagai penentuan bahan baku yang akan digunakan pada proses produksi. Berikut merupakan contoh implementasi algoritma dynamic
programming pada suatu kasus yang terjadi pada aplikasi:
Terdapat ukuran awal kertas pada gambar A dengan P= 3 dan L=2 akan di potong pada gambar B menjadi ukuran P1=2 dan L1=1,
berapakan potongan yang akan dihasilkan?
Langkah 1 : menentukan variabel-variabel yang akan dipergunakan untuk perhitungan knapsack. Berikut variabel yang telah ditentukan:
Ruang -> W = L = 2
Jumlah objek yang akan dipotong -> n=(P1,L1) = 2
Berat -> w =(w1,w2)=(P1,L1)= (2,1)
Keuntungan -> v=(v1,v2)=(P/P2, P/P1)= (3,1) 1
2
2 3
A B
Langkah 2 : inisialisasikan array [0,0] dengan nilai 0 karena tidak
ada objek yang dipilih.
Langkah 3 : isi tabel berupa array dengan algoritma yang telah diketahui.
Langkah 4 : isi tabel berupa array berikutnya dengan algoritma yang telah diketahui.
if 1 ≤ 2 then
4.4. CONSTRUCTION
Penulis membuat aplikasi perhitungan biaya produksi produk
percetakan ini dengan bahasa pemrograman PHP versi 5.2.2 serta MYSQL versi 5.0.41 sebagai tempat penyimpan data yang diperlukan.
Penulis juga memanfaatkan komponen yang sudah ada untuk mempercepat dan mempermudah proses pembuatan aplikasi.
4.5. DEPLOYMENT
Pada tahap akhir dari metode pengembangan cepat ini dilakukan
integrasi dan penyebaran aplikasi yang akan dijabarkan sebagai berikut : 4.5.1. Spesifikasi hardware dan software
Penulis memerlukan dua macam perangkat, yaitu perangkat
keras (hardware) dan juga perangkat lunak (software). Berikut adalah spesifikasi yang penulis akan gunakan dalam tahap pengujian :
i/w 0 1 2 0 0 0 1 0 0 3 2 0 1 3
Hasil Akhir Potongan
2
1 1 1
1. Perangkat keras (hardware)
Penulis menggunakan sebuah laptop. 2. Perangkat Lunak (software)
Beberapa perangkat lunak yang digunakan untuk membuat
aplikasi ini yaitu : a. PHP versi 5.2.2
b. MYSQL versi 5.0.41 c. Notepad ++
d. Mozilla firefox 3.5.4
4.5.2. Pengenalan tampilan
Tampilan aplikasi perhitungan biaya produksi produk percetakan
yang telah dibuat adalah sebagai berikut : 1. Tampilan home pengguna.
Berikut merupakan tampilan home bagi pengguna saat mengakses
aplikasi ini. Terdapat form yang harus diisi sehingga pengguna mendapatkan harga satuan produk.
65
2. Tampilan home administrator
Berikut merupakan tampilan home bagi administrator setelah melakukan login terlebih dahulu. Terdapat form untuk menghitung biaya bahan baku produksi.
Gambar. 4.33. Tampilan home administrator
3. Tampilan input data kertas.
Berikut merupakan tampilan input data kertas bagi administrator
setelah melakukan login terlebih dahulu. Terdapat form yang harus
diisi sebagai masukkan data kertas, jenis kertas yang akan dimasukkan memiliki minimal satu ukuran berupa panjang dan lebar
serta satu satuan harga dan maksimal memliki tiga ukuran berupa panjang dan lebar serta tiga satuan harga.
Gambar. 4.34. Tampilan input data kertas
4. Tampilan update data kertas
Berikut merupakan tampilan update data kertas bagi administrator
setelah melakukan login terlebih dahulu. Terdapat form untuk merubah data kertas yang telah dipilih, yang kemudian akan
disimpan kembali ke dalam database.
5. Tampilan delete data kertas.
Berikut merupakan tampilan delete data kertas bagi administrator
setelah melakukan login terlebih dahulu. Terdapat data kertas yang telah ditampilkan kemudian memilih data mana yang akan dihapus.
Gambar. 4.36. Tampilan delete data kertas 6. Tampilan input data proses cetak
Berikut merupakan tampilan input data proses cetak bagi
administrator setelah melakukan login terlebih dahulu. Terdapat beberapa form yang harus diisi. Form diisi dengan harga proses
cetak masing-masing mesin.
Gambar. 4.37. Tampilan input data proses cetak
7. Tampilan update data proses cetak
Berikut merupakan tampilan update data proses cetak bagi
administrator setelah melakukan login terlebih dahulu. Terdapat form untuk merubah data proses cetak yang telah dipilih, kemudian
akan disimpan kembali ke dalam database setelah perubahan data selesai.
8. Tampilan delete data proses cetak
Berikut merupakan tampilan delete data proses cetak bagi
administrator setelah melakukan login terlebih dahulu. Terdapat data proses cetak yang telah ditampilkan, kemudian memilih proses cetak
mana yang akan dihapus.
Gambar. 4.39. Tampilan delete data proses cetak 9. Tampilan input data finishing
Berikut merupakan tampilan input data finishing bagi administrator
setelah melakukan login terlebih dahulu. Terdapat form yang harus
diisi dengan jenis finishing termasuk harga finishing tersebut, kemudian akan disimpan ke dalam database.
Gambar. 4.40. Tampilan input data finishing
10.Tampilan update data finishing
Berikut merupakan tampilan update data finishing bagi
administrator setelah melakukan login terlebih dahulu. Terdapat form untuk merubah data finishing yang telah dipilih, kemudian disimpan kembali ke dalam database setelah perubahan selesai
dilakukan.