PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
SISTEM PENDUKUNG PENGAMBILAN KEPUTUSAN PENGOPTIMALAN KEUNTUNGAN BERDASARKAN KOMPOSISI PENJUALAN DENGAN MENGGUNAKAN PEMROGRAMAN LINEAR
SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
Oleh Hendrikus Hendra Knoba NIM 115314012
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2017
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DECISION SUPPORT SYSTEM FOR OPTIMIZING PROFITS BASED ON SELLING COMPOSITION USING LINIER PROGRAMMING
THESIS Presented as Partial Fulfillment of the Requirements to Obtain the Sarjana Komputer Degree in Technical Information Study Program
By Hendrikus Hendra Knoba Student Number : 115314012
TECHNICAL INFORMATION STUDY PROGRAM SCIENCE AND TECHNOLOGY FACULTY SANATA DHARMA UNIVERSITY 2017
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN PERSEMBAHAN KALAU ANDA TIDAK BISA MENJADI ORANG YANG PINTAR DAN CERDAS, JADILAH ORANG YANG RAJIN DAN PEKERJA KERAS. SEBAB ORANG YANG PINTAR SERING DIKALAHKAN OLEH MEREKA YANG RAJIN DAN ORANG YANG CERDAS SERING DIKALAHKAN OLEH MEREKA YANG PEKERJA KERAS
v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRAK Hendra Knoba, Hendrikus. 2017. Sistem Pendukung Pengambilan Keputusan Pengoptimalan Keuntungan Berdasarkan Komposisi Penjualan dengan Menggunakan Pemrograman Linear. Skripsi. Yogyakarta: Program Studi Teknik Informatika, Jurusan Teknik Informatika, Fakultas Sains dan Teknologi, Universitas Sanata Dharma. Dalam sebuah proses produksi, kombinasi biaya produksi dan harga jual akan menghasilkan keuntungan tertentu. Dalam mencari keuntungan, suatu unit usaha perlu mencari cara untuk melakukan produksi dan penjualan seoptimal mungkin. Untuk dapat memproduksinya secara optimal maka diperlukan penentuan jumlah produksi tiap item produksinya dalam jangka waktu tertentu. Penentuan jumlah produksi ini dilakukan dengan mempertimbangkan permintaan dari konsumen. Pengambilan keputusan produksi ini pada umumnya hanya dibuat secara konvensional, dimana suatu item hanya akan diproduksi ketika ada permintaan terhadap item tersebut. Untuk memperoleh komposisi yang optimal maka dapat digunakan metode pemrograman linear. Metode ini merupakan metode pengambilan keputusan untuk mendapatkan alternatif kombinasi terbaik dengan mempertimbangkan beberapa faktor penentu dan batasan-batasannya. Pada penelitian ini, akan dibangun suatu sistem pendukung pengambilan keputusan pengoptimalisasi komposisi penjualan yang dilakukan pada Rumah Makan Padang dimana faktor-faktor produksinya berbentuk linear. Keuntungan yang optimum akan diperoleh dari sekumpulan item-item pendukung lain yang sejenis dan satu tujuan. Dengan adanya sistem ini diharapkan dapat secara efektif membantu pemilik usaha untuk menntukan komposisi produksi makanan. Adapun langkah-langkah penelitian yang dibuat sebagai berikut; (1) Identifikasi masalah, Permasalahan yang diteliti pada obyek penelitian (Rumah Makan Padang), yakni pemilik menginginkan keuntungan yang maksimal tetapi sesuai dengan kendalakendala, seperti kendala biaya produksi dan kendala kapasitas tempat (batas maksimal produksi). (2) Pemilihan metode pemecahan masalah, berdasarkan permasalahan tersebut, penulis memilih metode pendukung pengambilan keputusan dengan pemrograman linear. Metode ini dipilih karena bentuk permasalahannya yang bersifat linear, dimana jumlah produksi menentukan besarnya keuntungan yang diperoleh. Bentuk program linearnya sendiri diselesaikan dengan metode simpleks. (3) Pengumpulan data yang dibutuhkan untuk melaksanakan model keputusan tersebut. Untuk melaksanakan model keputusan, pengumpulan data yang dibutuhkan salah satunya dengan cara wawancara dan pemberian kuisioner. (4) Mengimplementasikan model tersebut. Pada tahap ini desain perangkat lunak didasari sebagai sebuah program lengkap. (5) Melaksanakan solusi terpilih. Hasil yang ditampilkan dari sistem tidak menutup kemungkinan bahwa pengguna harus mengikuti keputusan yang dibuat sistem, melainkan keputusan berada pada pemilik usaha itu sendiri. Sehingga dari proses penelitian ini dapat menghasilkan Sistem Pendukung Pengambilan Keputusan Pengoptimalan Kentungan Berdasarkan Komposisi Penualan yang memberikan keluaran berupa komposisi produksi makanan dengan keuntungan viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
yang optimal bagi pemilik Rumah Makan Padang. Hasil perhitungan metode simpleks pada sistem ini sama dengan hasil perhitungan metode simpleks dengan menggunakan aplikasi QM dan PHPSimplex.com. Kata kunci : Sistem Pendukung Pengambilan Keputusan, Keuntungan, Komposisi Penjualan, Pemrograman Linear (Metode Simpleks).
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRACT Hendra Knoba, Hendrikus. 2017. Decision Support System for Optimizing Profits Based on Selling Composition Using Linier Programming. Thesis. Yogyakarta: Information Technology Study Program, Information Technology Department, Science and Technology Faculty, Sanata Dharma University. In production, the combination of expenses and selling price would contribute certain profits. In order to gain profits, a company needs to find strategy to optimize the production and the selling at the same time. In order to increase the productivity it is needed to determine a proper amount of produced items in a certain period of time which based on market‟s demand. The decision making on this considers the amount of the items the consumers request. It has been done conventionally. As it is aimed to gain optimal composition on the whole process, linier programming can be used. The method is a decision making in order to map best alternative combination with considering some determined factors and its limitations. This research is about to build a decision support system for omptimalizing its profit, which applied in Rumah Makan Padang for its linier production factors. The maximum profit would be gained from a bundle of supporting items with similar type and function. This system is expected to effectively help bussines owners in determining their food‟s production composition. The procedure that has been taken in this research is elaborated in the following steps; (1) identifying problems. It is found that the owner of Rumah Makan Padang is expecting highest profit but then facing some problems such as production cost and space (production items limit) at the same time. (2) Deciding problem solving method. Based on the problems identifed, the researcher chose linier programming as the method of decision support system to be used. The method was chosen for its linearity in forming problems which the amount of producted items is the determination of expected profit. The form of linier programming is done by using simpleks method. (3) Gathering needed data for the model. In order to undergo the decision model the researcher used interview and distribute questionnaire. (4) Implementing the mode. In this stage, the software design is based on a complete program. (5) Conducting chosen solution. In this case, the final decision still depends on the owner although the system is able to provide it. Therefore, the result of this research may be a supporting element for the production activity. The system provides production composition for maximum profit. The siimplex method result is equal to the results that gained using QM app and PHPSimplex.com. Keywords: Decision Support System, profit, selling compossition, Linier programming (Simplex method)
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATA PENGANTAR
Puji syukur kepada Tuhan Yang Maha Esa yang telah memberikan berkat-Nya sehingga penulis dapat menyelesaikan skripsi dengan judul “Sistem Pendukung Pengambilan Keputusan Pengoptimalan Keuntungan Berdasarkan Komposisi Penjualan Dengan Menggunakan Pemrograman Linear”. Penulisan skripsi ini diajukan untuk memenuhi syarat memperoleh gelar Sarjana Komputer Program Studi Teknik Informatika Universitas Sanata Dharma. Penulis menyampaikan terima kasih kepada semua pihak yang secara langsung maupun tidak langsung turut mengambil peran dalam terselesaikannya tulisan ini. Secara khusus, terima kasih sebesar-besarnya ditujukan untuk pihakpihak berikut. 1) Ibu Dr. Anastasia Rita Widiarti, selaku Ketua Program Studi Teknik Informatika. 2) Ibu P.H. Prima Rosa, S.Si., M.Sc. selaku Dosen Pembimbing yang telah meluangkan
banyak
waktunya,
di
sela-sela
kesibukannya,
untuk
membimbing penulis dari awal pemilihan topik ini sampai terselesaikannya tulisan ini. 3) Bapak Maximus Kenoba, Ibu Maria Gorrety da Silva dan Maria Hendrika Inda Knoba, selaku orang tua dan adik penulis, yang dengan sabar memberikan doa dan dorongan yang besar dalam penyelesaian tulisan ini. 4) Reginaldis Isabella Sado, terima kasih atas nasihat, waktu, motivasi, kesabaran dan semangatnya sampai dengan terselesaikannya tulisan ini.
xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5) Paska, Sisil, Simeon, Vinna, teman-temanku seperjuangan yang dengan senantiasa meluangkan waktunya untuk membantu dan memberikan semangat serta dorongan sampai dengan terselesaikannya tulisan ini . 6) Himpunan Keluarga Besar FLOBAMORATA Paingan, yang dengan caranya masing-masing selalu memberikan hiburan dan dorongan. 7) Semua pihak yang tidak dapat disebutkan satu per satu, penulis mengucapkan terima kasih. . Penulis menyadari bahwa tulisan ini masih memiliki banyak kekurangan. Oleh karena itu, penulis mengharapkan kritik dan saran yang membangun. Semoga tugas akhir ini bermanfaat bagi semua pihak.
Yogyakarta, 18 Januari 2017
Penulis
xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR ISI
HALAMAN JUDUL .............................................................................................. i HALAMAN PERSETUJUAN SKRIPSI ........... Error! Bookmark not defined. HALAMAN PENGESAHAN SKRIPSI ............................................................. iv HALAMAN PERSEMBAHAN ........................................................................... v PERNYATAAN KEASLIAN KARYA .............. Error! Bookmark not defined. LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPRNTINGAN AKADEMIS ........................................................... vi ABSTRAK ........................................................................................................... vii ABSTRACT ........................................................................................................... x KATA PENGANTAR .......................................................................................... xi DAFTAR ISI ....................................................................................................... xiii DAFTAR GAMBAR ........................................................................................... xv DAFTAR TABEL .............................................................................................. xvi BAB I - PENDAHULUAN.................................................................................... 1 1.1
Latar Belakang ........................................................................................ 1
1.2
Rumusan Masalah .................................................................................... 4
1.3
Batasan Masalah ....................................................................................... 4
1.4
Tujuan Penelitian ...................................................................................... 4
1.5
Manfaat Penelitian .................................................................................... 5
1.6
Metodologi Penelitian .............................................................................. 5
1.7
Sistematika Penulisan ............................................................................... 7
BAB II - LANDASAN TEORI ............................................................................. 8 2.1
Sistem Pendukung Pengambilan Keputusan ............................................ 8
2.1.1
Pengertian Sistem Pendukung Pengambilan Keputusan ...................... 8
2.1.2
Tujuan Sistem Pendukung Pengambilan Keputusan ............................ 9
2.1.3
Karakteristik dan Kapabilitas SPPK ................................................... 11
2.1.4
Komponen Sistem Pendukung Pengambilan Keputusan .................... 14
2.1.5
Manfaat Sistem Pendukung Pengambilan Keputusan ........................ 16
xiii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.1.6 2.2 2.2.1
Keterbatasan Sistem Pendukung Pengambilan Keputusan ................. 17 Pemrograman Linear .............................................................................. 18 Pemrograman Linear dengan Metode Simpleks ................................. 21
BAB III - PERANCANGAN SISTEM .............................................................. 23 3.1 3.1.1 3.2
Gambaran Umum Sistem ....................................................................... 23 Diagram Konteks ................................................................................ 24 Analisis Kebutuhan Pengguna ................................................................ 24
3.2.1
Diagram Use Case .............................................................................. 24
3.2.2
Aktor dalam Use Case ........................................................................ 25
3.3
Perancangan Subsistem Manajemen Data .............................................. 28
3.4
Perancangan Subsistem Manajemen Model ........................................... 31
3.4.1
Influence Diagram (Diagram Pengambilan Keputusan) .................... 31
3.4.2
Flowchart Diagram ............................................................................. 32
3.4.3
Proses Perhitungan Pemrograman Linear ........................................... 34
3.4.3.1 Variabel Penentu Keputusan ............................................................... 34 3.4.3.2 Penyelesaian Program Linear dengan Metode Simpleks .................... 35 3.4.3.3 Tabel Perhitungan Metode Simpleks .................................................. 37 3.5
Perancangan Subsistem Manajemen Dialog .......................................... 43
BAB IV - IMPLEMENTASI SISTEM .............................................................. 45 4.1
Implementasi Subsistem Manajemen Data ............................................ 45
4.2
Implementasi Subsistem Manajemen Model ......................................... 46
4.3
Implementasi Subsistem Manajemen Dialog ......................................... 60
4.4
Pengujian ................................................................................................ 65
BAB V - PENUTUP ............................................................................................ 77 5.1
Kesimpulan ............................................................................................. 77
5.2
Saran ....................................................................................................... 77
DAFTAR PUSTAKA .......................................................................................... 79
xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR GAMBAR
3.1 – Diagram Konteks ..........................................................................................24 3.2 – Diagram Use Case.........................................................................................25 3.3 – Influence Diagram ........................................................................................31 3.4 – Diagram Flowchart .......................................................................................32 3.5 – Tampilan Utama (Halaman Utama) ..............................................................43 3.6 – Tampilan Form Tambah Menu dan Edit Menu.............................................44 3.7 – Tampilan Form Batasan ................................................................................44 4.1 – Tampilan Sistem – Halaman Utama .............................................................60 4.2 – Tampilan Sistem – Form Tambah Menu dan Edit Menu..............................60 4.3 – Tampilan Sistem – Form Kelola Batasan .....................................................62 4.4 – Tampilan Sistem – Output ............................................................................62 4.5 – Tampilan Sistem – Lihat Komposisi .............................................................64
xv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR TABEL
3.1 – Narasi Use Case ............................................................................................26 3.2 – Data Menu .....................................................................................................30 3.3 – Data Batasan..................................................................................................31
xvi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB I PENDAHULUAN
1.1
Latar Belakang Saat ini teknologi telah menjadi bagian yang tidak terpisahkan dari
kehidupan
setiap
memudahkan
individu
penggunanya
maupun dalam
organisasi. menyelesaikan
Teknologi berbagai
hadir macam
untuk hal.
Perkembangan yang pesat tidak hanya pada teknologi perangkat keras dan perangkat lunak saja, tetapi metode komputasi juga ikut berkembang. Salah satu metode komputasi yang cukup berkembang saat ini adalah metode sistem pengambilan keputusan (Decision Support System). Sistem pengambilan keputusan (Decision Support System) merupakan sistem komputer yang interaktif dalam membantu pembuatan keputusan dengan menggunakan dan memanfaatkan data serta model untuk memecahkan masalah semi terstruktur. Salah satu masalah yang sering terjadi adalah masalah dalam bidang produksi. Setiap perusahaan yang bergerak dalam bidang produksi selalu berusaha mencari cara untuk meminimalkan biaya dan memaksimalkan hasil atau keuntungan dari produksi tersebut. Selain itu, perusahaan-perusahaan tersebut dituntut untuk dapat memanfaatkan sumber daya yang dimiliki dengan seoptimal mungkin. Persoalan yang harus dihadapi oleh perusahaan-perusahaan tersebut adalah bagaimana mengkombinasikan faktor-faktor produksi atau sumber daya yang dimiliki dengan tepat agar diperoleh keuntungan yang maksimal dengan biaya yang seminimal mungkin.
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
Dalam sebuah proses produksi, kombinasi biaya produksi dan harga jual akan menghasilkan keuntungan tertentu. Dalam mencari keuntungan, perusahaan perlu mencari cara untuk melakukan produksi dan penjualan seoptimal mungkin. Untuk dapat memproduksinya secara optimal maka diperlukan penentuan jumlah produksi tiap item produksinya dalam jangka waktu tertentu. Penentuan jumlah produksi ini dilakukan dengan mempertimbangkan permintaan dari konsumen. Pengambilan keputusan produksi ini pada umumnya hanya dibuat secara konvensional, dimana suatu item hanya akan diproduksi ketika ada permintaan terhadap item tersebut. Objek yang diangkat pada penelitian ini adalah Rumah Makan Padang. Rumah Makan Padang merupakan bidang usaha yang bergerak dalam bidang pengolahan makanan yang memproduksi berbagai makanan siap saji, antara lain nasi, ayam goreng, ayam bakar, ikan, rendang, telur, sayur dan sebagaiya. Produk yang dihasilkan Rumah Makan Padang pada umumnya memiliki jumlah yang tetap setiap harinya. Akan tetapi, kegiatan produksinya tidak dapat dilakukan secara maksimal karena adanya kendala-kendala. Rumah Makan Padang tentunya ingin memperoleh keuntungan yang maksimal. Oleh karena itu, berbagai produk mereka perlu diproduksi seoptimal mungkin agar keuntungannya juga maksimal. Bahan baku produksi di Rumah Makan Padang hampir sama untuk beberapa produknya, namun diolah menjadi produk yang berbeda. Tiap produk tersebut memberikan kontribusi yang berbeda terhadap pendapatan, ada yang lebih besar ada pula yang lebih sedikit.Keuntungannya diperoleh berdasarkan komposisi penjualan yang optimal dan sesuai dengan batasan yang ada. Batasan yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
dimaksud misalnya berupa batasan modal produksi, batasan waktu pengerjaan, dan batas maksimal produksi. Untuk memperoleh komposisi yang optimal maka dapat digunakan metode pemrograman linear. Metode ini merupakan metode pengambilan keputusan untuk mendapatkan alternatif kombinasi terbaik dengan mempertimbangkan beberapa faktor penentu dan batasan-batasannya. Faktor-faktor yang dimaksud dapat berupa pengalokasian sumber daya secara optimal dan biaya jasa produksi. Batasan yang dibuat berupa batasan modal produksi, batasan waktu pengerjaan, dan batasan maksimal produksi. Tujuan dari metode ini adalah untuk memaksimumkan atau meminimumkan sesuatu dimana tingkat pencapaiannya ini dibatasi oleh kendalakendala tertentu. Optimalisasi komposisi penjualan pada Rumah Makan Padang seperti yang telah dijelaskan di atas berbentuk linear, dimana keuntungan yang optimum akan diperoleh dari sekumpulan item-item pendukung lain yang sejenis dan satu tujuan. Bentuk permasalahan yang linear ini dapat diselesaikan dengan metode pengambilan keputusan berdasarkan pemrograman linear. Oleh karena itu, penulis mengangkat
judul
KEPUTUSAN
penelitian
SISTEM
PENGOPTIMALAN
PENDUKUNG
KEUNTUNGAN
PENGAMBILAN BERDASARKAN
KOMPOSISI PENJUALAN DENGAN MENGGUNAKAN PEMROGRAMAN LINEAR.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
1.2
Rumusan Masalah Berdasarkan latar belakang di atas, penulis merumuskan inti permasalahan
penelitian ini ke dalam pertanyaan berikut. 1) Bagaimana membangun suatu sistem pendukung pengambilan keputusan penentuan komposisi makanan yang dapat mengoptimalkan keuntungan berdasarkan beberapa batasan yang ditetapkan? 2) Apakah SPPK yang dibangun dapat secara efektif membantu pemilik usaha untuk menentukan komposisi produksi makanan?
1.3
Batasan Masalah Dalam penelitian ini, penulis membatasi masalah-masalah yang akan
dibahas dalam tulisan ini, antara lain sebagai berikut. 1) Optimasi keuntungan berdasarkan komposisi penjualan yang dilakukan hanya berdasarkan beberapa batasan yang ditetapkan. 2) Proses perhitungan komposisi yang berbentuk linear ini dilakukan dengan pemrograman linear metode simpleks. 3) Sistem dibuat berbasis desktop menggunakan bahasa pemrograman C#.
1.4
Tujuan Penelitian Penelitian ini bertujuan untuk membangun sistem pendukung pengambilan
keputusan penentuan komposisi produksi makanan yang dapat mengoptimalkan keuntungan. Sistem ini diharapkan dapat membantu pemilik usaha untuk menentukan komposisi produksi makanan yang optimal.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
1.5
Manfaat Penelitian Setelah sistem ini selesai dibuat, beberapa manfaatnya adalah: 1) dapat
membantu pemilik usaha dalam menentukan komposisi item yang diproduksi untuk memperoleh keuntungan yang optimal sesuai dengan batasan yang ditetapkannya, 2) dapat dipergunakan sebagai alat bantu simulasi bagi pengguna yang sedang belajar pemrograman linear.
1.6
Metodologi Penelitian 1. Studi Pustaka Mencari refrensi yang berasal dari berbagai sumber yang ada seperti dari buku, artikel internet yang berkaitan dengan topik permasalahan yang akan diteliti. Refrensi inilah yang akan digunakan sebagai dasar dan pengembangan yang akan dibuat. 2. Wawancara Mencari hal-hal apa saja yang dibutuhkan dalam pengoptimalan keuntungan. 3. Sistem Pendukung Pengambilan Keputusan 1)
Identifikasi masalah Permasalahan yang diteliti pada obyek penelitian (Rumah Makan Padang), yakni pemilik menginginkan keuntungan yang maksimal tetapi sesuai dengan kendala-kendala, seperti kendala biaya produksi dan kendala kapasitas tempat (batas maksimal produksi).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
2)
Pemilihan metode pemecahan masalah Berdasarkan permasalahan tersebut, penulis memilih metode pendukung pengambilan keputusan dengan pemrograman linear. Metode ini dipilih karena bentuk permasalahannya yang bersifat linear, dimana jumlah produksi menentukan besarnya keuntungan yang diperoleh. Bentuk program linearnya sendiri diselesaikan dengan metode simpleks.
3)
Pengumpulan data yang dibutuhkan untuk melaksanakan model keputusan tersebut Untuk melaksanakan model keputusan, pengumpulan data yang dibutuhkan salah satunya dengan cara wawancara dan pemberian kuisioner untuk memenuhi pertanyaan yang ada pada rumusan masalah.
4)
Mengimplementasikan model tersebut Pada tahap ini desain perangkat lunak didasari sebagai sebuah program lengkap.
5)
Melaksanakan solusi terpilih. Hasil yang ditampilkan dari sistem tidak menutup kemungkinan bahwa pengguna harus mengikuti keputusan yang dibuat sistem, melainkan keputusan berada pada pemilik usaha itu sendiri.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
1.7
Sistematika Penulisan BAB I
PENDAHULUAN Bab ini berisi tentang latar belakang masalah, rumusan masalah, batasan masalah, tujuan penelitian dan sistematika penulisan.
BAB II
LANDASAN TEORI Bab ini berisi tentang dasar teori yang akan digunakan untuk pembahasan dalam penulisan laporan tugas akhir ini yang meliputi Sistem Pendukung Pengambilan Keputusan dan PemrogramanLinear.
BAB III
PERANCANGAN SISTEM Bab ini berisi tentang metodologi penelitian yang akan dilakukan selama penelitian, terdiri dari : Analisis Masalah, Perancangan Sistem, Analisis Data.
BAB IV
IMPLEMENTASI SISTEM Pada bab ini berisi penerapan proses perhitungan pada sistem, perancangan sistem, dan uji coba.
BAB V
PENUTUP Pada bab iniberisi rangkuman dan kesimpulan dari keseluruhan penelitian ini disertai dengan saran-saran pengembangan sistem.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB II LANDASAN TEORI
2.1
Sistem Pendukung Pengambilan Keputusan
2.1.1 Pengertian Sistem Pendukung Pengambilan Keputusan Daihani (2001) menjelaskan bahwa Sistem Pendukung Pengambilan Keputusan (SPPK) adalah suatu sistem informasi spesifik yang ditujukan untuk membantu manajemen dalam mengambil keputusan yang berkaitan dengan persoalan yang bersifat semi struktur. Sistem ini memiliki fasilitas untuk menghasilkan berbagai alternatif yang secara interaktif dapat digunakan oleh pemakai. Menurut Alter (2002), SPPK atau Decision Support System (DSS) berupa sebuah sistem informasi interaktif yang menyediakan informasi pemodelan dan pemanipulasian data. Sistem tersebut digunakan untuk membantu mengambil keputusan dalam situasi yang semi-terstruktur dan situasi yang tidak terstruktur. SPPK biasanya dibangun untuk mendukung solusi atas suatu masalah atau mengevaluasi suatu peluang. Sistem ini tidak dapat mengotomatisasikan pengambilan keputusan melainkan memberikan kemungkinan-kemungkinan kepada
sang pengambil
keputusan untuk
melakukan
berbagai
analisis
menggunakan model-model yang tersedia. Persoalan pengambilan keputusan pada dasarnya adalah bentuk pemilihan dari berbagai alternatif tindakan yang mungkin dipilih melalui mekanisme tertentu dengan harapan akan menghasilkan sebuah keputusan yang terbaik.
8
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
Pada umumnya, dalam membuat sebuah keputusan, terdapat langkahlangkah utama, yakni sebagai berikut. 1) Identifikasi masalah 2) Pemilihan metode pemecahan masalah 3) Pengumpulan data yang dibutuhkan untuk melaksanakan model keputusan tersebut 4) Mengimplementasikan model tersebut 5) Mengevaluasi sisi positif dari setiap alternatif yang ada 6) Melaksanakan solusi terpilih.
2.1.2 Tujuan Sistem Pendukung Pengambilan Keputusan Menurut Turban (2005), Tujuan dari Sistem Pendukung Pengambilan Keputusan ialah : 1. Membantu manajer dalam pengambilan keputusan atas masalah semi terstruktur. 2. Memberikan dukungan atas pertimbangan manajer dan bukannya dimaksudkan untuk menggantikan fungsi manajer. 3. Meningkatkan efektivitas keputusan yang diambil manajer lebih dari pada perbaikan efisiensinya. 4. Kecepatan komputasi. Komputer memungkinkan para pengambil keputusan untuk melakukan banyak komputasi secara cepat dengan biaya rendah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
5. Peningkatan produktivitas. Membangun suatu kelompok pengambil keputusan, terutama para pakar, bisa sangat mahal. Pendukung terkomputerisasi
bisa
mengurangi
ukuran
kelompok
dan
memungkinkan para anggotanya untuk berada di berbagai lokasi yang berbeda-beda (menghemat biaya perjalanan). Selain itu, produktivitas staf pendukung (misalnya analisis keuangan dan hukum) bisa ditingkatkan. Produktivitas juga bisa ditingkatkan menggunakan peralatan optimasi yang menentukan cara terbaik untuk menjalankan sebuah bisnis. 6. Dukungan kualitas. Komputer bisa meningkatkan kualitas keputusan yang dibuat. Sebagai contoh, semakin banyak data yang diakses, makin banyak juag alternatif yang bisa dievaluasi. Analisis resiko bisa dilakukan dengan cepat dan pandangan dari para pakar (beberapa dari mereka berada di lokasi yang jauh) bisa dikumpulkan dengan cepat dan dengan biaya yang lebih rendah. Keahlihan bahkan bisa diambil langsung dari sebuah sistem komputer melalui metode kecerdasan tiruan. Dengan komputer, para pengambil keputusan bisa melakukan simulasi
yang
kompleks,
memeriksa
banyak
skenario
yang
memungkinkan, dan menilai berbagai pengaruh secara cepat dan ekonomis.
Semua
kapabilitas
tersebut
mengarah
kepada
keputusanyang lebih baik. 7. Berdaya saing. Manajemen dan pemberdaya sumber daya perusahaan. Tekanan persaingan menyebabkan tugas pengambilan keputusan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
menjadi sulit. Persaingan didasarkan tidak hanya pada harga, tetapi juga pada kualitas, kecepatan, kustomasi produk, dan dukungan pelanggan. Organisasi harus mampuh secara sering dan cepat mengubah mode operasi, merekayasa ulang proses dan struktur, memberdayakan karyawan, serta berinovasi. Teknologi pengambilan keputusan bisa menciptakan pemberdayaan yang signifikan dengan cara memperbolehkan seseorang untuk membuat keputusan yang baik secara cepat, bahkan jika mereka memiliki pengetahuan yang kurang.
2.1.3 Karakteristik dan Kapabilitas SPPK Sebagaimana dikutip oleh kusrini (2007), Turban (2005), mendeskripsikan adanya perbedaan karakteristik SPPK dengan sistem informasi manajemen (SIM). Adapun karakteristik SPPK adalah sebagai berikut : 1. SPPK menyediakan dukungan bagi pengambil keputusan utamanya pada situasi semi terstruktur dan tak terstruktur dengan memadukan pertimbangan manusia dan informasi terkomputerisasi. 2. Dukungan disediakan untuk berbagai level manajerial yang berbeda, mulai dari pimpinan puncak sampai manajer lapangan. 3. Dukungan disediakan bagi individu dan juga group. Berbagai masalah organisasional melibatkan pengambilan keputusan dari orang dalam group. Untuk masalah yang strukturnya lebih sedikit seringkali hanya membutuhkan keterlibatan beberapa individu dari departemen dan level organisasi yang berdeda.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
4. SPPK menyediakan dukungan ke berbagai keputusan yang berurutan atau saling berkaitan. 5. SPPK mendukung berbagai fase proses pengambilan keputusan: intelligence, design, choice dan implementation. 6. SPPK mendukung berbagai proses pengambilan keputusan dan style yang berbeda-beda; ada kesesuaian SPPK dan atribut pengambil keputusan individu. 7. SPPK selalu bisa beradaptasi sepanjang masa. Pengambil keputusan keputusan harus reaktif, mampu mengatasi perubahan kondisi secepatnya dan beradaptasi untuk membuat SPPK selalu bisa menangani perubahan ini. SPPK adalah fleksibel, sehingga user dapat menambahkan, menghapus, mengkombinasikan, mengubah, atau mengatur kembali element dasar (menyediakan respon cepat pada situasi yang tak diharapkan). Kemampuan ini memberikan analisis yang tepat waktu dan cepat setiap saat. 8. Pengguna merasa seperti dimudahkan ketika menggunakan SPPK. Kapabilitas grafis yang sangat kuat, dan antarmuka manusia-mesin interaktif dengan satu bahasa alami dapat sangat meningkatkan keefektifitasan SPPK. 9. SPPK mencoba untuk meningkatkan efektivitas dari pengambilan keputusan (akurasi, jangka waktu, kualitas), lebih daripada efisiensi yang bisa diperoleh (biaya membuat keputusan, termasuk biaya penggunaan komputer).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
10. Pengambil keputusan memiliki kontrol menyeluruh terhadap semua langkah proses pengambilan keputusan dalam menyelesaikan masalah. SPPK secara khusus ditujukan untuk mendukung dan tak menggantikan pengambil keputusan. Pengambil keputusan dapat menindaklanjuti rekomendasi komputer sembarang waktu dalam proses dengan tambahan pendapat pribadi atau pun tidak. 11. SPPK mengarah pada pembelajaran, yaitu mengarah pada kebutuhan baru dan penyempurnaan sistem, yang mengarah pada pembelajaran tambahan, dan begitu selanjutnya dalam proses pengembangan dan peningkatan SPPK secara berkelanjutan. 12. User/pengguna harus mampu menyusun sendiri sistem yang sederhana. Sistem yang lebih besar dapat dibangun dalam organisasi user tadi dengan melibatkan sedikit saja bantuan dari spesialis di bidang Information Systems (IS). 13. SPPK biasanya mendayagunakan berbagai model (standar atau sesuai keinginan user) dalam menganalisis berbagai keputusan. Kemampuan pemodelan ini menjadikan percobaan yang dilakukan dapat dilakukan pada berbagai konfigurasi yang berbeda. Berbagai percobaan tersebut lebih lanjut akan memberikan pandangan dan pembelajaran baru. 14. SPPK dalam tingkat lanjut dilengkapi dengan komponen knowledge yang bisa memberikan solusi yang efisien dan efektif dari berbagai masalah yang pelik.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
2.1.4 Komponen Sistem Pendukung Pengambilan Keputusan Komponen-komponen SPPK menurut Turban (2005) adalah sebagai berikut : 1. Subsistem Manajemen Data Subsistem data merupakan komponen Sistem Pendukung Pengambilan Keputusan penyedia data bagi sistem. Data dimasukan dalam suatu pangkalan data (database) yang diorganisasikan oleh suatu sistem yang disebut dengan sistem manajemen pangkalan data (Database Management System / DBMS). Melalui manajemen inilah data dapat diambil dan diekstraksi dengan cepat. 2. Subsistem Manajemen Model Keunikan dari Sistem Pendukung Pengambilan Keputusan adalah kemampuannya dalam mengintegrasikan data dengan model-model keputusan. 3. Subsistem Manajemen Dialog Sistem Pendukung Pengambilan Keputusan memiliki fasilitas yang mampu mengintegrasikan sistem yang terpasang dengan pengguna secara interaktif. Fasilitas atau subsistem ini dikenal sebagai subsistem dialog. Melalui sistem dialog inilah sistem sistem diartikulasikan dan diimplementasikan
sehingga
pengguna
atau
pemakai
dapat
berkomunikasi dengan sistem yang dirancang. Fasilitas yang dimiliki oleh subsistem ini dapat dibagi atas tiga komponen, yaitu: a) Bahasa Aksi (Action Language)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
Suatu perangkat lunak yang dapat digunakan untuk berkomunikasi dengan sistem. Komunikasi ini dilakukan melalui berbagai pilihan media seperti keyboard, joystick, atau key-function lainnya. b) Bahasa Tampilan (Display atau Presentation Language) Suatu perangkat yang berfungsi sebagai sarana untuk menampilkan sesuatu. Peralatan yang digunakan untuk merealisasikan tampilan ini diantaranya adalah grafik monitor, printer, plotter dan lainlain. 4. Subsistem Manajemen Basis Pengetahuan Permasalahan yang dihadapi oleh SPPK akan bertambah kompleks dan rumit sehingga diperlukan tambahan pengetahuan untuk memberikan solusi yang baik di luar kemampuan SPPK biasa. Pengetahuan tersebut disediakan oleh sistem pakar atau sistem cerdas yang lain. Komponen pengetahuan bisa terdiri atas satu atau lebih sistem cerdas. SPPK yang dilengkapi dengan sistem cerdas atau sistem pakar disebut Intelligent DSS atau Expert Support System atau Knowledge-Based DSS.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
2.1.5 Manfaat Sistem Pendukung Pengambilan Keputusan Menurut Turban (2005), Sistem Pendukung Pengambilan Keputusan dapat memberikan berbagai manfaat atau keuntungan bagi pemakainya. Keuntungan yang dimaksud diantaranya meliputi hal-hal berikut. 1) Sistem Pendukung Pengambilan Keputusan memperluas kemampuan pengambil keputusan dalam memproses data/informasi bagi pemakainya. 2) Sistem Pendukung Pengambilan Keputusan
membantu pengambil
keputusan dalam hal penghematan watu yang dibutuhkan untuk memecahkan masalah terutama berbagai masalah yang sangat kompleks dan tidak terstruktur. 3) Sistem Pendukung Pengambilan Keputusan dapat menghasilkan solusi dengan lebih cepat serta hasilnya dapat diandalkan. 4) Walaupun suatu Sistem Pendukung Pengambilan Keputusan, mungkin saja tidak mampu memecahkan masalah yang dihadapi oleh pengambil keputusan, namun ia dapat menjadi stimulan bagi pengambil keputusan dalam memahami persoalannya karena Sistem Pendukung Pengambilan Keputusan menyajikan berbagai alternatif. 5) Sistem Pendukung Pengambilan Keputusan dapat menyediakan bukti tambahan untuk memberikan pembenaran sehingga dapat memperkuat posisi pengambil keputusan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
2.1.6 Keterbatasan Sistem Pendukung Pengambilan Keputusan Seperti yang dikatakan Turban (2005), disamping memiliki berbagai keuntungan dan manfaat, Sistem Pendukung Pengambilan Keputusan juga memiliki berbagai keterbatasan, antara lain sebagai berikut. 1) Ada beberapa kemampuan manajemen dan bakat manusia yang tidak dapat dimodelkan, sehingga model yang ada dalam sistem tidak semuanya mencerminkan persolan sebenarnya. 2) Kemampuan suatu Sistem Pendukung Pengambilan Keputusan (SPPK) terbatas
pada
pembendaharaan
pengetahuan
yang
dimilikinya
(pengetahuan dasar serta model dasar). 3) Proses-proses yang dapat dilakukan oleh Sistem Pendukung Pengambilan Keputusan biasanya tergantung juga pada kemampuan perangkat lunak yang digunakannya. 4) Sistem Pendukung Pengambilan Keputusan memiliki kemampuan intuisi seperti yang dimiliki oleh manusia. Karena walau bagaimana pun canggihnya suatu Sistem Pendukung Pengambilan Keputusan (SPPK), dia hanyalah suatu kumpulan perangkat keras, perangkat lunak dan sistem operasi yang tidak dilengkapi dengan kemampuan berpikir. Sistem Pendukung Pengambilan Keputusan tidak ditekankan untuk membuat keputusan. Dengan sekumpulan kemampuan untuk mengolah informasi/data yang diperlukan dalam proses pengambilan keputusan, sistem hanya berfungsi sebagai alat bantu manajemen. Jadi, sistem ini tidak dimaksudkan untuk menggantikan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
fungsi pengambil keputusan dalam membuat keputusan. Sistem ini dirancang untuk membantu pengambilan keputusan dalam melaksanakan tugasnya. Secara luas, dapat dikatakan bahwa Sistem Pendukung Pengambilan Keputusan dirancang untuk menghasilkan berbagai alternatif yang ditawarkan kepada para pengambil keputusan dalam melaksanakan tugasnya. Hal tersebut dikarenakan sebagian besar proses pengambil keputusan yaitu perumusan masalah, pencarian alternatif telah dikerjakan oleh sistem, maka diharapkan para manajer akan lebih cepat dan akurat dalam menangani masalah yang dihadapinya. Jadi, secara umum dapat dikatakan bahwa Sistem Pendukung Pengambilan Keputusan memberikan manfaat bagi manajemen dalam meningkatkan efektivitas dan efisiensi kerjanya terutama dalam proses pengambil keputusan.
2.2
Pemrograman Linear Menurut Muslich (2009), pemrograman linear atau linear programming
adalah salah satu pendekatan matematika yang paling sering dipergunakan dan diterapkan dalam keputusan-keputusan manajerial. Tujuan dari penggunaan pemrograman linear adalah untuk menyusun suatu model yang dapat dipergunakan untuk membantu pengambilan keputusan dalam menentukan alokasi yang optimal dari sumber daya perusahaan ke berbagai alternatif. Dikarenakan sumber daya yang dipakai oleh suatu perusahaan mempunyai nilai ekonomis dan dapat menghasilkan laba, di samping biayanya maka penggunaan model pemrograman linear dalam hal ini adalah mengalokasikan sumber daya tersebut sedemikian rupa sehingga laba akan maksimum atau alternatif biayanya adalah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
minimum. Dengan demikian, alokasi yang harus dibuat tergantung dari kendala tersedianya sumber daya. Sedangkan tujuan dari alokasi ini adalah untuk memaksimalkan laba bagi perusahaan atau meminimalkan biayanya. Ada empat kondisi utama yang diperlukan bagi penerapan linear programming. Pertama, harus adanya sumber daya yang terbatas. Keterbatasaan ini mencakup tenaga kerja, peralatan, keuangan, bahan, dan sebagainya. Tanpa keterbatasan ini, tidak akan timbul masalah. Kedua, ada suatu fungsi tujuan seperti memaksimalkan laba atau meminimalkan biaya. Ketiga, harus ada linearitas, misalnya barang-barang yang diproduksi oleh suatu mesin adalah identik, atau semua jam kerja yang tersedia dari seorang pekerja adalah sama produktifnya. Kondisi lain yang berhubungan dengan masalah adalah dapat dibaginya suatu hal. Pemrograman linear mengasumsikan bahwa barang dan sumber daya dapat dibagi-bagi, bahkan ke dalam pecahan. Aminudin (2005) menjelaskan tentang bentuk umum model program linear, yakni sebagai berikut. Optimumkan ∑
dengan batasan: ∑
atau
......(2.1)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
∑
Di mana : Z
= fungsi tujuan yang dicari nilai optimalnya (maksimal, minimal)
cj
= kenaikan nilai Z apabila ada pertambahan tingkat kegiatan x j dengan satu satuan unit atau sumbangan setiap satuan keluaran kegiatan j terhadap Z
n
= macam kegiatan yang menggunakan sumber atau fasilitas yang tersedia
m
= macam batasan sumber atau fasilitas yang tersedia
xj
= tingkat kegiatan ke-j
aij = banyaknya sumber i yang diperlukan untuk menghasilkan setiap unit keluaran kegiatan j bi
= kapasitas sumber i yang tersedia untuk dialokasikan ke setiap unit kegiatan
Model pemrograman linear dalam bidang-bidang fungsional antara lain dapat diterapkan dalam bidang transportasi, penugasan, bidang keuangan, produksi, pemasaran, personalia, perencanaan fasilitas, dan sebagainya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
2.2.1 Pemrograman Linear dengan Metode Simpleks Menurut Aminudin (2005), sebelum menggunakan metode simpleks dalam memecahkan persoalan program linear, bentuk dari program linear tersebut perlu diubah menjadi bentuk standarnya. Bentuk standar ini digunakan dalam metode simpleks yaitu pada langkah pertama sebelum persoalan diringkas dalam tabel simpleks. Beberapa aturan bentuk program linear baku atau standar yakni sebagai berikut. 1. Semua batasan/kendala adalah persamaan (dengan sisi kanan non-negatif). 2. Semua variabel keputusan adalah non-negatif. 3. Fungsi tujuan dapat berupa maksimasi dan minimasi. Semua kendala harus berbentuk persamaan. Oleh karena itu, jika ada kendala yang berbentuk pertidaksamaan harus dikonversikan menjadi persamaan dengan memasukkan variabel semu slack atau surplus. Selain itu, Aminudin (2005) juga menjelaskan bahwa persoalan program linear dapat diselesaikan melalui langkah-langkah yakni sebagai berikut. 1. Formulasikan dan standarisasikan modelnya. 2. Bentuk tabel awal simpleks berdasarkan informasi model di atas. 3. Tentukan kolom kunci di antara kolom-kolom variabel yang ada, yaitu kolom yang mengandung nilai (cj-Zj) paling positif untuk kasus maksimasi dan atau mengandung nilai (cj-Zj) paling negatif untuk kasus minimasi. 4. Tentukan baris kunci di antara baris-baris variabel yang ada, yaitu baris yang memiliki rasio kuantitas dengan nilai positif terkecil. ...... (2.2)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
5. Bentuk tabel berikutnya dengan memasukkan variabel pendatang ke kolom variabel dasar dan mengeluarkan variabel perantau dari kolom tersebut, serta lakukan transformasi baris-baris variabel. Dengan menggunakan rumus transformasi sebagai berikut. baris baru selain baris kunci = (baris lama-(rasio kunci x baris kunci lama)) baris kunci baru = (baris kunci lama / angka kunci) rasio kunci = (unsur kolom kunci / angka kunci) 6. Lakukan uji optimalitas. Dengan kriteria jika semua koefisien pada baris (cj-Zj) sudah tidak ada lagi yang bernilai positif (untuk kasus maksimasi) atau sudah tidak ada lagi yang bernilai negatif (untuk kasus minimasi), berarti tabel sudah optimal. Jika kriteria di atas belum terpenuhi maka diulangi mulai langkah ke-3 sampai ke-6, hingga terpenuhi kriteria tersebut.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB III PERANCANGAN SISTEM
3.1
Gambaran Umum Sistem Sistem yang akan dibuat bertujuan untuk memperoleh komposisi
penjualan yang dapat memberikan keuntungan yang maksimal. Penggunanya adalah pemilik tempat usaha yang bergerak dalambidang produksi serta pada pengguna yang sedang belajar pemrograman linear. Dengan menggunakan sistem ini, diharapkan para pengguna yang kebingungan menentukan komposisi penjualan dapat terbantu dalam menentukan jumlah item yang harus diproduksi pada hari berikutnya agar mendapatkan keuntungan yang maksimal. Sistem akan menampilkan komposisi terbaik yang sesuai dengan batasan. Selain itu bagi pengguna yang sedang belajar pemrograman linear diharapkan agar dapat mengetahui tahap-tahap perhitungan menggunakan pemrograman linear. Pada bab ini akan dijelaskan tentang analisis dan rancangan dari sisitem yang akan dibuat. Rancangan tersebut dibuat dalam Diagram Konteks. Diagram tersebut akan menjelaskan tentang proses-proses yang perlu dibuat dalam sistem beserta dengan data-data yang akan menjadi input maupun output sistem.
23
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
3.1.1 Diagram Konteks Merupakan diagram yang terdiri dari suatu proses dan menggambarkan ruang lingkup suatu sistem. Diagram konteks merupakan level tertinggi dari Data Flow Diagram (DFD) yang menggambarkan seluruh input ke sistem dan ke output dari sistem. Gambar 3.1 berikut menjelaskan tentang proses umum pada sistem. Pengguna (pemilik usaha atau pelajar pemrograman linear) menginput data-data menu dan batasan produksi pada tempat usaha ke dalam sistem. Selanjutnya sistem akan memproses data menu dan batasan yang dimasukan dan mengeluarkan output berupa solusi kepada pengguna berupa komposisi terbaik sesuai dengan batasan serta menampilkan tahap-tahap proses perhitungan pemrograman linearnya. solusi
Pengguna
menu batasan
SPPK PENGOPTIMALAN KOMPOSISI PENJUALAN
Gambar 3.1 - Diagram Konteks
3.2
Analisis Kebutuhan Pengguna
3.2.1 Diagram Use Case Diagram use case secara grafis mendeskripsikan siapa yang akan menggunakan sistem dan melalui cara apa pengguna (user) mengharapkan interaksi dengan sistem tersebut. Diagram use case secara naratif
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
digunakan secara tekstual untuk menggambarkan sekuensi langkahlangkah dari setiap interaksi. 3.2.2 Aktor dalam Use Case Ada satu aktor yang berperan menjalankan Sistem Pendukung Pengambilan
Keputusan
Pengoptimalan
Keuntungan
Berdasarkan
Komposisi Penjualan ini, yaitu: 1. Pengguna(User) Aktor yang dimaksud pengguna ini yaitu Pemilik Usaha dan Pelajar. Pengguna merupakan pihak
yang memberikan
masukan kepada sistem dan menerima keputusan dari sistem. Pengguna
juga
mempunyai
hak
akses
penuh
dalam
menjalankan sistem sehingga pengguna dapat melakukan penambahan, penghapusan, pengubahan data pilihannya. Tambah Menu
Edit Menu
PENGGUNA
Hapus Menu Kelola Batasan
Restart Program
Riset Data
Lihat Detail Menu dan Komposisi Optimal Gambar 3.2 - Diagram Use Case
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
3.2.3
Narasi Use Case
Tabel 3.1 - Narasi Use Case Use Case Name Description
Tambah Menu Aktor memasukkan data-data tentang menu baru ke sistem untuk disimpan di dalam database
Actors
Pemilik usaha
Precondition
Data-data tentang item baru sudah ada Actor 1. Klik button tambah menu
System 1a. Menampilkan form tambah menu
Flow of Events
2. Input data-data menu 3. Klik button simpan menu
3a. Mengecek kelengkapan data 3b. Memasukkan data ke database
Postcondition
Data-data tentang menu baru tersimpan di database
Exception
Sistem menampilkan pesan error
Use Case Name
Hapus Menu
Description
Aktor menghapus data terpilih dari database
Actors
Pemilik Usaha
Precondition
Data-data tentang item yang akan dihapus masih ada Actor
System
1. Masukkan nomor menu (ID) Flow of Events
yang akan dihapus 2. Klik button hapus
2a. Menghapus data dari database
Postcondition
Data terpilih tidak ada di database
Exception
Sistem menampilkan pesan error
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
Use Case Name Description
Kelola Batasan Aktor memasukkan data-data tentang batasan baru ke sistem untuk disimpan di dalam database
Actors
Pemilik Usaha
Precondition
Data-data tentang batasan baru sudah ada Actor 1. Klik button kelola batasan
System 1a. Menampilkan form kelola batasan
Flow of Events
2. Input data-data batasan 3. Klik button simpan batasan
3a. Mengecek kelengkapan data 3b. Memasukkan data ke database
Postcondition
Data-data tentang batasan baru tersimpan di database
Exception
Sistem menampilkan pesan error
Use Case Name
Restart Program
Description
Aktor memulai kembali program yang ada
Actors
Pemilik Usaha
Precondition
Program sudah dalam kondisi dijalankan Actor
Flow of Events
1. Klik button restart
System 1a. Menonaktifkan dan menhidupkan kembali program
Postcondition
Program dijalankan kembali
Use Case Name
Reset Data
Description
Aktor menghapus semua data yang ada di database
Actors
Pemilik Usaha
Precondition
Data-data tentang batasan yang akan dihapus masih ada Actor
Flow of Events
System
1. Klik button reset
1a. Menampilkan notifikasi
2. Klik button yes
2a. Menghapus data dari database
Postcondition
Data di database kembali pada kondisi awal (kosong)
Exception
Sistem menampilkan pesan error
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
Use Case Name
Lihat Komposisi Optimal
Description
Aktor dapat melihat komposisi optimal
Actors
Pemilik Usaha
Precondition
Halaman kosong Actor 1. Klik lihat komposisi optimal
System 1a.Menghitung komposisi optimal sesuai dengan menu dan batasan yang ada
Flow of Events
1b. Menampilkan hasil komposisi optimal beserta langkah kerja dan cara penyelesaian pemrograman linear
3.3
Postcondition
Komposisi optimal ditampilkan pada halaman bersangkutan
Exception
Sistem menampilkan pesan error
Perancangan Subsistem Manajemen Data 1. Perancangan Konseptual Sistem pendukung pengambilan keputusan pengoptimalan keuntungan berdasarkan komposisi penjualan dengan menggunakan pemrograman linear terdiri atas dua entitas. Kedua entitas tersebut tidak saling berelasi sehingga tidak dibuat diagram relasi entitas. a. Menu Dalam kegiatan penjualannya, Rumah Makan Padang menyimpan berbagai data tentang produknya pada tabel Menu. Data-data tersebut antara lain nama menu, harga bahan baku, biaya jasa, biaya tambahan, lama pembuatan, batas maksimal, dan harga jualnya. Menu-menu tersebut disimpan untuk kemudian dicari
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
komposisi terbaiknya yang menghasilkan keuntungan paling optimal. b. Batasan Untuk menghasilkan keuntungan yang optimal, produk dapat diproduksi sebanyak-banyaknya. Akan tetapi, pada kenyataannya terdapat berbagai hal yang membatasi proses produksi sehingga tidak dapat dilakukan secara maksimal. Batasan-batasan tersebut disimpan pada tabel Batasan yang terdiri atas batasan biaya anggaran dan jam kerja karyawan.
2. Perancangan Logikal Menu - nama : varchar(50) - harga_bahan_baku : int(20) - biaya_jasa : int(20) - biaya_tambahan : int(20) - biaya_pembuatan : int(10) - batas_maksimal : int(10) - harga_jual : int(20)
Batasan - jam_kerja : int(10) - biaya_anggaran : int(20)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
3. Perancangan Fisikal Tabel 3.2 - Data Menu
Nama Field
Tipe Data
Lebar
Keterangan id digunakan sebagai atribut khusus yang menjadi penanda sebuah menu (tidak ada id
Id
int
11
yang sama pada tabel menu); id bersifat auto increment artinya nilainya akan bertambah secara otomatis untuk setiap penambahan baris menu
Nama
varchar
50
menu-menu yang ditambahkan memiliki nama tertentu yang disimpan pada kolom ini bahan baku yang digunakan untuk produksi
harga_bahan_baku
int
20
sebuah menu dihitung harganya sebagai harga produksi
biaya_jasa
int
20
biaya jasa adalah sejumlah uang lelah yang dibayarkan untuk karyawan untuk tiap menu, ada biaya tambahan yang
biaya_tambahan
int
20
perlu ditambahkan sebagai pelengkap untuk menu tersebut (misalnya kerupuk, sambal, dan lain-lain) oleh karena terdapat batasan waktu pembuatan,
lama_pembuatan
int
10
maka perlu disimpan lama pembuatan tiap menu produk tidak dapat diproduksi sebanyak
batas_maksimal
int
10
mungkin juga karena terbatas pada tempat penyimpanannya sehingga tiap menu perlu diberi batas maksimal produksinya harga jual adalah kombinasi dari total harga
harga_jual
int
20
produksi ditambah dengan keuntungan yang direncanakan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
Tabel 3.3-Data Batasan
Nama Field
Tipe Data
Lebar
Keterangan karyawan yang bertugas membuat menu-menu
jam_kerja
int
10
di Rumah Makan Padang memiliki batasan waktu kerja per hari (disimpan dalam satuan menit) kegiatan produksi juga dibatasi oleh biaya
biaya_anggaran
int
20
anggaran produksi, yakni biaya maksimal yang dapat digunakan untuk memproduksi tiap menunya
3.4
Perancangan Subsistem Manajemen Model
3.4.1 Influence Diagram (Diagram Pengambilan Keputusan)
KOMPOSISI JUMLAH PRODUKSI WAKTU
BATASAN SUMBER DAYA
BIAYA PRODUKSI
KEUNTUNGAN
MODAL
HARGA JUAL
Gambar 3.3 -Influence Diagram
Diagram di atas menjelaskan tentang proses pengambilan keputusan pada sistem. Data-data waktu dan modal digunakan sebagai batasan sumber daya. Batasanbatasan tersebut kemudian menghasilkan biaya produksi dari suatu menu. Selisih
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
dari biaya produksi dan harga jual disebut sebagai keuntungan. Keuntungan dan batasan kemudian diolah dengan metode pemrograman linear untuk menghasilkan komposisi jumlah produksi.
3.4.2 Flowchart Diagram
START
Input: Menu Input: Komposisi Bahan Input: Batasan
*SIMPLEKS
Output: Komposisi optimal Output: Keuntungan maks. Output: Perhitungan Simpleks
STOP
Gambar 3.4 - Diagram Flowchart
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
(*) Proses Simpleks Persoalan program linear dapat diselesaikan melalui langkah-langkah yakni sebagai berikut. 1.
Formulasikan dan standarisasikan modelnya.
2.
Bentuk tabel awal simpleks berdasarkan informasi model di atas.
3.
Tentukan kolom kunci di antara kolom-kolom variabel yang ada, yaitu kolom yang mengandung nilai (cj-Zj) paling positif untuk kasus maksimasi dan atau mengandung nilai (cj-Zj) paling negatif untuk kasus minimasi.
4.
Tentukan baris kunci di antara baris-baris variabel yang ada, yaitu baris yang memiliki rasio kuantitas dengan nilai positif terkecil.
bi = nilai batasan 5.
Bentuk tabel berikutnya dengan memasukkan variabel pendatang ke kolom variabel dasar dan mengeluarkan variabel perantau dari kolom tersebut, serta lakukan transformasi baris-baris variabel. Dengan menggunakan rumus transformasi sebagai berikut. baris kunci baru = (baris kunci lama / angka kunci) baris baru = (baris lama-(rasio kunci x baris kunci lama)) rasio kunci = (unsur kolom kunci / angka kunci)
6.
Lakukan uji optimalitas. Dengan kriteria jika semua koefisien pada baris (cj-Zj) sudah tidak ada lagi yang bernilai positif (untuk kasus maksimasi) atau sudah tidak ada lagi yang bernilai negatif (untuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
kasus minimasi), berarti tabel sudah optimal. Jika kriteria di atas belum terpenuhi maka diulangi mulai langkah ke-3 sampai ke-6, hingga terpenuhi kriteria tersebut.
3.4.3 3.4.3.1
Proses Perhitungan Pemrograman Linear Variabel Penentu Keputusan
Adapun syarat atau variabel penentu keputusan yang dibuat penulis untuk membuat data produksi apa saja dapat digunakan dalam sistem ini. 1) A. Harga bahan baku per produk. Harga bahan-bahan dasar dalam pembuatan satu item menu makanan. 2) B. Biaya jasa produksi per produk. Biaya tenaga kerja (karyawan) yang dikeluarkan dalam satu kali pembuatan satu menu makanan. 3) C. Biaya lainnya per produk. Biaya tambahan yang dikeluarkan sebagai pelengkap satu item menu makanan (selain bahan baku). Pada bagian ini berlaku sifat optional karena tidak semua item menu memerlukan pelengkap. 4) D. Waktu pengerjaan per produk. Lama pengerjaan yang dibutuhkan dalam sekali produksi satu item menu makanan. Lama pengerjaan ini dihitung dalam menit.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
5) E. Batas maksimal produksi per produk. Banyaknya produk (satu item menu makanan) yang dihasilkan dalam satu hari. 6) F. Harga jual per produk. Harga jual satu item menu makanan. 7) G. Modal untuk sekali produksi. Anggaran yang dikeluarkan untuk membeli semua bahan keperluan tiap-tiap menu (termaksud biaya lainya). 8) H. Total jam kerja per hari. Jumlah waktu kerja dalam satu hari.
3.4.3.2
Penyelesaian Program Linear dengan Metode Simpleks Misalkan pada suatu rumah makan terdapat 3 menu makanan yaitu : X1: Ayam, X2: Ikan, X3: Rendang. Dengan variabel penentu keputusannya antara lain : X1
X2
X3
A
Rp 7.000
Rp 9.000
Rp 10.000
B
Rp 2.000
Rp 2.000
Rp 2.000
C
-
-
Rp 1.000
D
5 menit
7 menit
11 menit
E
25
25
25
F
Rp 11.000
Rp 14.000
Rp 16.000
G
Rp 1.000.000
H
480 menit
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
Setelah semua data telah mencakupi maka berikutnya adalah membuat model program linear. Fungsi tujuan dari program linear berikut adalah memaksimalkan keuntungan, tetapi ada beberapa faktor yang harus di buat terlebih dahulu, antara lain adalah : Biaya Produksi (A + B + C) X1 : 9000,
X2 : 11000,
X3 : 13000
Keuntungan (harga jual-biaya produksi) X1 : 2000,
X2 : 3000,
X3 : 3000
Kendala Waktu 5X1 + 7X2 + 11X3≤ 480 Kendala Batas Maksimal Produksi X1≤ 25,
X2 ≤ 25,
X3 ≤ 25
Kendala Modal 7000X1 + 9000X2 + 11000X3 ≤ 1000000 Selanjutnya adalah pembuatan model program linear, antara lain : Model Program Linear Maksimalkan Z = 2000X1 + 3000X2 + 3000X3 Dengan batasan : 7000X1 + 9000X2 + 11000X3≤ 1000000 5X1 +
7X2 +
11X3 ≤ 480 ≤ 25
X1 X2
≤ 25 X3≤ 25
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
7000X1 + 9000X2 + 11000X3 + S1= 1000000 5X1 +
7X2 +
11X3+ S2= 480
X1
+ S3= 25 X2
+ S4= 25 X3+ S5= 25
Catatan Penting dalam Penyelesaian Simpleks Untuk kasus maksimasi dan minimasi, jika batasan (constraint) menggunakan tanda “≤”, maka digunakan slack (+s). Sebaliknya, jika digunakan tanda “≥”, maka digunakan surplus (-s). Jika dalam batasanbatasan kedua tanda digunakan bersamaan, maka diperlukan artificial (+a) untuk ditambahkan pada surplus.
3.4.3.3
Tabel Perhitungan Metode Simpleks Pembentukan Tabel Iterasi Pertama Perhitungan Simpleks
Tabel iterasi pertama ini adalah tabel yang paling penting dalam proses perhitungan dengan simpleks. Pada tabel ini semua variabel
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
slack, surplus, dan artificial yang dibutuhkan sudah mulai digunakan dan ditulis pada kolom-kolom baru. Tetapi pada kasus ini hanya menggunakan variabel slack. Setelah semua nilai ditetapkan dan ditempatkan pada kolomnya masing-masing, proses perhitungan dimulai dengan menghitung nilai Zj. Nilai Zj untuk suatu kolom diperoleh dengan menjumlahkan semua hasil perkalian nilai pada kolom tersebut dengan semua nilai pada kolom nilai tujuan. Pada contoh di atas, misalnya, perhitungan nilai Zj pada beberapa kolom adalah: Zj pada kolom q = (0 x 1000000) + (0 x 480) + ... + (0 x 25) = 0 Zj pada kolom x1 = (0 x 7000) + (0 x 5) + ... + (0 x 0) = 0 ... Zj pada kolom s5 = (0 x 0) + (0 x 0) + ... + (0 x 1) = 0 Setelah diperoleh nilai Zj, cari nilai cj-Zj dengan melakukan pengurangan pada cj terhadap Zj. Pilih kolom dengan nilai cj-Zj yang paling positif. Pada tabel di atas, terdapat beberapa kolom yang nilai cj-Zj-nya paling positif, yakni kolom x2,dan x3 dengan nilai cj-Zj = 3000; maka pilih salah satu nilai (dalam contoh ini dipilih kolom x2). Kolom terpilih ini kemudian disebut dengan kolom kunci. Setelah memperoleh kolom kunci, cari nilai rasio. Nilai Rasio diperolah dengan melakukan pembagian pada kolom q (nilai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
batasan) terhadap kolom kunci (x2). Pada contoh di atas, misalnya, perhitungan nilai rasio pada beberapa baris adalah: 1000000 /9000 = 111,111 480 / 7 = 68,5714 ... 25 / 0 = nilai kosong (pembagian dengan 0) Kemudian, dari nilai-nilai rasio yang sudah diperoleh, pilihlah baris yang rasionya positif terkecil (di atas 0 yang terkecil). Dari tabel tersebut terlihat bahwa nilai positif terkecilnya adalah 25 pada baris s4. Baris inilah yang kemudian disebut dengan baris kunci. Nilai yang terletak pada perpotongan kolom kunci dengan baris kunci kemudian disebut dengan angka kunci. Pada contoh di atas, misalnya, angka kunci terletak pada perpotongan kolom kunci x2 dan baris kunci s4, dengan nilai 25. Pada akhir proses di iterasi pertama ini, variabel dasar s4 pada baris kunci keluar, kemudian digantikan oleh variabel kolom kunci yakni x2. Dengan pergantian ini, maka nilai variabel dasar pada baris tersebut adalah x2.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
Pembentukan Tabel Iterasi Kedua
Pada awal proses pembentukan tabel iterasi kedua, kosongkan semua nilai untuk kemudian diisi dengan nilai baru. Pastikan bahwa variabel dasar s4 pada iterasi pertama tadi telah diganti dengan masuknya variabel x2 dari kolom kunci iterasi 1. Kemudian, lakukan penetapan nilai pada setiap kolom yang telah dikosongkan tadi dengan nilai baru. Berikut ini adalah penetapan nilai barunya. baris kunci baru = baris kunci lama / angka kunci „Baris kunci baru‟ yang dimaksud adalah baris pada iterasi kedua yang terletak pada baris yang disebut baris kunci pada iterasi sebelumnya, yakni pada baris yang variabel dasarnya telah berubah menjadi x2. Nilai pada baris ini adalah hasil pembagian nilai pada baris kunci dengan angka kunci iterasi sebelumnya. baris baru selain baris kunci = baris lama-(rasio kunci x baris kunci lama) rasio kunci = unsur kolom kunci / angka kunci „Baris baru yang lain‟ nilainnya adalah nilai pada baris lama dikurangi hasil perkalian rasio kunci dengan baris kunci iterasi sebelumnya. Dimana rasio kunci tersebut bernilai unsur kolom kunci dibagi angka kunci.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
Proses pembentukkan tabel iterasi kedua ini diulangi untuk iterasi berikutnya sampai nilai cj-Zj tidak ada yang bernilai positif.
Pembentukan Tabel Iterasi Ketiga
Dari iterasi ketiga ini, diperoleh nilai cj-Zj yang paling positif adalah 2, dan kolom kunci yang dipilih adalah kolom x11. Dari kolom kunci ini, dapat dihitung nilai rasionya. Nilai rasio yang positif terkecil adalah 60, yang terletak pada baris s4. Dengan demikian, angka kunci yang diperoleh adalah 1, yakni perpotongan antara kolom x11 dengan baris s4. Kemudian, variabel s4 tersebut keluar untuk digantikan dengan variabel x11. Dilihat dari nilai cj-Zj yang muncul, masih terdapat nilai yang positif. Maka, masih diperlukan penambahan iterasi keempat.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
Pembentukan Tabel Iterasi Keempat
Dari iterasi keempat ini, diperoleh nilai cj-Zj yang paling positif adalah 2, dan kolom kunci yang dipilih adalah kolom x23. Dari kolom kunci ini, dapat dihitung nilai rasionya. Nilai rasio yang positif terkecil adalah 5, yang terletak pada baris s8. Dengan demikian, angka kunci yang diperoleh adalah 1, yakni perpotongan antara kolom x23 dengan baris s8. Kemudian, variabel s8 tersebut keluar untuk digantikan dengan variabel x23. Dilihat dari nilai cj-Zj yang muncul, masih terdapat nilai yang positif. Maka, masih diperlukan penambahan iterasi kelima.
Pembentukan Tabel Iterasi Kelima
Pada iterasi kelima ini sudah tidak ditemukan cj-Zj yang bernilai positif. Dengan demikian, dapat dinyatakan bahwa tabel ini sudah optimal.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
Hasil Perhitungan Simpleks Ketika tabel iterasi telah memenuhi syarat bahwa tidak ditemukan cj-zj yang bernilai optimal maka tabel iterasi tersebut dinyatakan telah optimal. Dengan demikian, hasil dari proses iterasi tersebut dapat diambil dari tabel iterasi terakhir (tabel iterasi 5) dengan mengambil nilai dari baris variabel surplus (S1,S2,S3,S4,S5) yang telah diganti dengan nilai variabel X1, X2 dan X3.
Ayam(X1)
= 25 x Rp 2000 = Rp 50.000
Ikan(X2)
= 25 x Rp 3000 = Rp 75.000
Rendang(X3) = 16 x Rp 3000 = Rp 48.000
Total keuntungan yang diperoleh adalah Rp 173.000
3.5
Perancangan Subsistem Manajemen Dialog 1. Tampilan Utama (Halaman Utama)
Optimasi Penjualan Tambah Menu
Daftar Menu
Edit dan Hapus Menu ID
Edit
Hapus
Hapus Semua
Batasan
Reset Data
Restart
Lihat Datail Menu dan Komposisi Bantuan
Tentang
ID
Lihat Detail Lihat Komposisi
Refresh Daftar
Lihat Cara Penyelesaian
Gambar 3.5 - Tampilan Utama (Halaman Utama)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
2. Tampilan Form Tambah Menu dan Edit Menu Tambah atau Edit Menu Inputan Detail Menu Nama Menu Harga Bahan Baku
Rp
Biaya Jasa Pembuatan
Rp
Biaya Tambahan
Rp
Lama Pembuatan
Menit
Batas Maksimal Pembuatan
Item
Harga Jual
Rp
Kembali
Simpan Menu
Gambar 3.6 - Tampilan Form Tambah Menu dan Edit Menu
3. Tampilan Form Batasan Kelola Batasan Inputan Batasan Tambahan Menit
Total Jam Kerja Total Biaya Anggaran
Kembali
Rp
Simpan Batasan
Gambar 3.7 - Tampilan Form Batasan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB IV IMPLEMENTASI SISTEM
4.1
Implementasi Subsistem Manajemen Data Langkah pertama yang dilakukan dalam implementasi manajemen data adalah membuat database. Database dibuat dengan nama “lanjoet” yang dibuat menggunakan MYSQL melalui phpmyadmin sebagai aplikasi pengolahan query. Berikut ini adalah langkah-langkah pembuatan database-nya : 1. Membuat user baru dengan nama username root dan password root, selajutnya membuat database dengan nama lanjoet. 2. Langkah berikutnya adalah membuat tabel-tabel yang akan digunakan dalam sistem. Maka diperlukan perintah create untuk membuat tabeltabel tersebut. Berikut ini adalah implementasi query: a. Implementasi tabel menu Query 4.1 create data menu
45
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
b. Implementasi tabel batasan Query 4.2 create data batasan
4.2
Implementasi Subsistem Manajemen Model 1. Source Code Button Tambah dan Edit Menu
publicpartialclassTambahMenu : Form { staticMySqlConnection con = newMySqlConnection("datasource=localhost;database=lanjoet;port=3306;username=roo t;password="); MySqlCommand cmd; int ID; publicvoid ExecuteQuery(string q) { try { if (con.State == ConnectionState.Closed) { con.Open(); } cmd = newMySqlCommand(q, con); cmd.ExecuteNonQuery(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { if (con.State == ConnectionState.Open) { con.Close(); } } } public TambahMenu(string x_ID) { InitializeComponent(); if (x_ID != "0") //Kalau 0 berarti Tambah Menu, kalau bukan 0 berarti Edit Menu { ID = Int32.Parse(x_ID); EditMenu(); } }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
privatevoid EditMenu() { cmd = con.CreateCommand(); cmd.CommandText = "SELECT * FROM menu WHERE id='" + ID + "'"; con.Open(); MySqlDataReader read_menu = cmd.ExecuteReader(); while (read_menu.Read()) { txMenu_Nama.Text = read_menu[1].ToString(); txMenu_HargaBahanBaku.Text = read_menu[2].ToString(); txMenu_BiayaJasa.Text = read_menu[3].ToString(); txMenu_BiayaTambahan.Text = read_menu[4].ToString(); txMenu_LamaPembuatan.Text = read_menu[5].ToString(); txMenu_BatasMaksimal.Text = read_menu[6].ToString(); txMenu_HargaJual.Text = read_menu[7].ToString(); } con.Close(); } privatevoid btnSimpanMenu_Click(object sender, EventArgs e) { string x_nama = "-"; string x_harga_bahan_baku = "0"; string x_biaya_jasa = "0"; string x_biaya_tambahan = "0"; string x_lama_pembuatan = "0"; string x_batas_maksimal = "0"; string x_harga_jual = "0"; x_nama = txMenu_Nama.Text; x_harga_bahan_baku = txMenu_HargaBahanBaku.Text; x_biaya_jasa = txMenu_BiayaJasa.Text; x_biaya_tambahan = txMenu_BiayaTambahan.Text; x_lama_pembuatan = txMenu_LamaPembuatan.Text; x_batas_maksimal = txMenu_BatasMaksimal.Text; x_harga_jual = txMenu_HargaJual.Text; if (ID == 0) { string q = "INSERT INTO menu (nama, harga_bahan_baku, biaya_jasa, biaya_tambahan, lama_pembuatan, batas_maksimal, harga_jual) " + "VALUES ('" + x_nama + "', '" + x_harga_bahan_baku + "', '" + x_biaya_jasa + "', '" + x_biaya_tambahan + "', '" + x_lama_pembuatan + "', '" + x_batas_maksimal + "', '" + x_harga_jual + "')"; ExecuteQuery(q); } else { string q = "UPDATE menu SET nama = '" + x_nama + "', harga_bahan_baku = '" + x_harga_bahan_baku + "', biaya_jasa = '" + x_biaya_jasa + "', biaya_tambahan = '" + x_biaya_tambahan + "', lama_pembuatan = '" + x_lama_pembuatan + "', batas_maksimal = '" + x_batas_maksimal + "', harga_jual = '" + x_harga_jual + "' WHERE id = '" + ID + "'"; ExecuteQuery(q); } MessageBox.Show("Menu " + x_nama + " berhasil disimpan "); Beranda f = newBeranda(); this.Hide(); f.ShowDialog(); this.Close(); } privatevoid btnKembali_Click(object sender, EventArgs e)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
{ Beranda f = newBeranda(); this.Hide(); f.ShowDialog(); this.Close(); } privatevoid CEK_AngkaSaja(KeyPressEventArgs e) { string karakter = "0123456789"; if (karakter.IndexOf(e.KeyChar) >= 0 || e.KeyChar == (char)Keys.Back) { e.Handled = false; } else { MessageBox.Show("Inputan harus berupa angka"); e.Handled = true; } } privatevoid txMenu_HargaBahanBaku_KeyPress(object sender, KeyPressEventArgs e) { CEK_AngkaSaja(e); } privatevoid txMenu_BiayaJasa_KeyPress(object sender, KeyPressEventArgs e) { CEK_AngkaSaja(e); } privatevoid txMenu_BiayaTambahan_KeyPress(object sender, KeyPressEventArgs e) { CEK_AngkaSaja(e); } privatevoid txMenu_LamaPembuatan_KeyPress(object sender, KeyPressEventArgs e) { CEK_AngkaSaja(e); } privatevoid txMenu_BatasMaksimal_KeyPress(object sender, KeyPressEventArgs e) { CEK_AngkaSaja(e); } privatevoid txMenu_HargaJual_KeyPress(object sender, KeyPressEventArgs e) { CEK_AngkaSaja(e); } privatevoid TambahMenu_FormClosing(object sender, FormClosingEventArgs e) { e.Cancel = true; } }
privatevoid btnTambahMenu_Click(object sender, EventArgs e) { TambahMenu f = newTambahMenu("0"); this.Hide(); f.ShowDialog();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
this.Close(); } privatevoid btnEdit_Click(object sender, EventArgs e) { if (txNomorHapus.Text == "") { MessageBox.Show("Anda belum memasukkan ID Menu yang akan diedit"); } else { cmd = con.CreateCommand(); cmd.CommandText = "SELECT COUNT(*) FROM menu WHERE id='" + txNomorHapus.Text + "'"; con.Open(); int count = Int32.Parse(cmd.ExecuteScalar().ToString()); con.Close(); if (count > 0) { TambahMenu f = newTambahMenu(txNomorHapus.Text); this.Hide(); f.ShowDialog(); this.Close(); } else { MessageBox.Show("Data menu dengan ID=" + txNomorHapus.Text + " tidak ditemukan"); } } }
2. Source Code Button Batasan publicpartialclassBatasan : Form { staticMySqlConnection con = newMySqlConnection("datasource=localhost;database=lanjoet;port=3306;username=roo t;password="); staticMySqlCommand cmd = con.CreateCommand(); publicvoid ExecuteQuery(string q) { try { if (con.State == ConnectionState.Closed) { con.Open(); } cmd = newMySqlCommand(q, con); cmd.ExecuteNonQuery(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
{ if (con.State == ConnectionState.Open) { con.Close(); } } } public Batasan() { InitializeComponent(); EditBatasan(); } privatevoid EditBatasan() { cmd = con.CreateCommand(); cmd.CommandText = "SELECT * FROM batasan_lain"; con.Open(); MySqlDataReader read_menu = cmd.ExecuteReader(); while (read_menu.Read()) { txBatasan_JamKerja.Text = read_menu[0].ToString(); txBatasan_BiayaAnggaran.Text = read_menu[1].ToString(); } con.Close(); } privatevoid btnSimpanBatasan_Click(object sender, EventArgs e) { string x_jam_kerja = "0"; string x_biaya_anggaran = "0"; x_jam_kerja = txBatasan_JamKerja.Text; x_biaya_anggaran = txBatasan_BiayaAnggaran.Text; ExecuteQuery("TRUNCATE TABLE batasan_lain"); string q1 = "INSERT INTO batasan_lain (jam_kerja, biaya_anggaran) " + "VALUES ('" + x_jam_kerja + "', '" + x_biaya_anggaran + "')"; ExecuteQuery(q1); MessageBox.Show("Batasan tambahan berhasil disimpan "); this.Close(); } privatevoid btnKembali_Click(object sender, EventArgs e) { Beranda f = newBeranda(); this.Hide(); f.ShowDialog(); this.Close(); } privatevoid CEK_AngkaSaja(KeyPressEventArgs e) { string karakter = "0123456789"; if (karakter.IndexOf(e.KeyChar) >= 0 || e.KeyChar == (char)Keys.Back) { e.Handled = false; } else { MessageBox.Show("Inputan harus berupa angka"); e.Handled = true;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
} } privatevoid txBatasan_JamKerja_KeyPress(object sender, KeyPressEventArgs e) { CEK_AngkaSaja(e); } privatevoid txBatasan_BiayaAnggaran_KeyPress(object sender, KeyPressEventArgs e) { CEK_AngkaSaja(e); } privatevoid Batasan_FormClosing(object sender, FormClosingEventArgs e) { e.Cancel = true; } }
privatevoid btnBatasan_Click(object sender, EventArgs e) { Batasan f = newBatasan(); this.Hide(); f.ShowDialog(); this.Close(); }
3. Source Code ButtonHapus privatevoid btnHapusSatu_Click(object sender, EventArgs e) { DialogResult dr = MessageBox.Show("Apakah Anda yakin akan menghapus menu dengan ID=" + txNomorHapus.Text + "?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (dr == DialogResult.Yes) { ExecuteQuery("DELETE FROM menu WHERE id='" + txNomorHapus.Text + "'"); MessageBox.Show("Menu dengan ID=" + txNomorHapus.Text + " berhasil dihapus"); } LoadData(); }
privatevoid btnHapusSemua_Click(object sender, EventArgs e) { DialogResult dr = MessageBox.Show("Apakah Anda yakin akan menghapus semua menu ?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (dr == DialogResult.Yes) { ExecuteQuery("DELETE FROM menu"); MessageBox.Show("Semua menu berhasil dihapus"); } LoadData(); }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
publicvoid LoadData() { dgv.Rows.Clear(); cmd = con.CreateCommand(); cmd.CommandText = "SELECT id, nama, harga_jual FROM menu"; con.Open(); MySqlDataReader read_menu = cmd.ExecuteReader(); while (read_menu.Read()) { string d_id = read_menu[0].ToString(); string d_nama = read_menu[1].ToString(); string d_harga = read_menu[2].ToString(); d_harga = ToRupiah(Int32.Parse(d_harga)); string[] row = newstring[] {d_id, d_nama, d_harga}; dgv.Rows.Add(row); } con.Close(); }
4. Source Code Button Cara Penyelesaian publicpartialclassPerhitungan : Form { staticMySqlConnection con = newMySqlConnection("datasource=localhost;database=lanjoet;port=3306;username=roo t;password="); MySqlCommand cmd; publicvoid ExecuteQuery(string q) { try { if (con.State == ConnectionState.Closed) { con.Open(); } cmd = newMySqlCommand(q, con); cmd.ExecuteNonQuery(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { if (con.State == ConnectionState.Open) { con.Close(); } } } public Perhitungan() { InitializeComponent(); THE_SUPER_SIMPLEX(); }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
int jmlVar, jmlBts, ITR, cjminZ_TERPILIH, rasio_TERPILIH; int[] indexRasioYangTerpilih, nilaiCjMinZjYangTerpilih; double angkaKunci; double[, ,] nilai; double[] Z, cjminZ, rasio, namaAsal, namaTujuan; publicstaticdouble[] hasilKomposisi; void THE_SUPER_SIMPLEX() { //Tentukan jumlah kolom pada tabel iterasi awal //Jumlah kolomnya sesuai dengan jumlah menu yang diinputkan cmd = con.CreateCommand(); cmd.CommandText = "SELECT COUNT(*) FROM menu"; con.Open(); jmlVar = Int32.Parse(cmd.ExecuteScalar().ToString()); con.Close(); //Tentukan jumlah baris pada tabel iterasi awal //Jumlah barisnya sesuai dengan jumlah batasan ditambah batasan produksi maksimal (sejumlah menu) jmlBts = 2 + jmlVar; tx_Proses.Text = "Jumlah Menu=" + jmlVar + "\nJumlah Batasan=" + jmlBts; ITR = 0; nilai = newdouble[jmlVar + 2, jmlBts + 1, jmlVar + jmlBts + 2]; Z = newdouble[jmlVar + jmlBts + 1]; cjminZ = newdouble[jmlVar + jmlBts]; rasio = newdouble[jmlBts]; hasilKomposisi = newdouble[jmlVar]; namaAsal = newdouble[jmlVar+jmlBts+2]; for (int I = 0; I < jmlVar + jmlBts; I++) { namaAsal[I] = I + 1; } namaTujuan = newdouble[jmlBts+1]; for (int I = 0; I < jmlBts; I++) { namaTujuan[I] = 0; } cjminZ_TERPILIH = 0; rasio_TERPILIH = 0; angkaKunci = 0; indexRasioYangTerpilih = newint[jmlBts + 1]; nilaiCjMinZjYangTerpilih = newint[jmlBts + 1]; inputKasusMaksimasi(); inputBatasan(); hitung_Zj_cjminZj_rasio(); cetakIterasi(0); int i = 1; while (cjminZ.Max() > 0) { buatIterasiBaru();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
hitung_Zj_cjminZj_rasio(); cetakIterasi(i); i++; } int J = 0; for (int I = 0; I < { //tx_Proses.Text += for (int K = 3; K < if(namaTujuan[I] ==
namaTujuan.Length; I++) namaTujuan[I] + ": " + Math.Round(nilai[i-1, I, 1]) + "\n"; 3 + jmlVar; K++) { K) { hasilKomposisi[J] = Math.Round(nilai[i - 1, I, 1]); J++; }
} } tx_Proses.Text += "Perhitungan Keuntungan Total\n"; tx_Proses.Text += "Jumlah menu diproduksi dikalikan keuntungan tiap menu\n\n"; cmd = con.CreateCommand(); cmd.CommandText = "SELECT nama, (harga_jual - (harga_bahan_baku + biaya_jasa + biaya_tambahan)) FROM menu"; con.Open(); MySqlDataReader read_menu = cmd.ExecuteReader(); int L = 0; double TOT = 0; while (read_menu.Read()) { string d_nama = read_menu[0].ToString(); double tot = 0; tot = hasilKomposisi[L] * Double.Parse(read_menu[1].ToString()); TOT += tot; tx_Proses.Text += " " + d_nama + ": " + hasilKomposisi[L] + " x " + read_menu[1].ToString() + " = " + ToRupiah(tot) + "\n"; L++; } con.Close(); tx_Proses.Text += "\nTotal Keuntungan = " + ToRupiah(TOT) + "\n"; } publicstring ToRupiah(double angka) { returnString.Format(CultureInfo.CreateSpecificCulture("id-ID"), "Rp{0:N}", angka); } void inputKasusMaksimasi() { //Hitung keuntungan tiap menu int n = jmlVar; string[] keuntungan = newstring[n]; int x = 0; cmd = con.CreateCommand(); cmd.CommandText = "SELECT (harga_jual - (harga_bahan_baku + biaya_jasa + biaya_tambahan)) FROM menu"; con.Open(); MySqlDataReader read = cmd.ExecuteReader(); while (read.Read()) { keuntungan[x] = read[0].ToString();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
x++; } con.Close(); //Tetapkan nilai keuntungan sebagai cj for (int j = 2; j < (jmlVar + 2); j++) { nilai[0, 0, j] = Int32.Parse(keuntungan[j - 2]); } //Nilai cj yang lainnya diisi 0 for (int j = (jmlVar + 2); j < (jmlVar + jmlBts + 2); j++) { nilai[0, 0, j] = 0; } } void inputBatasan() { //Ambil nilai batasan biaya dan waktu cmd = con.CreateCommand(); cmd.CommandText = "SELECT biaya_anggaran, jam_kerja FROM batasan_lain"; con.Open(); MySqlDataReader read1 = cmd.ExecuteReader(); while (read1.Read()) { nilai[ITR, 1, 1] = Int32.Parse(read1[0].ToString()); nilai[ITR, 2, 1] = Int32.Parse(read1[1].ToString()); } con.Close(); //Ambil nilai batasan jumlah produksi cmd.CommandText = "SELECT batas_maksimal FROM menu"; con.Open(); MySqlDataReader read2 = cmd.ExecuteReader(); int a = 3; while (read2.Read()) { nilai[ITR, a, 1] = Int32.Parse(read2[0].ToString()); a++; } con.Close(); //Ambil nilai batasan modal beli bahan baku cmd.CommandText = "SELECT (harga_bahan_baku + biaya_tambahan) FROM menu"; con.Open(); MySqlDataReader read3 = cmd.ExecuteReader(); int b = 2; while (read3.Read()) { nilai[ITR, 1, b] = Int32.Parse(read3[0].ToString()); b++; } con.Close(); //Ambil nilai batasan waktu pembuatan cmd.CommandText = "SELECT lama_pembuatan FROM menu"; con.Open(); MySqlDataReader read4 = cmd.ExecuteReader();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
int c = 2; while (read4.Read()) { nilai[ITR, 2, c] = Int32.Parse(read4[0].ToString()); c++; } con.Close(); //Tetapkan nilai 1 atau 0 untuk batas produksi maksimal for (int i = 3; i < (jmlBts + 1); i++) { for (int j = 2; j < (jmlVar + 2); j++) { if (j == (i-1)) { nilai[ITR, i, j] = 1; } else { nilai[ITR, i, j] = 0; } } } //Tetapkan nilai 1 atau 0 untuk slack for (int i = 1; i < (jmlBts + 1); i++) { int x = 0; nilai[ITR, i, 0] = nilai[ITR, 0, (jmlVar + 2 + x)]; x++; for (int j = (jmlVar + 2); j < (jmlVar + jmlBts + 2); j++) { if (j == (jmlVar + (i + 1))) { nilai[ITR, i, j] = 1; } else { nilai[ITR, i, j] = 0; } } } } void hitung_Zj_cjminZj_rasio() { namaTujuan[rasio_TERPILIH] = namaAsal[cjminZ_TERPILIH]; for (int j = 1; j < (jmlVar + jmlBts + 2); j++) { Z[j - 1] = 0; for (int i = 1; i < (jmlBts + 1); i++) { Z[j - 1] = Z[j - 1] + (nilai[ITR, i, 0] * nilai[ITR, i, j]); } } cjminZ_TERPILIH = 0; rasio_TERPILIH = 0; for (int j = 2; j < (jmlVar + jmlBts + 2); j++) { cjminZ[j - 2] = nilai[0, 0, j] - Z[j - 1];
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
} //dapatkan index dari cj-Zj terbesar cjminZ_TERPILIH = cjminZ.ToList().IndexOf(cjminZ.Max()) + 2; for (int i = 1; i < (jmlBts + 1); i++) { if (nilai[ITR, i, cjminZ_TERPILIH] == 0) { rasio[i - 1] = 0; } else { rasio[i - 1] = nilai[ITR, i, 1] / nilai[ITR, i, cjminZ_TERPILIH]; } } //dapatkan index dari rasio positif terkecil double temp_max_rasio = rasio.Max(); for (int i = 1; i < (jmlBts + 1); i++) { if (rasio[i - 1] > 0) { rasio[i - 1] = rasio[i - 1] - temp_max_rasio; } else { rasio[i - 1] = rasio[i - 1] - 0; } } rasio_TERPILIH = rasio.ToList().IndexOf(rasio.Min()) + 1; indexRasioYangTerpilih[ITR] = rasio_TERPILIH; nilaiCjMinZjYangTerpilih[ITR] = cjminZ_TERPILIH; //MessageBox.Show("rasio=" + rasio_TERPILIH + " (" + rasio.Min() + ") \ncjminZj=" + cjminZ_TERPILIH + "(" + cjminZ.Max() + ")"); angkaKunci = nilai[ITR, rasio_TERPILIH, cjminZ_TERPILIH]; ITR++; } void buatIterasiBaru() { for (int BH = 0; BH < ITR; BH++) { int rarasio = indexRasioYangTerpilih[BH]; int cecejemin = nilaiCjMinZjYangTerpilih[BH]; nilai[ITR, rarasio, 0] = nilai[0, 0, cecejemin]; } for (int j = 1; j < (jmlVar + jmlBts + 2); j++) { nilai[ITR, rasio_TERPILIH, j] = nilai[ITR - 1, rasio_TERPILIH, j] / angkaKunci; } for (int i = 1; i < (jmlBts + 1); i++) { for (int j = 1; j < (jmlVar + jmlBts + 2); j++) { if (i != rasio_TERPILIH) { nilai[ITR, i, j] = nilai[ITR - 1, i, j] - ((nilai[ITR - 1, i, cjminZ_TERPILIH] /
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
nilai[ITR - 1, rasio_TERPILIH, cjminZ_TERPILIH]) * nilai[ITR - 1, rasio_TERPILIH, j]); } } } } void cetakIterasi(int haha) { tx_Proses.Text = tx_Proses.Text + "\n================================================================"; tx_Proses.Text = tx_Proses.Text + "\nITERASI KE-" + ITR; tx_Proses.Text = tx_Proses.Text + "\n================================================================\n"; for (int i = 0; i < (jmlBts + 1); i++) { for (int j = 0; j < (jmlVar + jmlBts + 2); j++) { nilai[haha, i, j] = Math.Round(nilai[haha, i, j], 2); tx_Proses.Text = tx_Proses.Text + nilai[haha, i, j] + "\t"; } tx_Proses.Text = tx_Proses.Text + Environment.NewLine; } tx_Proses.Text = tx_Proses.Text + "================================================================\n\t"; for (int j = 1; j < (jmlVar + jmlBts + 2); j++) { Z[j - 1] = Math.Round(Z[j - 1], 2); tx_Proses.Text = tx_Proses.Text + Z[j - 1] + "\t"; } tx_Proses.Text = tx_Proses.Text + Environment.NewLine + "\t\t"; for (int j = 2; j < (jmlVar + jmlBts + 2); j++) { cjminZ[j - 2] = Math.Round(cjminZ[j - 2], 2); tx_Proses.Text = tx_Proses.Text + cjminZ[j - 2] + "\t"; } tx_Proses.Text = tx_Proses.Text + "\n\ncj-Zj\t\t: " + cjminZ_TERPILIH + "\nRasio\t\t: " + rasio_TERPILIH + "\nAngka Kunci\t: " + angkaKunci; tx_Proses.Text = tx_Proses.Text + "\n================================================================\n\n\n"; } }
privatevoid btnLihatPerhitungan_Click(object sender, EventArgs e) { cmd = con.CreateCommand(); cmd.CommandText = "SELECT COUNT(*) FROM menu"; con.Open(); int count1 = Int32.Parse(cmd.ExecuteScalar().ToString()); con.Close(); if (count1 > 0) { cmd = con.CreateCommand(); cmd.CommandText = "SELECT COUNT(*) FROM batasan_lain"; con.Open(); int count2 = Int32.Parse(cmd.ExecuteScalar().ToString()); con.Close();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
if (count2 > 0) { Perhitungan f = newPerhitungan(); f.ShowDialog(); btnLihatKomposisi.Enabled = true; } else { MessageBox.Show("Anda belum menetapkan batasan. "); } } else { MessageBox.Show("Anda belum memasukkan menu. "); } }
5. Source Code Button Lihat Komposisi privatevoid btnLihatKomposisi_Click(object sender, EventArgs e) { string pesan = ""; pesan += "Perhitungan Keuntungan Total\n"; pesan += "Jumlah menu diproduksi dikalikan keuntungan tiap menu\n\n"; cmd = con.CreateCommand(); cmd.CommandText = "SELECT nama, (harga_jual - (harga_bahan_baku + biaya_jasa + biaya_tambahan)) FROM menu"; con.Open(); MySqlDataReader read_menu = cmd.ExecuteReader(); int L = 0; double TOT = 0; double[] hasilKompos = Perhitungan.hasilKomposisi; while (read_menu.Read()) { string d_nama = read_menu[0].ToString(); double tot = 0; tot = hasilKompos[L] * Double.Parse(read_menu[1].ToString()); TOT += tot; pesan += " " + d_nama + ": " + hasilKompos[L] + " \tx " + read_menu[1].ToString() + " = " + ToRupiah(tot) + "\n"; L++; } con.Close(); pesan += "\nTotal Keuntungan = " + ToRupiah(TOT) + "\n"; MessageBox.Show(pesan); }
public Beranda() { InitializeComponent(); LoadData(); btnLihatKomposisi.Enabled = false; }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
4.3
Implementasi Subsistem Manajemen Dialog 1. Tampilan Utama (Halaman Utama)
Gambar 4.1 - Tampilan Utama Sistem
2. Form Tambah atau Edit Menu
Gambar 4.2 - Tampilan Sistem Form Tambah Menu dan Edit Menu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
3. Form Kelola Batasan
Gambar 4.3 - Tampilan Sistem Form Kelola Batasan
4. Tampilan Output Program
Gambar 4.4 - Tampilan Output Sistem
Jumlah Menu=3 Jumlah Batasan=5 ================================================================
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
ITERASI KE-1 ================================================================ 0 0 2000 3000 3000 0 0 0 0 0 1000000 7000 9000 11000 1 0 0 0 0 480 5 7 11 0 1 0 0 0 25 1 0 0 0 0 1 0 0 25 0 1 0 0 0 0 1 0 25 0 0 1 0 0 0 0 ================================================================ 0 0 0 0 0 0 0 0 2000 3000 3000 0 0 0 0
0 0 0 0 0 1 0 0
cj-Zj :3 Rasio :4 Angka Kunci :1 ================================================================
================================================================ ITERASI KE-2 ================================================================ 0 0 0 0 0 0 0 0 0 0 775000 7000 0 11000 1 0 0 -9000 0 305 5 0 11 0 1 0 -7 0 25 1 0 0 0 0 1 0 3000 25 0 1 0 0 0 0 1 0 25 0 0 1 0 0 0 0 ================================================================ 75000 0 3000 0 0 0 0 3000 2000 0 3000 0 0 0 -3000
0 0 0 0 0 1 0 0
cj-Zj :4 Rasio :5 Angka Kunci :1 ================================================================
================================================================ ITERASI KE-3 ================================================================ 0 0 0 0 0 0 0 0 0 0 500000 7000 0 0 1 0 0 -9000 0 30 5 0 0 0 1 0 -7 0 25 1 0 0 0 0 1 0 3000 25 0 1 0 0 0 0 1 3000 25 0 0 1 0 0 0 0 ================================================================ 150000 0 3000 3000 0 0 0 3000 2000 0 0 0 0 0 -3000
0 -11000 -11 0 0 1 3000 -3000
cj-Zj :2 Rasio :2 Angka Kunci :5 ================================================================
================================================================ ITERASI KE-4 ================================================================ 0 0 0 0 0 0 0 0 0 0 458000 0 0 0 1 -1400 0 800 2000 6 1 0 0 0 0,2 0 -1,4 0 19 0 0 0 0 -0,2 1 1,4
0 4400 -2,2 2,2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
3000 25 0 1 0 0 0 0 1 3000 25 0 0 1 0 0 0 0 ================================================================ 162000 2000 3000 3000 0 400 0 200 0 0 0 0 -400 0 -200
0 1 -1400 1400
cj-Zj :9 Rasio :3 Angka Kunci : 2,2 ================================================================
================================================================ ITERASI KE-5 ================================================================ 0 0 0 0 0 0 0 0 0 0 0 420000 0 0 0 1 -1000 -2000 -2000 0 2000 25 1 0 0 0 0 1 0 0 0 8,64 0 0 0 0 -0,09 0,45 0,64 1 3000 25 0 1 0 0 0 0 1 0 3000 16,36 0 0 1 0 0,09 -0,45 -0,64 0 ================================================================ 174090,91 2000 3000 3000 0 272,73 636,36 1090,91 0 0 0 0 0 -272,73 -636,36 -1090,91 0 cj-Zj :2 Rasio :1 Angka Kunci :0 ================================================================ Perhitungan Keuntungan Total Jumlah menu diproduksi dikalikan keuntungan tiap menu Ayam: 25 x 2000 = Rp50.000,00 Ikan: 25 x 3000 = Rp75.000,00 Rendang: 16 x 3000 = Rp48.000,00 Total Keuntungan = Rp173.000,00
5. Lihat Komposisi
Gambar 4.5 - Tampilan Lihat Komposisi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
4.4
Pengujian Untuk mengetahui berbagai keluaran yang dihasilkan dari aplikasi ini, maka
penulis membuat beberapa pengujian untuk melihat beberapa perubahan yang dihasilkan sesuai dengan inputannya. Adapun percobaan-percobaan yang akan dilakukan pada sub-bab ini antara lain sebagai berikut. 1) [Percobaan-1] Membandingkan hasil perhitungan dari aplikasi yang dibuat penulis dengan aplikasi QM dan PHPSimplex.com yang menyatakan bahwa nilai hasil outputnya adalah sama. Klik “Tambah Menu” untuk mengisi data-data menu yang baru
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
Klik “Batasan”
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
Klik “lihat cara penyelesaian”
Hasil yang keluar adalah: Jumlah Menu=3 Jumlah Batasan=5 ================================================================ ITERASI KE-1 ================================================================ 0 0 2000 3000 3000 0 0 0 0 0 1000000 7000 9000 11000 1 0 0 0 0 480 5 7 11 0 1 0 0 0 25 1 0 0 0 0 1 0 0 25 0 1 0 0 0 0 1 0 25 0 0 1 0 0 0 0 ================================================================ 0 0 0 0 0 0 0 0 2000 3000 3000 0 0 0 0 cj-Zj :3 Rasio :4 Angka Kunci :1 ================================================================
================================================================ ITERASI KE-2
0 0 0 0 0 1 0 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
================================================================ 0 0 0 0 0 0 0 0 0 0 775000 7000 0 11000 1 0 0 -9000 0 305 5 0 11 0 1 0 -7 0 25 1 0 0 0 0 1 0 3000 25 0 1 0 0 0 0 1 0 25 0 0 1 0 0 0 0 ================================================================ 75000 0 3000 0 0 0 0 3000 2000 0 3000 0 0 0 -3000
0 0 0 0 0 1 0 0
cj-Zj :4 Rasio :5 Angka Kunci :1 ================================================================
================================================================ ITERASI KE-3 ================================================================ 0 0 0 0 0 0 0 0 0 0 500000 7000 0 0 1 0 0 -9000 0 30 5 0 0 0 1 0 -7 0 25 1 0 0 0 0 1 0 3000 25 0 1 0 0 0 0 1 3000 25 0 0 1 0 0 0 0 ================================================================ 150000 0 3000 3000 0 0 0 3000 2000 0 0 0 0 0 -3000
0 -11000 -11 0 0 1 3000 -3000
cj-Zj :2 Rasio :2 Angka Kunci :5 ================================================================
================================================================ ITERASI KE-4 ================================================================ 0 0 0 0 0 0 0 0 0 0 458000 0 0 0 1 -1400 0 800 2000 6 1 0 0 0 0,2 0 -1,4 0 19 0 0 0 0 -0,2 1 1,4 3000 25 0 1 0 0 0 0 1 3000 25 0 0 1 0 0 0 0 ================================================================ 162000 2000 3000 3000 0 400 0 200 0 0 0 0 -400 0 -200
0 4400 -2,2 2,2 0 1 -1400 1400
cj-Zj :9 Rasio :3 Angka Kunci : 2,2 ================================================================
================================================================ ITERASI KE-5 ================================================================ 0 0 0 0 0 0 0 0 0 0 420000 0 0 0 1 -1000 -2000 -2000 2000 25 1 0 0 0 0 1 0 0 8,64 0 0 0 0 -0,09 0,45 0,64 3000 25 0 1 0 0 0 0 1
0 0 0 1 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
3000 16,36 0 0 1 0 0,09 -0,45 -0,64 0 ================================================================ 174090,91 2000 3000 3000 0 272,73 636,36 1090,91 0 0 0 0 0 -272,73 -636,36 -1090,91 0 cj-Zj :2 Rasio :1 Angka Kunci :0 ================================================================ Perhitungan Keuntungan Total Jumlah menu diproduksi dikalikan keuntungan tiap menu Ayam: 25 x 2000 = Rp50.000,00 Ikan: 25 x 3000 = Rp75.000,00 Rendang: 16 x 3000 = Rp48.000,00 Total Keuntungan = Rp173.000,00
Hasil perhitungan menggunakan aplikasi QM
Hasil perhitungan menggunakan PHPSimplex.com
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
2) [Percobaan-2] Hasil produksi salah satu menu ditambah jumlah produksinya Perhitungan Keuntungan Total Jumlah menu diproduksi dikalikan keuntungan tiap menu Ayam: 25 x 2000 = Rp50.000,00 Ikan: 25 x 3000 = Rp75.000,00 Rendang: 16 x 3000 = Rp48.000,00 Total Keuntungan = Rp173.000,00
Total jumlah menu yang diproduksi dari hasil perhitungan sistem adalah: Ayam(x1) = 25 potong,Ikan(x2) = 25 potong, Rendang(x3) = 16 potong. Lalu diubah menjadi: Ayam = 25 potong, Ikan = 25 potong, Rendang = 17.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
Langkah-langkah pengujiannya sebagai berikut: 1. Pengujian Fungsi Tujuan Z = 2000x1 + 3000x2 + 3000x3
Hasil Sistem Z = 2000(25) + 3000(25) + 3000(16) Z = 50000
+ 75000
+ 48000
Z = 173000
Hasil Uji Z = 2000(25) + 3000(25) + 3000(17) Z = 50000
+ 75000
+ 51000
Z = 176000
2. Pengujian Semua Batasan Kendala Waktu 5x1 + 7x2 + 11x3≤ 480
Hasil Sistem 5(25) + 7(25) + 11(16) ≤ 480 125
+ 175 +
176 ≤ 480
476 ≤ 480
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
Hasil Uji 5(25) + 7(25) + 11(17) ≤ 480 125
+ 175 +
187 ≤ 480
575 ≤ 480
Kendala Batas Maksimal Produksi
Hasil Sistem x1 = 25
x2 = 25
x3 = 16
x2 = 25
x3 = 17
Hasil Uji x1 = 25
Kendala Modal 7000x1 + 9000x2 + 11000x3≤ 1000000
Hasil Sistem 7000(25) + 9000(25) + 11000(16) ≤ 1000000 175000
+ 225000 +
176000 ≤ 1000000
576000 ≤ 1000000
Hasil Uji 7000(25) + 9000(25) + 11000(17) ≤ 1000000 175000
+ 225000 +
187000 ≤ 1000000 587000 ≤ 1000000
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
3. Kesimpulan Jika produksi menu ditambah, maka akan menguntungkan. Akan tetapi, hasil perhitungan komposisi dengan sistem dinyatakan paling optimal karena jika produksi menu ditambah lagi akan menjadi tidak memenuhi kendala waktu, walaupun berhasil memenuhi kendala batas maksimal produksi dan modal.
3) [Percobaan-3] Hasil produksi salah satu menu dikurangi jumlah produksinya Perhitungan Keuntungan Total Jumlah menu diproduksi dikalikan keuntungan tiap menu Ayam: 25 x 2000 = Rp50.000,00 Ikan: 25 x 3000 = Rp75.000,00 Rendang: 16 x 3000 = Rp48.000,00 Total Keuntungan = Rp173.000,00
Total jumlah menu yang diproduksi dari hasil perhitungan sistem adalah: Ayam(x1) = 25 potong, Ikan(x2) = 25 potong, Rendang(x3) = 16 potong. Lalu diubah menjadi: Ayam = 24 potong, Ikan = 25 potong, Rendang = 16. Langkah-langkah pengujiannya sebagai berikut: 1. Pengujian Fungsi Tujuan Z = 2000x1 + 3000x2 + 3000x3
Hasil Sistem Z = 2000(25) + 3000(25) + 3000(16) Z = 50000 Z = 173000
+ 75000
+ 48000
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
Hasil Uji Z = 2000(24) + 3000(25) + 3000(16) Z = 48000
+ 75000
+ 48000
Z = 171000
2. Pengujian Semua Batasan Kendala Waktu 5x1 + 7x2 + 11x3≤ 480
Hasil Sistem 5(25) + 7(25) + 11(16) ≤ 480 125
+ 175 +
176 ≤ 480
476 ≤ 480
Hasil Uji 5(24) + 7(25) + 11(16) ≤ 480 120
+ 175 +
176≤ 480
471 ≤ 480
Kendala Batas Maksimal Produksi
Hasil Sistem x1 = 25
x2 = 25
x3 = 16
x2 = 25
x3 = 16
Hasil Uji x1 = 24
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
Kendala Modal 7000x1 + 9000x2 + 11000x3≤ 1000000
Hasil Sistem 7000(25) + 9000(25) + 11000(16) ≤ 1000000 175000
+ 225000 +
176000 ≤ 1000000
576000 ≤ 1000000
Hasil Uji 7000(24) + 9000(25) + 11000(16) ≤ 1000000 168000
+ 225000 +
176000 ≤ 1000000 569000 ≤ 1000000
3. Kesimpulan Walaupun berhasil memenuhi semua kendala, akan tetapi pengurangan jumlah produksi tidak memberikan keuntungan yang paling optimal, karena jumlah produksi yang disarankan sistem memberikan keuntungan lebih besar dan sama-sama memenuhi semua kendala.
4) [Percobaan-4] Uji coba pengguna Untuk dapat mengetahui tanggapan pengguna atas sistem ini, pemilik salah satu Rumah Makan Padang telah diberikan kuisioner yang berisi beberapa pertanyaan terkait fungsional dan penggunaan sistem ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
Dari hasil pengujian terhadap pengguna di atas, dapat disimpulkan bahwa pemilik Rumah Makan Padang yang diwawancara setuju bahwa SPPK Optimasi Komposisi Produksi ini dapat membantunya dalam menentukan komposisi yang memberikan keuntungan optimal. Sistem ini dianggap dapat memenuhi kebutuhannya. Selain itu, dari sisi penggunaannya, pemilik Rumah Makan Padang menganggap bahwa sistem sangat mudah digunakan dan dengan cepat dapat dipahami.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB V PENUTUP
5.1
Kesimpulan Adapun kesimpulan yang dapat diperoleh dari proses penelitian tentang Sistem Pendukung Pengambilan Keputusan Pengoptimalan Keuntungan Berdasarkan Komposisi Penjualan ini, yang diperoleh dari implementasi dan pengujian-pengujian yang telah dijelaskan pada bab-bab sebelumnya, antara lain sebagai berikut. 1. Sistem
Pendukung
Pengambilan
Keputusan
Keuntungan Berdasarkan Komposisi Penjualan
Pengoptimalan ini memberikan
keluaran berupa komposisi produksi makanan yang memberikan keuntungan optimal bagi pemilik Rumah Makan Padang. 2. Hasil perhitungan metode simpleks pada sistem sama dengan hasil perhitungan metode simpleks dengan menggunakan aplikasi QM dan PHPSimplex.com.
5.2
Saran Aplikasi yang dibuat dalam penelitian ini merupakan sistem yang membantu pemilik perusahaan untuk mengoptimalkan keuntungan produksinya berdasarkan komposisi penjualan. Serta dapat digunakan sebagai alat bantu simulasi bagi pengguna yang sedang belajar Pemrograman Linear.
77
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
Akan tetapi, dalam penerapannya, sistem ini masih memerlukan banyak pengembangan. Oleh karena itu, penulis memberikan beberapa saran, antara lain sebagai berikut. 1. Sistem yang dibuat ini masih berbasis desktop dengan tampilan yang masih sederhana. Akan lebih baik jika untuk pengembangannya, sistem ini dapat dibuat dalam versi mobile agar lebih mudah dalam penggunaannya dengan tampilan yang lebih menarik. 2. Oleh karena sistem ini digunakan sebagai alat bantu simulasi bagi pengguna
yang
sedang
belajar
Pemrograman
Linear,
maka
penyelesaian perhitungan simpleks perlu dibuat lebih runtut dan jelas serta diberikan petunjuk-petunjuk.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR PUSTAKA
Abbas, Bahtiar S dan Wiwi Indriani. 2013. Optimasi Proses Produksi Untuk Produk Makanan Dengan Metode Integer Linear Programming Pada PT PSA. Jurnal Teknologi Informasi dan Komunikasi 4 No. 1. Aminudin. 2005. Prinsip-prinsip Riset Operasi. Jakarta : Erlangga. Asrina, Liya dan Migunani. Pengambilan Keputusan Alokasi Sumber Data Produksi Menggunakan Linear Programming (Studi kasus Pada Perusahaan Karim Bakery). Jurnal INASEA 11 No 1 : 45-57. Herry Dwe Yulianto dan I Nyoman Sutapa. 2005. Riset Operasi Dengan Excel. Yogyakarta : Andi. Kusrini. 2007. Konsep & Aplikasi Sistem Pendukung Keputusan. Yogyakarta : Andi. Muslich, Muhammad. 2009. Metode Pengambilan Keputusan Kuantitatif. Jakarta : Bumi Aksara. Soekartawi. 1990. Teori Ekonomi Produksi Dengan Pokok Bahasan Analisis Fungsi Cobb-Douglas. Jakarta : Rajawali. Supranto, J. 1988. Riset Operasi Untuk Pengambilan Keputusan. Jakarta : Universitas Indonesia. Susanta, B. 1994. Program Linear. Yogyakarta. Susilo, Frans. 2006. Himpunan dan Logika Kabur serta Aplikasinya. Yogyakarta : Penerbit Graha Ilmu. Turban Efraim, Jay E. Arason, Ting-Peng Liang. 2005. Decision Support System and Intelligent System. Yogyakarta : Andi. Windarti, Tantri. 2013. Pemodelan Optimalisasi Produksi Untuk Memaksimalkan Keuntungan Menggunakan Metode Pemrograman Liniear. Jurnal Spektrum Industri 11 No 2.
79