Sistem Pendukung Keputusan Pembelian, Penjualan, dan Pengelolaan Stok Barang Dengan Metode Fuzzy Christian Suhindar dan Meliana Christianti J. Jurusan S1 Teknik Informatika, Fakultas Teknologi Informasi Universitas Kristen Maranatha, Bandung Abstract The application made is a decision support system to determine the best suppliers based on delivery time and payment terms as well as determining the recommended items to increase the stock. The application is webbased with the PHP programming language and Fuzzy methods Tahani model. The results of the implementation of this application consists of six main modules, namely Purchases, Sales, Stock, User, Supplier and Decision Support Systems. In the purchase module, there are three parts: purchasing, goods receipt, and billing. Purchasing module is a log from transaction of goods order that has been made to suppliers, whereas the goods receipt describes the goods received from suppliers based on the previous reservation, and billing is the recording data of payment based on the goods that have been received. Sales module is the management of sales data. Stock is the master data items management. The users and suppliers module contains the data management user application and Mustika Sport supplier. Decision support system module is divided into two parts, namely the addition of stock recommendations based on the amount of goods bought and sold, and the determination of the best suppliers based on payment terms and delivery time. Keywords: best supplier, decision support systems, fuzzy, recommended products. I. Pendahuluan 1.1 Latar Belakang Saat ini teknologi komputer sudah dimanfaatkan dalam berbagai bidang usaha mulai dari usaha kelas besar, kelas menengah, sampai usaha kelas kecil pun sudah banyak yang menggunakan teknologi komputer. Pertokoan pun sudah mulai banyak yang menggunakan teknologi komputer dalam melakukan perhitungan stok barang, pembelian, penjualan dan lain-lain. Tingkat efektivitas dan efisiensi menjadi faktor utama yang menggiurkan bagi para pengusaha untuk menggunakan teknologi komputer. Salah satunya adalah Mustika Sport. Mustika Sport adalah salah satu usaha yang bergerak dalam jual-beli alat-alat olahraga. Selama ini Mustika Sport melakukan proses bisnisnya secara manual, mulai dari pembelian, penjualan, dan pengelolaan stok barang pun belum menggunakan teknologi komputer. Seiring perkembangan usahanya, Mustika Sport mulai kesulitan dalam menjalankan proses bisnisnya. Hal ini dikarenakan arsip-arsip dari pembelian dan penjualan yang telah dilakukan semakin banyak dan tidak teratur. Pengawasan terhadap stok barang pun sudah tidak terkontrol lagi. Dalam melakukan pembelian, Mustika Sport sudah memiliki beberapa supplier tetap di beberapa kota. Payment term dan delivery time menjadi pertimbangan utama dalam melakukan pembelian. Persediaan barang yang dimiliki oleh Mustika Sport tidak terawasi, sehingga sering terjadi kehabisan stok. Mustika Sport membutuhkan suatu aplikasi komputer yang secara khusus membantu untuk menjalankan proses bisnisnya, baik dalam proses pembelian, penjualan, maupun pengelolaan stok barang. Selain itu aplikasi ini juga diharapkan dapat memberikan rekomendasi untuk membantu dalam pengambilan keputusan seperti, penentuan supplier terbaik untuk melakukan pembelian berdasarkan 56 Sistem Pendukung Keputusan Pembelian, Penjualan, dan Pengelolaan Stok Barang Dengan Metode Fuzzy. (Christian Suhindar dan Meliana Christianti J) payment term dan delivery time, penentuan barang yang layak untuk dinaikkan harga jualnya dengan analisis barang yang banyak terjual tetapi sedikit pembeliannya, dan pengawasan terhadap stok barang. 1.2 Rumusan Masalah Berdasarkan latar belakang pada bagian 1.1, dapat dirumuskan beberapa pokok permasalahan yang akan dianalisis serta dikaji, yaitu: 1. Bagaimana membangun aplikasi yang dapat mengelola data pembelian, penjualan dan stok barang di Mustika Sport? 2. Bagaimana membangun aplikasi yang dapat membantu proses pengambilan keputusan untuk memilih supplier terbaik dalam melakukan pembelian? 3. Bagaimana membangun aplikasi yang dapat membantu proses pengambilan keputusan untuk menaikkan harga jual? 4. Bagaimana membangun aplikasi yang dapat membantu proses pengawasan data stok barang? 1.3 Tujuan Berdasarkan rumusan masalah yang ada, dapat diarahkan tujuan pembahasan adalah sebagai berikut: 1. Membuat aplikasi yang dapat mengelola data pembelian, penjualan dan stok barang. 2. Menerapkan sistem pendukung keputusan dalam proses pembelian dengan memberikan rekomendasi supplier terbaik berdasarkan payment term dan delivery time. 3. Menerapkan sistem pendukung keputusan dalam proses penjualan dengan memberikan informasi berupa nama barang yang banyak terjual tetapi sedikit pembeliannya. 4. Membuat aplikasi yang memberikan peringatan untuk melakukan pembelian jika ada stok barang yang habis. 1.4 Batasan Masalah Berdasarkan tujuan pembahasan yang telah dibuat, aspek-aspek yang akan menjadi tolak ukur dalam pembahasan adalah sebagai berikut: 1. Aplikasi yang dihasilkan adalah aplikasi berbasis web dengan bahasa pemrograman PHP. 2. Aplikasi yang dihasilkan adalah aplikasi sistem pendukung keputusan dengan metode Fuzzy basis data model Tahani. 3. Aplikasi ini hanya akan diimplementasikan di Mustika Sport. 4. Aplikasi ini memiliki validasi pengguna untuk membatasi hak akses. 5. Aplikasi yang dibuat mencakup proses pembelian, penjualan dan pengelolaan stok barang. 6. Aplikasi ini memberikan beberapa supplier yang disarankan untuk melakukan pembelian. 7. Aplikasi ini memberikan informasi berupa nama barang yang disarankan untuk dinaikkan harga jualnya. 8. Aplikasi ini memberikan peringatan kepada pengguna jika ada stok barang perlu ditambah. II. Kajian Teori 2.1 Sistem Pendukung Keputusan Sistem pendukung keputusan (SPK) adalah bagian dari sistem informasi berbasis komputer yang dipakai untuk mendukung pengambilan keputusan dalam suatu organisasi atau perusahaan. 57 Zenit Volume 1 Nomor 1 April 2012 2.1.1 Logika Fuzzy Logika fuzzy dikatakan sebagai logika baru yang lama, sebab ilmu tentang logika fuzzy modern dan metodis baru ditemukan beberapa tahun yang lalu, padahal sebenarnya konsep tentang logika fuzzy itu sendiri sudah ada sejak lama. Logika fuzzy adalah suatu cara yang tepat untuk memetakan suatu ruang input ke dalam suatu ruang output (Kusumadewi & Purnomo, 2004:1). Ada beberapa alasan mengapa orang menggunakan logika fuzzy, antara lain: 1. Konsep logika fuzzy mudah dimengerti. Konsep matematis yang mendasari penalaran fuzzy sangat sederhana dan mudah dimengerti. 2. Logika fuzzy sangat fleksibel. 3. Logika fuzzy memiliki toleransi terhadap data-data yang tidak tepat. 4. Logika fuzzy mampu memodelkan fungsi-fungsi nonlinear yang sangat kompleks. 5. Logika fuzzy dapat membangun dan mengaplikasikan pengalaman-pengalaman para pakar secara langsung tanpa harus mengalami proses pelatihan. 6. Logika fuzzy dapat bekerja sama dengan teknik-teknik kendali secara konvensional. 7. Logika fuzzy didasarkan pada bahasa alami. 2.1.2 Basis Data Fuzzy Model Tahani Sebagian besar basis data standar diklasifikasikan berdasarkan bagaimana data tersebut dipandang oleh user. Misalkan ada data supplier yang tersimpan pada tabel DT_SUPPLIER dengan field KdSup, NamaSup, TlpSup, AlamatSup, dan Payment Term, seperti yagn terlihat pada tabel I. Kode S-01 S-02 S-03 S-04 S-05 S-06 S-07 S-08 S-09 S-10 Nama Lina Didit Rendy Rama Ester Eny Tony Fany Ade Anton Tabel I Data Supplier Tlp. Alamat 08123456789 08132456789 08143256789 08156452379 08163254789 08194562378 08172412345 08184561384 08114253789 08166677777 Tegal Palembang Palembang Banjar Banjar Bandung Bandung Tegal Tangerang Bandung Payment Term (hari) 90 60 21 0 30 14 7 10 10 7 Delivery Time (hari) 3 7 21 30 10 14 21 14 10 20 Dengan menggunakan basis data standar, dapat dicari data supplier dengan spesifikasi tertentu dengan menggunakan query. Misalnya informasi tentang nama-nama supplier yang berada di Bandung, informasi tentang nama-nama supplier yang diawali huruf “E”, dan lain-lain. Pada kenyataannya, seseorang kadang membutuhkan informasi dari data yang bersifat ambigu. Apabila hal ini terjadi, maka akan digunakan basis data fuzzy. Selama ini, sudah ada beberapa penelitian tentang basis data fuzzy, salah satunya adalah model Tahani. Basis data model Tahani masih tetap menggunakan relasi standar, hanya saja model ini menggunakan teori himpunan fuzzy untuk mendapatkan informasi pada query-nya. Misalkan dalam mengkategorikan payment term supplier di atas ke dalam himpunan: CEPAT, BIASA, dan LAMA. 58 Sistem Pendukung Keputusan Pembelian, Penjualan, dan Pengelolaan Stok Barang Dengan Metode Fuzzy. (Christian Suhindar dan Meliana Christianti J) 1 BIASA CEPAT LAMA µ[x] 0 7 15 20 60 65 Payment term (hari) Gambar 1 Fungsi keanggotaan untuk variabel payment term Fungsi keanggotaan: Tabel II menunjukkan tabel supplier berdasarkan payment term dengan derajat keanggotaannya pada setiap himpunan. Tabel II Supplier berdasarkan payment term Paymen Derajat Keanggotaan ( [x] ) Kod Nama t Term e CEPAT BIASA LAMA (hari) S-01 Lina 90 0 0 1 S-02 Didit 60 0 1 0,8889 S-03 Rendy 21 0 0,1333 0,0222 S-04 Rama 0 1 0 0 S-05 Ester 30 0 0,3333 0,2222 S-06 Eny 14 0,4615 0 0 S-07 Tony 7 1 0 0 S-08 Fany 10 0,7692 0 0 S-09 Ade 12 0,6154 0 0 S-10 Anton 7 1 0 0 Variabel delivery time bisa dikategorikan dalam himpunan: CEPAT, SEDANG, dan LAMA, seperti yang terlihat pada gambar 2. 59 Zenit Volume 1 Nomor 1 April 2012 1 SEDANG CEPAT LAMA µ[y] 0 7 10 14 21 30 Harga(Rp.) Gambar 2 Fungsi keanggotaan untuk variabel delivery time Tabel III menunjukkan tabel supplier berdasarkan delivery time dengan derajat keanggotaannya pada setiap himpunan. 60 Kode Nama S-01 S-02 S-03 S-04 S-05 S-06 S-07 S-08 S-09 S-10 Lina Didit Rendy Rama Ester Eny Tony Fany Ade Anton Tabel III Supplier berdasarkan delivery time Delivery Derajat Keanggotaan ( [y] ) Time CEPAT SEDANG LAMA (hari) 3 1 0 0 7 1 0 0 21 0 1 0,4375 30 0 0 1 10 0,5714 0 0 14 0 0,3636 0 21 0 1 0,4375 14 0 0,3636 0 10 0,5714 0 0 20 0 0,9091 0,375 Sistem Pendukung Keputusan Pembelian, Penjualan, dan Pengelolaan Stok Barang Dengan Metode Fuzzy. (Christian Suhindar dan Meliana Christianti J) Contoh query yang dapat dilakukan adalah sebagai berikut: Siapa sajakah supplier yang payment term-nya lama tetapi delivery time-nya cepat? SELECT NAMA FROM SUPPLIER WHERE (Payment term= “LAMA”) and (Delivery time= “CEPAT”) Tabel IV menunjukkan hasil query, yaitu nama-nama supplier yang payment term-nya lama tetapi delivery time-nya cepat. Tabel IV Hasil query KODE NAMA PAYMENT DELIVERY Derajat Keanggotaan TERM TIME PAYMENT DELIVERY PT LAMA TERM TIME dan LAMA CEPAT DT CEPAT S-01 Lina 90 3 1 1 1 S-02 Didit 60 7 0,8889 1 0,8889 S-05 Ester 30 10 0,2222 0,5714 0,2222 S-03 Rendy 21 21 0,0222 0 0 S-04 Rama 0 30 0 0 0 S-06 Eny 14 14 0 0 0 S-07 Tony 7 21 0 0 0 S-08 Fany 10 14 0 0 0 S-09 Ade 12 10 0 0,5714 0 S-10 Anton 7 20 0 0 0 III. Analisis 3.1 Proses Bisnis Berikut ini adalah proses bisnis yang dilakukan oleh Mustika Sport dalam melakukan pembelian dan penjualan: 3.1.1 Alur Kerja Proses Pembelian Tahap-tahap dilakukannya proses pembelian oleh Mustika Sport sebagai berikut: 1. Jika Mustika Sport akan melakukan pembelian, maka akan dibuat daftar barang yang akan dibeli. 2. Mustika Sport akan menghubungi beberapa supplier melalui telepon untuk menanyakan ketersediaan barang dan harganya. 3. Mustika Sport membandingkan harga barang yang akan dibeli dari tiap supplier. 4. Supplier yang menawarkan harga yang paling murah akan dipilih. 5. Supplier yang dipilih akan mengirimkan barang sesuai pesanan Mustika Sport. 6. Mustika Sport menentukan harga jual yang baru berdasarkan harga beli dari faktur pembelian tersebut ditambah dengan laba yang diharapkan. 7. Faktur dari pembelian tersebut disimpan sebagai arsip Mustika Sport. 3.1.2 Alur Kerja Proses Penjualan Tahap-tahap dalam melakukan proses penjualan, yaitu: 1. Customer melakukan pembelian dengan cara datang secara langsung atau memesan terlebih dahulu melalui telepon. 2. Setelah customer memilih barang yang akan dibeli, maka akan dibuat nota penjualan. 3. Nota penjualan tersebut akan dicocokkan dengan barang yang sudah dibeli oleh customer. 4. Nota tersebut diberikan kepada customer. Dari proses bisnis di pada bagian 3.1.1. dan 3.1.2., dapat disimpulkan bahwa proses bisnis di Mustika Sport dilakukan secara manual, seperti mencatat barang yang akan dibeli, melakukan pembelian, mencocokkan pesanan dengan faktur beli dan membuat faktur penjualan. Selain itu belum 61 Zenit Volume 1 Nomor 1 April 2012 ada pencatatan pembelian yang telah dilakukan secara khusus, pembuatan faktur penjualan dan pengawasan stok barang. IV. Perancangan 4.1. Entity Relationship Diagram Entitas TUser memiliki 5 buah atribut, yaitu KdUser, NamaLengkap, Username, Password, dan LevelUser. Entitas ini adalah gambaran dari data pengguna aplikasi ini. Entitas TSupplier adalah gambaran dari data supplier yang sudah terdata oleh pihak Mustika Sport. Entitas ini memiliki 6 buah atribut, yaitu KdSup sebagai primary key, NamaSup, TlpSup, AlamatSup, DeliveryTime, dan PaymentTerm. Selain itu entitas ini memiliki relasi satu ke banyak dengan entitas TMasterBeli, yang berarti bahwa setiap supplier dapat menerima banyak pemesanan. Entitas TMasterBeli adalah gambaran data dari setiap pemesanan yang dilakukan oleh Mustika Sport kepada para supplier. Entitas ini memiliki tiga buah atribut, yaitu KdBeli sebagai primary key, TglBeli, dan StatusBeli. Selain memiliki relasi dengan entitas TSupplier, entitas ini juga memiliki relasi satu ke banyak dengan entitas TDetailBeli dan relasi satuke satu dengan entitas TMasterPenerimaan. Entitas TDetailBeli adalah gambaran dari setiap barang yang dipesan oleh Mustika Sport kepada supplier dalam satu kali pemesanan. Entitas ini memiliki dua atribut, yaitu NoDetailBeli sebagai primary key dan QtyBeli. Selain memiliki relasi dengan TMasterBeli, entitas ini juga mempunyai relasi banyak ke satu dengan entitas TBarang. Entitas TMasterPenerimaan adalah gambaran dari setiap penerimaan barang dari supplier berdasarkan pemesanan yang telah dilakukan sebelumnya. Entitas ini memiliki lima atribut, yaitu KdGR sebagai primary key, TglGR, TglTagih, NoFaktur, dan TotalGR. Selain memiliki relasi dengan entitas TMasterBeli, entitas ini juga memiliki relasi satu ke banyak dengan entitas TDetailPenerimaan. Entitas TDetailPenerimaan adalah gambaran dari setiap barang yang diterima oleh Mustika Sport dari supplier dalam satu kali penerimaan barang. Entitas ini memiliki 3 buah atribut, yaitu NoDetailGR sebagai primary key, HrgGR, dan QtyGR. Selain memiliki relasi dengan entitas TMasterPenerimaan, entitas ini juga memiliki relasi banyak ke satu dengan entitas TBarang. Entitas TBarang adalah gambaran dari setiap barang yang diperjualbelikan di Mustika Sport. Entitas ini memiliki 5 buah atribut, yaitu KdBrg sebagai primary key, NamaBrg, Stok, HrgPokok, dan HrgJual. Selain memiliki relasi dengan entitas TDetailBeli dan TDetailPenerimaan, entitas ini juga memiliki relasi satu ke banyak dengan entitas TDetailJual. Entitas TDetailJual adalah gambaran dari setiap barang yang dijual oleh Mustika Sport dalam satu kali penjualan. Entitas ini memiliki 3 buah atribut, yaitu NoDetailJual sebagai primary key, HrgJualDetail, dan QtyJual. Selain memiliki relasi dengan entitas TBarang, entitas ini juga memiliki relasi banyak ke satu dengan entitas TMasterJual. Entitas TMasterJual adalah gambaran dari setiap penjualan yang dilakukan oleh Mustika Sport. Entitas ini memiliki 3 buah atribut, yaitu KdJual sebagai primary key, TglJual, dan TotalJual. Entitas ini hanya memiliki relasi dengan entitas TDetailJual saja. Penjelasan ini digambarkan pada gambar 3. 62 Sistem Pendukung Keputusan Pembelian, Penjualan, dan Pengelolaan Stok Barang Dengan Metode Fuzzy. (Christian Suhindar dan Meliana Christianti J) Gambar 3 Entity Relationship Diagram Aplikasi Mustika Sport 4.2. Data Flow Diagram (DFD) Pada sistem pendukung keputusan Mustika Sport terdapat dua buah entitas eksternal, yaitu pengguna dan administrator. Pada DFD level satu terdapat tujuh buah proses yang terdapat dalam sistem, yaitu login, pembelian, penjualan, pengelolaan stok barang, pengelolaan supplier, pengelolaan pengguna, dan sistem pendukung keputusan. Hal tersebut dapat dilihat pada Gambar 4. Gambar 4 DFD Level 1 63 Zenit Volume 1 Nomor 1 April 2012 V. Implementasi 5.1 Sistem Pendukung Keputusan (SPK) Tampilan yang muncul jika pengguna memilih menu “SPK” pada bagian atas atau memilih submenu “Rekomendasi” pada modul SPK ini adalah tampilan yang menunjukkan bahwa daftar barang yang direkomendasikan untuk dinaikkan harganya. Semakin besar “Derajat Terjual Banyak dan Dibeli Sedikit ”, maka makin baik rekomendasinya. Daftar dalam tabel tersebut sudah terurut dari rekomendasi terbaik hingga terburuk. Pada bagian ini pengguna juga dapat melihat rekomendasi berdasarkan jangka waktu tertentu dengan cara memilih tanggal awal dan tanggal akhir pada combo box yang tersedia, kemudian tekan tombol “Filter”. Hal tersebut dapat dilihat pada gambar 5. Gambar 5 Rekomendasi Barang Tampilan yang akan muncul jika pengguna memilih submenu “Supplier Terbaik” pada modul SPK adalah tampilan yang menunjukkan daftar supplier terbaik untuk dilakukan pembelian. Semakin besar nilai “Derajat Hasil”, maka semakin baik supplier tersebut. Pengguna juga dapat mencari supplier terbaik berdasarkan barang yang akan dibeli oleh Mustika Sport dengan cara memilih nama barang yang ada pada combobox, kemudian tekan tombol “Cari”. Hal tersebut dapat dilihat pada gambar 6. Gambar 6 Supplier Terbaik 64 Sistem Pendukung Keputusan Pembelian, Penjualan, dan Pengelolaan Stok Barang Dengan Metode Fuzzy. (Christian Suhindar dan Meliana Christianti J) Berikut adalah kelas yang merupakan bagian yang melakukan proses perhitungan derajat nilai fuzzy: class SPK{ var $batas; function __construct($tabel,$kolom){ $query = mysql_query("select max(".$kolom.") as maks from ".$tabel); while($row=mysql_fetch_array($query)){ $this->batas = $row{'maks'}; } $this->batas = $this->batas/3; if($this->batas == 0){ $this->batas = 1; } } function convertNilaiSedikit($nilai){ if($nilai<($this->batas)/2){ return 1; }else if($nilai>=($this->batas)/2 and $nilai<=($this->batas+($this->batas/2))){ return (($this->batas+($this>batas/2))-$nilai)/$this->batas; }else{ return 0; } } function convertNilaiBanyak($nilai){ if($nilai<=($this->batas+($this>batas/2))){ return 0; }else if($nilai>($this->batas+($this>batas/2)) and $nilai<=($this->batas*2)){ return ($nilai-($this->batas+($this>batas/2)))/($this->batas/2); Kode Program 1 Kelas Sistem Pendukung Keputusan }else{ return 1; } VI. Simpulan dan}Saran } 6.1. Simpulan Kesimpulan yang didapat berdasarkan tujuan yang telah disampaikan di bagian dapat terpenuhi sesuai dengan poin-poin berikut: 1. Aplikasi yang dibuat memiliki fitur-fitur untuk pembelian, penjualan, maupun pengelolaan stok barang. 2. Sistem pendukung keputusan untuk mencari supplier terbaik sudah diimplementasikan baik supplier berdasarkan barang tertentu maupun semua barang. Variabel pembanding antara satu supplier dengan supplier yang lainnya adalah delivery time yang tercepat dan payment term yang terlama. 3. Sistem pendukung keputusan untuk merekomendasikan barang yang layak dinaikkan harga jualnya sudah diimplementasikan dalam aplikasi yang dibuat. Variabel yang digunakan adalah jumlah barang yang sedikit pembeliannya, tetapi banyak jumlah penjualannya. 4. Aplikasi yang dibuat dapat memberikan peringatan jika ada stok barang yang sudah habis sehingga pengguna dapat melihat data barang apa yang sudah habis. 65 Zenit Volume 1 Nomor 1 April 2012 6.2. Saran Untuk pengembangan aplikasi ini agar lebih efektif dan efisien, penulis menyarankan beberapa hal sebagai berikut: 1. Aplikasi ini dapat dikembangkan agar dapat menggunakan barcode reader sebagai input data barang agar pencatatan data penjualan maupun pembelian dapat lebih efisien. 2. Aplikasi ini dikembangkan agar memiliki tingkat keamanan yang lebih baik dalam hal pengiriman data, masukkan, dan hak akses. 3. Aplikasi ini dapat dikembangkan agar memiliki fitur untuk mencetak faktur penjualan, laporan keuangan, dan sebagainya. Daftar Pustaka Hamidin, Dini. 2008. “Bab 7 Kamus Data (Data Dictionary)”. Retrieved January 29, 2008, from http://dhamidin.files.wordpress.com/2008/01/handout-7.pdf Kusumadewi, Sri, & Purnomo, Hari. 2004. Aplikasi Logika Fuzzy untuk Pendukung Keputusan. Yogyakarta: Graha Ilmu. Parno. 2006. “Data Flow Diagram”. Retrieved tavipia.staff.gunadarma.ac.id/Downloads/files/15425/DFD.pdf June Primashanti, Ida Ayu Y.2007. “Entity Relationship Diagram”. Retrieved http://iaprima.staff.gunadarma.ac.id/Downloadsfiles/5459/Bahasan9a_ERD.ppt 20, June 2010, 20, 2010, Siegel, Joel G., & Shim, Jae K. 1999. Kamus Istilah Akuntansi. Jakarta: PT. Elex Media Komputindo. Syafii, M. 2004. Membangun Aplikasi Berbasis PHP dan MySQL. Yogyakarta: ANDI. Wang, Li-Xin. 1994. Adaptive Fuzzy Systems and Control. New Jersey: Prentice-Hall. 66 from from