laporan ta yoga adiyasa
DESCRIPTION
TUGAS AKHIRSISTEM PENDUKUNG KEPUTUSAN ESTIMASI JUMLAH PRODUKSI GULA DENGAN LOGIKA FUZZY (STUDI KASUS DI PT. MADU BARU YOGYAKARTA)Untuk memenuhi sebagai prasyarat Mencapai derajat S1Disusun oleh : Yoga Adiyasa 04030033JURUSAN TEKNIK INFORMATIKA SEKOLAH TINGGI TEKNOLOGI ADISUTJIPTO YOGYAKARTA 2008LEMBAR PENGESAHANSISTEM PENDUKUNG KEPUTUSAN ESTIMASI JUMLAH PRODUKSI GULA DENGAN LOGIKA FUZZY (STUDI KASUS DI PT. MADU BARU YOGYAKARTA)Yang dipersiapkan dan disusun olehYoga Adiyasa 04030TRANSCRIPT
TUGAS AKHIR
SISTEM PENDUKUNG KEPUTUSAN
ESTIMASI JUMLAH PRODUKSI GULA DENGAN LOGIKA FUZZY
(STUDI KASUS DI PT. MADU BARU YOGYAKARTA)
Untuk memenuhi sebagai prasyarat
Mencapai derajat S1
Disusun oleh :
Yoga Adiyasa
04030033
JURUSAN TEKNIK INFORMATIKA
SEKOLAH TINGGI TEKNOLOGI ADISUTJIPTO
YOGYAKARTA
2008
LEMBAR PENGESAHAN
SISTEM PENDUKUNG KEPUTUSAN
ESTIMASI JUMLAH PRODUKSI GULA DENGAN LOGIKA FUZZY
(STUDI KASUS DI PT. MADU BARU YOGYAKARTA)
Yang dipersiapkan dan disusun oleh
Yoga Adiyasa
04030033
Tugas Akhir ini telah dipertahankan dan diujikan di depan Tim Penguji
pada tanggal 20 Agustus 2008 dan telah lulus memenuhi syarat
Susunan Tim Penguji
Ketua Penguji : Yuliani Indrianingsih, S.T., M.Kom. ( )
Penguji I : Drs. Agus Basukesti, M.T. ( )
Penguji II : Nurochman, S.Kom., M.Kom. ( )
Penguji III : Anton Setiawan H., S.Kom, M.T. ( )
Mengetahui,
Ketua Sekolah Tinggi Teknologi
Adisutjipto Yogyakarta
Ir. Suyitmadi, M.T.
Ketua Jurusan
Teknik Informatika
Nurochman, S.Kom., M.Kom.
SURAT PERNYATAAN
Yang bertanda tangan di bawah ini:
Nama : Yoga Adiyasa
NIM : 04030033
Judul Tugas Akhir : Sistem Pendukung Keputusan Estimasi Jumlah Produksi
Gula dengan Logika Fuzzy
( Studi Kasus di PT. Madu Baru Yogyakarta )
Menyatakan bahwa tugas akhir yang saya buat benar-benar karya orisinil
(bukan plagiat). Jika dikemudian hari terdapat permasalahan mengenai orisinilitas,
saya bersedia menjalani ketentuan yang berlaku.
Yogyakarta, Agustus 2008
Yang menyatakan,
Yoga Adiyasa
04030033
iv
HALAMAN MOTTO
Just Do It…
Do The Best Think The Worst…
Lakukan segala sesuatu dengan niat dan ikhlas...
v
HALAMAN PERSEMBAHAN
Tugas Akhir ini dengan bangga Aku persembahkan untuk…..
Allah SWT atas berkah dan rahmat-Nya, yang memberikan nafas
kekuatan kehidupan kepada Aku.
Bapak dan Mamaku tercinta yang senantiasa memberikan semangat,
do’a, dan petuah untuk maju menjalani kehidupan.
Adik-adikku tercinta Atma dan Putri yang selalu mendukung langkah
Mas, jangan nakal...belajar dan terus belajar...!
Simbah, Pak/Bu Dhe, Pak/Bu Lek, Sepupu, Ponakan....Great!
Pak Adi (Pertamina), Pak Yusuf, Bu Enti, Bu Cicih, Bu Titin, Pak
Sartono (Telkom), Mas Agus, Pak Hero, Pak Anton, Bu Yuli (STTA),
Bu Kusrini (AMIKOM). Terima kasih atas bimbingan dan
motivasinya...untuk menjadi survive!
Dosen-dosen dan para staf STTA terimakasih banyak…
Anak-anak Informatika angkatan 2004 makasih yah…kalian adalah
nyawa bagi setiap perjalananku…untuk setiap kebersamaan dan
kehangatan…
Seluruh mahasiswa dan Kampus STTAku tercinta…makasih sudah
membuatku menjadi seseorang yang berjiwa besar.
Rekan-rekan organisasi STTA, terima kasih telah merubah paradigma
berpikirku selama di perkuliahan.
Sang Pelangiku yang hanya ada di kala hujan, Makasih telah pernah
singgah di hatiku.....
Dian Sang Motivator baruku, Moga menjadi guru yang berguna bagi
bangsa Indonesia...SALUT!
vi
Rekanku Joy (Thanks4 pijitan and traktirannya...dapet salam dari
pajangan komputer!), Dewi (pilih mana ?), Eko (Thanks Laptopnya),
Fariz (tegaskan langkah), Tina vs Tini why (yang Semangat), Fitria
(Belajar teruz), Danu (Jangan tidur teruz), Putra (Dah ngrasain kan?),
Kriting (salam buat ibumu), Ucix (semangat), Willy (KP-nya
dikelarin), Peri (Sang Jawara satu koma), Mb. Pur (Enjoy aj), Asih
(Ndang Maju), Jery (salam buat Tom), Alex (The bottom), Syara
(Kapan yang ke-2 ?), Agung (Sing Sregeb), Damas (Maju trz), Kasri
(Thx tebengannya), Prames (Belajar rajin mb.), Skd Gaul2, Pika
(mantapkan hati), Gun2 (4 All :Makasih atas
kebersamaannya...Semangat, sukses, dan Kerja Keras), Mas Endro,
Donny, Piniel (Tim PKM 2008 ku...GREAT!!!), Roy WNG vs Jito
(Makasih untuk temen jaga warnet ’n Bakso Gratisnya....Met berjuang
untuk kalian...Sukses!), Tri ’n Dirgant (Siap Pak Letnan!), Anang ’n
Udin (Kompak!), Zozo (Thanks untuk PHP-nya) , Ms. Yanto vs Ms.
Inyong (Met berkelana), Nur, Yho, Lisa ”Lampir”, Havidz, Beta, Ratna,
Ipul, Ima, Dora, Iti, Sukma (Met berjuang), Babe ’n Hariz (Thanks buat
nongkrongnya), Ms. Jati, Mb. Reny, Mb. Rini ”Warnet”, Mb. Cahya
(Thanks), Irfan UTY dan Ari UII (Thanks atas sharingnya).
Topix, Rendy, Ayu, Dika Thanks atas kebersamaannya magang di
Telkom...Gila abiz!!!
X.IPA3 SMANSA SOLO (The Great Friends), Jaga kekeluargaan kita…
>> I MISS ‘N LOVE YOU ALL… 4EVER<<
vii
KATA PENGANTAR
Alhamdulillahirabbil’alamin, puji syukur Penulis panjatkan atas kehadirat
Allah SWT, yang telah memberikan rahmat dan hidayah-Nya sehingga Penulis
dapat menyelesaikan Laporan Tugas Akhir dengan judul :
SISTEM PENDUKUNG KEPUTUSAN ESTIMASI JUMLAH PRODUKSI
GULA DENGAN LOGIKA FUZZY
( STUDI KASUS PT. MADU BARU YOGYAKARTA )
Laporan Tugas Akhir ini sebagai prasyarat untuk meraih gelar sarjana
Strata 1 jurusan Teknik Informatika Sekolah Tinggi Teknologi Adisutjipto
Yogyakarta. Judul yang diangkat merupakan alternatif pendukung keputusan
dalam mengestimasi target jumlah produksi gula per tahun di PT. Madu Baru
Yogyakarta yang dihitung dengan teknik Logika Fuzzy dengan Metode Inferensi
Tsukamoto.
Penulis menyadari bahwa tanpa bantuan dari berbagai pihak, Penulis tidak
mungkin menyelesaikan Laporan Tugas Akhir ini. Oleh karena itu, pada
kesempatan ini Penulis menghaturkan terima kasih kepada yang terhormat :
1. Bapak Ir. Suyitmadi, M.T. Selaku Ketua Sekolah Tinggi Teknologi
Adisutjipto Yogyakarta.
2. Bapak Nurochman, S.Kom, M.Kom. Selaku Ketua Jurusan Teknik
Informatika.
3. Bapak Anton Setiawan H., S.Kom., M.T. Selaku Dosen Pembimbing I.
4. Ibu Yuliani Indrianingsih, S.T., M.Kom. Selaku Dosen Pembimbing II.
5. Bapak Widiyanto, SE. Selaku Pembimbing di PT. Madubaru Yogyakarta.
6. Bapak/ Ibu dosen dan para staf Sekolah Tinggi Teknologi Adisutjipto
Yogyakarta.
7. Kedua Orang tua dan adik-adikku yang tak henti-hentinya mendukung
baik do’a maupun semangat untuk menyelesaikan Laporan Tugas Akhir
ini.
8. Rekan-rekan semua angkatan Teknik Informatika khususnya angkatan
2004, terima kasih atas do’a dan kebersamaannya.
viii
9. Pak Adi (Pertamina), Pak Yusuf, Bu Enti, Bu Cicih, Bu Titin, Pak Sartono
(Telkom), Mas Agus, Pak Hero (STTA), Bu Kusrini (AMIKOM). Terima
kasih atas arahannya.
10. Semua rekan yang tidak bisa disebutkan satu persatu, yang telah
membantu merealisasikan Laporan Tugas Akhir ini. I Love U Guys....!
Semoga Allah SWT memberikan limpahan taufiq dan hidayah-Nya kepada
mereka semua yang telah membantu menyusun Laporan Tugas Akhir ini. Amin.
Penulis menyadari bahwa dalam penyusunan Laporan Tugas Akhir ini masih
banyak kekurangan baik dalam bentuk maupun isi karena keterbatasan
kemampuan Penulis. Oleh karena itu, Penulis mengharapkan kritik dan saran yang
membangun agar Penulis dapat menjadikannya yang lebih baik lagi di kemudian
hari.
Semoga Laporan Tugas Akhir ini bermanfaat bagi segenap elemen
khususnya bagi pengembangan pendidikan di Indonesia dalam menyikapi
perkembangan teknologi informasi. Semoga Allah SWT senantiasa memberikan
berkah dan rahmat-Nya. Amin.
Yogyakarta, Agustus 2008
Yoga Adiyasa
ix
DAFTAR ISI
HALAMAN JUDUL ..................................................................................... i
LEMBAR PENGESAHAN .......................................................................... ii
SURAT PERNYATAAN .............................................................................. iii
HALAMAN MOTTO ................................................................................... iv
HALAMAN PERSEMBAHAN ................................................................... v
KATA PENGANTAR................................................................................... vii
DAFTAR ISI.................................................................................................. ix
DAFTAR GAMBAR..................................................................................... xii
DAFTAR TABEL ......................................................................................... xv
INTISARI ...................................................................................................... xvi
ABSTRACT .................................................................................................... xvii
BAB I PENDAHULUAN.............................................................................. 1
1.1 Latar Belakang Masalah ............................................................................ 1
1.2 Rumusan Masalah ..................................................................................... 2
1.3 Batasan Masalah........................................................................................ 3
1.4 Tujuan Penelitian ...................................................................................... 3
1.5 Manfaat Penelitian .................................................................................... 3
1.6 Metode Penelitian...................................................................................... 4
BAB II LANDASAN TEORI ....................................................................... 5
2.1 Definisi Sistem .......................................................................................... 5
2.2 Konsep Sistem Pendukung Keputusan ..................................................... 5
2.2.1 Definisi Sistem Pendukung Keputusan ............................................ 5
2.2.2 Karakteristik dan Kapabilitas Sistem Pendukung Keputusan.......... 7
2.2.3 Komponen Sistem Pendukung Keputusan ....................................... 8
2.3 Logika Fuzzy ............................................................................................. 10
2.3.1 Himpunan Fuzzy .............................................................................. 11
2.3.2 Fungsi Keanggotaan......................................................................... 13
2.3.3 Operator Dasar Zadeh untuk Operasi Himpunan Fuzzy .................. 17
x
2.3.4 Penalaran Monoton .......................................................................... 18
2.3.5 Fungsi Implikasi ............................................................................... 19
2.3.6 Sistem Inferensi Fuzzy ..................................................................... 19
2.4 Konsep Dasar Basis Data .......................................................................... 21
2.4.1 Normalisasi ...................................................................................... 22
2.4.2 Diagram Alir Data............................................................................ 23
2.4.3 Diagram Alir (FlowChart Sistem) ................................................... 24
2.5 Borland Delphi 7.0 .................................................................................... 25
2.5.1 Pengenalan Delphi 7.0 ..................................................................... 25
2.6 MySQL ...................................................................................................... 25
2.7 MyDAC..................................................................................................... 26
2.8 Gambaran Umum Perusahaan................................................................... 26
2.8.1 Sejarah Perusahaan........................................................................... 26
2.8.2 Visi, Misi, dan Budaya Perusahaan.................................................. 27
BAB III PERANCANGAN SISTEM .......................................................... 29
3.1 Spesifikasi Hardware dan Software .......................................................... 29
3.1.1 Spesifikasi Hardware....................................................................... 29
3.1.2 Spesifikasi Software ......................................................................... 29
3.2 Data-Data Pengamatan .............................................................................. 30
3.3 Metodologi Perancangan Sistem Fuzzy .................................................... 31
3.4 Perancangan Aplikasi ................................................................................ 43
3.4.1 Diagram Alir Data............................................................................ 43
3.4.1.1 Diagram Konteks ................................................................ 43
3.4.1.2 DAD Level 0 ....................................................................... 44
3.4.1.3 DAD Level 1 ....................................................................... 45
3.4.2 FlowChart Sistem ............................................................................ 46
3.4.3 Kamus Data ...................................................................................... 47
3.5 Perancangan Program ............................................................................... 48
3.5.1 Perancangan Tampilan Awal ......................................................... 48
3.5.2 Perancangan Tampilan Utama ....................................................... 48
xi
3.5.3 Perancangan Input Domain Batas Himpunan Fuzzy ...................... 49
3.5.4 Perancangan Input Batas Luas Lahan ............................................ 50
3.5.5 Perancangan Input Batas Jumlah Tebu .......................................... 51
3.5.6 Perancangan Input Batas Rendemen.............................................. 52
3.5.7 Perancangan Input Batas Biaya Produksi ...................................... 53
3.5.8 Perancangan Input Batas Jumlah Produksi .................................... 54
3.5.9 Perancangan Proses Sistem Pendukung Keputusan (SPK)............ 56
3.5.10 Perancangan Output Data Variabel Fuzzy ...................................... 57
3.5.11 Perancangan Output Data Anggaran Produksi............................... 57
3.5.12 Perancangan Cetak Anggaran Produksi per tahun ......................... 58
3.5.13 Perancangan Detail SPK ................................................................ 59
BAB IV IMPLEMENTASI DAN ANALISIS SISTEM............................. 60
4.1 Implementasi Sistem ................................................................................. 60
4.1.1 Implementasi Sistem Awal .............................................................. 61
4.1.2 Implementasi Menu Utama .............................................................. 61
4.1.3 Implementasi Input........................................................................... 62
4.1.4 Implementasi Proses ........................................................................ 67
4.1.5 Implementasi Output ....................................................................... 75
4.1.6 Implementasi Menu Bantuan ........................................................... 78
4.1.7 Implementasi Menu Tentang ........................................................... 79
4.1.8 Implementasi Peringatan .................................................................. 79
4.2 Analisa Sistem........................................................................................... 80
4.2.1 Analisa Hasil .................................................................................... 81
BAB V PENUTUP......................................................................................... 95
5.1 Kesimpulan ............................................................................................... 95
5.2 Saran.......................................................................................................... 96
DAFTAR PUSTAKA
LAMPIRAN I
LAMPIRAN 2
xii
DAFTAR GAMBAR
2.1 Arsitektur DSS ........................................................................................ 10
2.2 Himpunan Fuzzy pada variabel temperatur............................................. 12
2.3 Representasi Linear Naik ........................................................................ 14
2.4 Representasi Linear Turun ...................................................................... 14
2.5 Kurva Segitiga......................................................................................... 15
2.6 Kurva Trapesium..................................................................................... 15
2.7 Kurva Bentuk Bahu................................................................................. 16
2.8 Kurva-S: PERTUMBUHAN................................................................... 16
2.9 Kurva-S : PENYUSUTAN ..................................................................... 17
2.10 Kurva Bentuk Lonceng ........................................................................... 17
2.11 Metode Inferensi Tsukamoto .................................................................. 20
2.12 Proses dalam FIS..................................................................................... 21
3.1 Luas Lahan .............................................................................................. 32
3.2 Jumlah Tebu ............................................................................................ 33
3.3 Rendemen................................................................................................ 34
3.4 Biaya Produksi ........................................................................................ 35
3.5 Jumlah Produksi ...................................................................................... 36
3.6 Diagram Konteks .................................................................................... 43
3.7 DAD Level 0 ........................................................................................... 44
3.8 DAD Level 1 ........................................................................................... 45
3.9 FlowChart Sistem ................................................................................... 46
3.10 Perancangan Tampilan Awal .................................................................. 48
3.11 Perancangan Tampilan Utama ................................................................ 49
3.12 Perancangan Input Domain Batas Himpunan Fuzzy ............................... 50
3.13 Perancangan Input Batas Luas Lahan ..................................................... 51
3.14 Perancangan Input Batas Jumlah Tebu ................................................... 52
3.15 Perancangan Input Batas Rendemen....................................................... 53
3.16 Perancangan Input Batas Biaya Produksi ............................................... 54
3.17 Perancangan Input Batas Jumlah Produksi ............................................. 55
xiii
3.18 Perancangan Proses SPK......................................................................... 56
3.19 Perancangan Output Data Variabel Fuzzy ............................................... 57
3.20 Perancangan Output Data Anggaran Produksi ........................................ 58
3.21 Perancangan Cetak Anggaran Produksi per Tahun................................. 58
3.22 Perancangan Detail SPK ......................................................................... 59
4.1 Splash Screen .......................................................................................... 61
4.2 Menu Utama............................................................................................ 62
4.3 Menu Domain Batas................................................................................ 62
4.4 Input Batas Luas Lahan........................................................................... 64
4.5 Input Batas Jumlah Tebu......................................................................... 65
4.6 Input Batas Rendemen ............................................................................ 65
4.7 Input Batas Biaya Produksi ..................................................................... 66
4.8 Input Batas Jumlah Produksi................................................................... 67
4.9 Proses SPK .............................................................................................. 68
4.10 Unit Fuzzifikasi ....................................................................................... 68
4.11 Fungsi Fuzzifikasi Bahu Kiri................................................................... 69
4.12 Fungsi Fuzzifikasi Segitiga ..................................................................... 69
4.13 Fungsi Fuzzifikasi Bahu Kanan............................................................... 70
4.14 Fungsi Find_Min..................................................................................... 71
4.15 Unit DeFuzzifikasi ................................................................................... 71
4.16 Fungsi DeFuzzifikasi Bahu Kiri .............................................................. 72
4.17 Fungsi DeFuzzifikasi Segitiga................................................................. 72
4.18 Fungsi DeFuzzifikasi Bahu Kanan .......................................................... 72
4.19 Implementasi Fungsi Implikasi Min dan DeFuzzifikasi ......................... 73
4.20 Prosedur Rata-Rata Terbobot .................................................................. 74
4.21 Proses Edit Anggaran Produksi............................................................... 75
4.22 Data Variabel Fuzzy ................................................................................ 76
4.23 Anggaran Produksi .................................................................................. 76
4.24 Print Preview Anggaran Produksi .......................................................... 77
4.25 Detail SPK............................................................................................... 78
4.26 Menu Bantuan ......................................................................................... 78
xiv
4.27 Menu Tentang ......................................................................................... 79
4.28 Peringatan Data Harus Diisi Semuanya .................................................. 79
4.29 Peringatan Data Tidak Sesuai Aturan ..................................................... 80
4.30 Peringatan Nilai Kurang dari Batas Minimum ....................................... 80
xv
DAFTAR TABEL
2.1 Simbol-Simbol Diagram Alir Data ......................................................... 23
2.2 Simbol-Simbol Diagram Alir.................................................................. 24
3.1 Data Pengamatan..................................................................................... 30
3.2 Kamus Data Batas ................................................................................... 47
3.3 Kamus Data Anggaran ............................................................................ 47
4.1 Data Perbandingan .................................................................................. 94
xvi
Intisari
Sistem Pendukung Keputusan atau SPK merupakan suatu sistem yangmembantu manajer dalam menyelesaikan permasalahan yang semiterstruktur. Banyak teknik yang dipakai untuk membuat SPK, salah satunyadengan Logika Fuzzy. Logika Fuzzy merupakan salah satu teknik penyelesaianmasalah yang berbasiskan perasaan. Dimana derajat keanggotaan yangbiasanya direpresentasikan dengan nilai 0 dan 1, dengan Logika Fuzzy iniderajat keanggotaannya dapat direpresentasikan dengan nilai antara 0 dan 1sehingga dapat lebih seimbang. PT. Madu Baru Yogyakarta merupakansebuah perusahaan yang bergerak di bidang industri yang salah satu usahanyaadalah memproduksi gula pasir. Sebelum melakukan produksi, terlebihdahulu harus menentukan jumlah gula yang harus diproduksi per tahunnya.Sehingga harus memperhitungkan faktor-faktor yang berpengaruh. Faktor-faktor tersebut antara lain luas lahan, jumlah tebu, rendemen, serta biayaproduksi. Biasanya PT. Madu Baru sebelum melakukan produksimengadakan rapat intern terlebih dahulu. Maka dari itu, untuk lebihmembantu dalam membuat keputusan jumlah produksi gula tersebut perludibuat SPK. SPK tersebut akan menggunakan teknik logika fuzzy MetodeInferensi Tsukamoto yang menerapkan rata-rata terbobot untuk menghitungjumlah produksi gula sebagai hasil akhirnya. Diharapkan SPK ini dapatdijadikan alternatif dalam mengestimasi jumlah produksi gula di PT. MaduBaru Yogyakarta nantinya.
Kata Kunci : SPK, Logika Fuzzy, Metode Inferensi Tsukamoto
xvii
Abstract
Decision Support System or DSS is a system that help a manager in finishingthe semi structure problem. A lot of technique are proved to make the DSS, one of themis used the Fuzzy Logic. Fuzzy Logic is one of technique for solving problem which hasbases the feeling, where membership degree which is usually assessed with the value 0and 1 can be assessed with the value between 0 and 1. This is more proportional. PT.Madu Baru Yogyakarta is a company that active in industry which one of its effort isproduce the sand sugar. Before doing production, It has to determine the sugar amountwhich must be produced in its year. So, have to pay attention the factors having aneffect on. The factors for example wide of farm, sum up the sugar cane, sugar rate, andalso production cost. PT. Madu Baru have an intern meeting to make decision aboutproduction. Hence from that, to assist in make decision the amount produce of sugar iscreated a DSS. The DSS will use the technique of fuzzy logic that is TsukamotoInference Method that applying weight average to count the sugar production as finalreport. Expected this DSS can be alternative in estimating amount of sugar productionin PT. Madu Baru Yogyakarta later.
Keywords : DSS, Fuzzy Logic, Tsukamoto Inference Method
1
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Sistem pendukung keputusan (SPK) atau dikenal dengan Decission
Support System (DSS) merupakan suatu sistem untuk mendukung para pengambil
keputusan manajerial dalam situasi keputusan semiterstruktur. Sistem ini
dimaksudkan untuk menjadi alat bantu bagi para pengambil keputusan untuk
memperluas kapabilitas mereka, namun tidak untuk menggantikan penilaian
mereka. DSS ditujukan untuk keputusan-keputusan yang sama sekali tidak dapat
didukung oleh algoritma. DSS menggunakan CBIS yang fleksibel, interaktif, dan
dapat diadaptasi untuk dikembangkan guna mendukung solusi untuk masalah
manajemen spesifik. DSS menggunakan data, memberikan antarmuka pengguna
yang mudah dan dapat menggabungkan pemikiran pengambil keputusan.
Sehingga dengan DSS ini diharapkan para manajer ataupun para pengambil
keputusan dapat diringankan bebannya dalam suatu masalah tertentu.
Penentuan jumlah produksi dalam perusahaan merupakan suatu hal yang
harus diperhatikan sebelum memulai sebuah proses produksi. Perlu
dipertimbangkan berbagai faktor untuk menentukan jumlah produksi barang,
untuk menghindari risiko perusahaan. Oleh karena itu, diperlukan suatu
pertimbangkan matang dalam mengelola produksi barang. Pertimbangan itu antara
lain jumlah permintaan, biaya produksi, jumlah karyawan, efisiensi mesin,
persediaan yang ada, jumlah bahan baku dan lain sebagainya. Sehingga,
diperlukan suatu DSS untuk membantu para manajer dalam menentukan jumlah
produksi tersebut.
Logika fuzzy merupakan suatu metode yang berbasiskan perasaan yang
mampu memberikan solusi lebih seimbang. Logika ini merupakan suatu cara yang
tepat untuk memetakan suatu ruang input ke dalam suatu ruang output, sifatnya
yang fleksibel sehingga dapat membangun dan mengaplikasikan pengalaman-
2
pengalaman para pengambil keputusan secara langsung tanpa harus melalui proses
pelatihan. Logika Fuzzy diperkenalkan oleh Prof. Lotfi Zadeh pada tahun 1965,
yang merupakan metode yang mempunyai kemampuan untuk memproses variabel
yang bersifat kabur atau yang tidak dapat dideskripsikan secara eksak/pasti seperti
misalnya tinggi, lambat, bising, dan sebagainya. Dalam logika fuzzy variabel yang
bersifat kabur tersebut direpresentasikan sebagai sebuah himpunan yang anggota-
anggotanya adalah suatu nilai crisp dan derajat keanggotaan di dalam himpunan
tersebut. Himpunan tersebut memiliki derajat keanggotaan antara 0 sampai 1,
sehingga lebih seimbang dalam mengambil suatu keputusan.
PT. Madu Baru Yogyakarta merupakan suatu perusahaan yang bergerak di
bidang industri yaitu salah satunya memproduksi gula pasir. Banyak sekali faktor
yang harus dipertimbangkan dalam menentukan berapa jumlah produksi yang
harus dihasilkan pertahunnya yang akan dijadikan target dalam memulai sebuah
usaha. Untuk itu, dalam menentukan target jumlah produksi pertahun dibutuhkan
sebuah DSS untuk mengelola dan memanajemen segala sumber daya yang ada
sehingga suatu produksi dapat berjalan dengan efektif dan efisien. Dalam
pembuatan DSS ini akan dilakukan dengan menerapkan logika fuzzy dalam
mengelola faktor-faktor yang menentukan jumlah produksi tersebut. Faktor-faktor
tersebut akan dijadikan suatu masukan kemudian diproses dengan logika fuzzy
sehingga diperoleh suatu keluaran yaitu jumlah produksi gula per tahunnya.
Diharapkan dengan metode ini keputusan yang dihasilkan akan lebih bermanfaat
bagi perusahaan.
1.2 Rumusan Masalah
Adapun rumusan masalah yang diambil dari latar belakang masalah
tersebut adalah :
1. Dibutuhkannya suatu sistem yang mendukung pengambilan keputusan
manajerial dalam mengestimasi jumlah produksi gula per tahun.
2. Dibutuhkannya suatu teknik perhitungan dalam sistem pendukung
keputusan tersebut.
3
3. Perlu dipertimbangkan faktor-faktor apa saja yang harus diperhatikan
dalam menentukan jumlah produksi gula per tahun.
4. Diperlukan suatu metode untuk memetakan faktor-faktor penentu produksi
gula agar menghasilkan keluaran yang mendukung.
1.3 Batasan Masalah
Dibuat suatu sistem pendukung keputusan untuk menentukan target atau
mengestimasi jumlah produksi gula per tahun dengan teknik logika fuzzy yang
lebih memperhatikan faktor-faktor dalam menentukan keputusan jumlah produksi
tersebut. Selain itu, faktor-faktor tersebut dinilai dengan sistem penilaian yang
lebih seimbang. Adapun faktor-faktor yang digunakan sebagai indikasi antara lain
luas lahan, jumlah tebu, rendemen atau kadar gula dalam tebu, dan biaya
produksi. Faktor-faktor tersebut akan dijadikan sebagai masukkan yang akan
diproses menggunakan metode inferensi fuzzy yaitu dengan metode Tsukamoto
yang akan menghasilkan keluaran berupa jumlah produksi gula per tahunnya.
1.4 Tujuan Penelitian
Menganalisa serta membuat suatu rancang bangun aplikasi berbasis
komputer untuk mengestimasi jumlah produksi gula per tahun dengan salah satu
teknik kecerdasan buatan yaitu menggunakan teknik Logika Fuzzy Metode
Inferensi Tsukamoto.
1.5 Manfaat Penelitian
Adapun manfaat dalam pembuatan aplikasi ini adalah :
1. Mempermudah bagian produksi serta akuntansi dan keuangan dalam
menentukan target jumlah produksi gula per tahunnya berdasarkan faktor-
faktor apa saja yang mendukung produksi tersebut.
2. Keputusan yang dihasilkan oleh aplikasi tersebut dapat dijadikan masukan
bagi manajer umum dalam menentukan target jumlah produksi gula pada
saat itu.
4
1.6 Metode Penelitian
Adapun metode-metode yang digunakan dalam penelitian ini adalah :
1. Metode Wawancara
Suatu metode yang dilakukan dengan melakukan wawancara atau tanya
jawab dengan bagian produksi serta akuntansi dan keuangan. Dengan
wawancara tersebut akan didapat suatu gambaran jelas mengenai
penentuan jumlah produksi gula karena dilakukan dengan pihak terkait
secara langsung.
2. Metode Observasi
Suatu metode dengan melakukan pengamatan tentang cara kerja sistem
yang sudah ada dalam menentukan jumlah produksi. Pengamatan ini
meliputi penganalisaan data-data di perusahaan terkait, pengamatan
mengenai cara menentukan jumlah produksi gula, serta cara kerja sistem
yang menerapkan logika fuzzy dalam membantu mendukung keputusan.
3. Studi Kepustakaan
Suatu metode yang dilakukan dengan membaca referensi, buku, artikel
maupun tulisan yang menunjang dalam pembuatan sistem ini, sehingga
didapatkan suatu analisa yang baik untuk menghasilkan suatu solusi.
Pustaka-pustaka tersebut akan membantu dalam menganalisa serta
mandapatkan logika yang berkaitan dengan teori mengenai produksi, teori
tentang logika fuzzy, dan realisasi program aplikasi.
5
BAB II
LANDASAN TEORI
2.1 Definisi Sistem
Sistem merupakan kumpulan elemen yang saling berkaitan yang bertanggung
jawab memproses masukan (input) sehingga menghasilkan keluaran (output).
2.2 Konsep Sistem Pendukung Keputusan
2.2.1 Definisi Sistem Pendukung Keputusan
Sistem Pendukung Keputusan atau SPK atau dalam bahasa inggrisnya dikenal
dengan DSS atau Decission Support System merupakan sistem informasi interaktif
yang menyediakan informasi, pemodelan, dan pemanipulasian data. Sistem ini
digunakan untuk membantu pengambil keputusan dalam situasi semiterstruktur dan
situasi yang tidak terstruktur, dimana tak seorang pun tahu secara pasti bagaimana
keputusan seharusnya dibuat (Alter, 2002).
Little (1970) mendefinisikan DSS sebagai “sekumpulan prosedur berbasis
model untuk data pemrosesan dan penilaian guna membantu para manajer mengambil
keputusan.” Dia menyatakan bahwa untuk sukses, sistem tersebut haruslah sederhana,
cepat, mudah dikontrol, adaptif, lengkap dengan isu-isu penting, dan mudah
berkomunikasi.
Moore dan Chang (1980) berpendapat bahwa konsep struktur, seperti yang
banyak disinggung pada definisi awal DSS (bahwa DSS dapat menangani situasi
semiterstruktur dan tidak terstruktur), secara umum tidaklah penting; sebuah masalah
dapat dijelaskan sebagai masalah terstruktur dan tidak terstruktur hanya dengan
memperhatikan si pengambil keputusan atau suatu situasi spesifik (yakni keputusan
terstruktur adalah terstruktur karena kita memilih untuk memperlakukannya dengan
cara seperti itu). Jadi, Moore dan Chang mendefinisikan DSS sebagai sistem yang
dapat diperluas untuk mempu mendukung analisa data ad hoc dan pemodelan
6
keputusan, berorientasi terhadap perencanaan masa depan, dan digunakan pada
interval yang tidak regular dan tak terencana.
Keen (1980) menerapkan istilah DSS “untuk situasi dimana sistem ‘final’
dapat dikembangkan hanya melalui suatu proses pembelajaran dan evolusi yang
adaptif.” Jadi, Keen mendefinisikan DSS sebagai suatu produk dari proses
pengembangan dimana pengguna DSS, pembangun DSS, dan DSS itu sendiri mampu
mempengaruhi satu dengan yang lainnya, dan menghasilkan evolusi sistem dan pola-
pola penggunaan.
Sehingga, DSS dapat didefinisikan sebagai sebuah sistem untuk mendukung
para pengambil keputusan manajerial dalam situasi keputusan semiterstruktur. DSS
dimaksudkan untuk menjadi alat bantu bagi para pengambil keputusan untuk
memperluas kapabilitas mereka, namun bukan untuk menggantikan penilaian mereka.
DSS ditujukan untuk keputusan-keputusan yang memerlukan penilaian atau pada
keputusan-keputusan yang sama sekali tidak dapat didukung oleh algoritma.
DSS biasanya dibangun mendukung solusi atas suatu masalah atau untuk
mengevaluasi suatu peluang. DSS yang seperti itu disebut aplikasi DSS, aplikasi DSS
digunakan dalam pengambilan keputusan. Aplikasi DSS menggunakan CBIS
(Computer Based Information System) yang fleksibel, interaktif, dan dapat diadaptasi,
yang dikembangkan untuk mendukung solusi atas masalah manajemen spesifik yang
tidak terstruktur. Aplikasi DSS menggunakan data, memberikan antarmuka pengguna
yang mudah, dan dapat menggabungkan pemikiran pengambilan keputusan.
DSS lebih ditujukan untuk mendukung manajemen dalam melakukan pekerjaan
yang bersifat analitis dalam situasi yang kurang terstruktur dan dengan criteria yang
kurang jelas. DSS tidak dimaksudkan untuk mengotomatisasikan pengambilan
keputusan, tetapi memberikan perangkat interaktif yang memungkinkan pengambil
keputusan untuk melakukan berbagai analisis menggunakan model-model yang
tersedia.
7
2.2.2 Karakteristik dan Kapabilitas Sistem Pendukung Keputusan
1. Dukungan untuk pengambil keputusan, terutama pada situasi semiterstruktur
dan tak terstruktur, dengan menyertakan penilaian manusia dan informasi
terkomputerisasi. Masalah-masalah tersebut tidak dapat dipecahkan oleh
sistem komputer lain atau oleh metode atau alat kuantitatif standar.
2. Dukungan untuk semua level manajerial, dari eksekutif puncak sampai
manajer lini.
3. Dukungan untuk individu dan kelompok. Masalah yang kurang terstruktur
sering memerlukan keterlibatan individu dari departemen dan tingkat
organisasional yang berbeda atau bahkan dari organisasi lain.
4. Dukungan untuk keputusan independen atau/ atau sekuensial. Keputusan bisa
dibuat satu kali, beberapa kali, atau berulang (dalam interval yang sama).
5. Dukungan di semua fase proses pengambilan keputusan : intelegensi, desain,
pilihan, dan implementasi.
6. Dukungan di berbagai proses dan gaya pengambilan keputusan.
7. Adaptivitas sepanjang waktu. Pengambil keputusan seharusnya reaktif, bisa
menghadapi perubahan kondisi secara cepat, dan mengadaptasi DSS untuk
memenuhi perubahan tersebut. DSS bersifat fleksibel, oleh karena itu
pengguna bisa menambahkan, menghapus, menggabungkan, mengubah, atau
menyusun kembali elemen-elemen dasar. DSS juga fleksibel dalam hal bisa
dimodifikasi untuk memecahkan masalah lain yang sejenis.
8. Pengguna merasa seperti di rumah. Ramah-pengguna, kapabilitas grafis yang
sangat kuat, dan antarmuka manusia-mesin yang interaktif dengan satu bahasa
alami bisa sangat meningkatkan efektivitas DSS.
9. Peningkatan efektivitas pengambilan keputusan (akurasi, timelines, kualitas)
ketimbang pada efisiensinya (biaya pengambilan keputusan). Ketika DSS
disebarkan, pengambilan keputusan sering membutuhkan waktu lebih lama,
tetapi hasilnya lebih baik.
8
10. Kontrol penuh oleh pengambil keputusan terhadap semua langkah proses
pengambilan keputusan dalam memecahkan suatu masalah. DSS secara
khusus menekankan untuk mendukung keputusan, bukannya menggantikan.
11. Pengguna akhir bisa mengembangkan dan memodifikasi sendiri sistem
sederhana. Sistem yang lebih besar bisa dibangun dengan bantuan ahli sistem
informasi. Perangkat lunak OLAP dalam kaitannya dengan data warehouse
memperbolehkan pengguna untuk membangun DSS yang cukup besar.
12. Biasanya, model-model digunakan untuk menganalisis situasi pengambilan
keputusan. Kapabilitas pemodelan memungkinkan eksperimen dengan
berbagai strategi yang berbeda di bawah konfigurasi yang berbeda.
13. Akses disediakan untuk berbagai sumber data, format, dan tipe, mulai dari
sistem informasi geografis (GIS) sampai sistem berorientasi-objek.
14. Dapat digunakan sebagai alat standalone oleh seorang pengambil keputusan
pada satu lokasi atau didistribusikan di suatu organisasi secara keseluruhan
dan di beberapa organisasi sepanjang rantai persediaan. Dapat diintegrasikan
dengan DSS lain dan atau aplikasi lain, serta bisa didistribusikan secara
internal dan eksternal menggunakan networking dan teknologi Web.
Karakteristik dan kapabilitas dari DSS tersebut memungkinkan para pengambil
keputusan untuk membuat keputusan yang lebih baik dan lebih konsisten dalam satu
cara yang dibatasi oleh waktu.
2.2.3 Komponen Sistem Pendukung Keputusan
Aplikasi sistem pendukung keputusan bisa terdiri dari beberapa subsistem,
yaitu :
1. Subsistem manajemen data
Subsistem manajemen data memasukkan satu database yang berisi data yang
relevan untuk situasi dan dikelola oleh perangkat lunak yang disebut sistem
manajemen database (DBMS/ Database Management System). Subsistem
manajemen data bisa diinterkoneksikan dengan data warehouse perusahaan,
9
suatu repository untuk data perusahaan yang relevan dengan pengambilan
keputusan.
2. Subsistem manajemen model
Merupakan paket perangkat lunak yang memasukkan model keuangan,
statistic, ilmu manajemen, atau model kuantitatif lain yang memberikan
kapabilitas analitik dan manajemen perangkat lunak yang tepat. Bahasa-
bahasa pemodelan untuk membangun model kustom yang dimasukkan.
Perangkat lunak itu sering disebut sistem manajemen basis model (MBMS).
Komponen tersebut bisa dikoneksikan menuju penyimpanan korporat atau
eksternal yang ada pada model.
3. Subsistem antarmuka pengguna
Pengguna berkomunikasi dengan dan memerintahkan sistem pendukung
keputusan melalui subsistem tersebut. Pengguna adalah bagian yang
dipertimbangkan dari sistem. Para peneliti menegaskan bahwa beberapa
kontribusi unik dari sistem pendukung keputusan berasal dari interaksi yang
intensif anatara komputer dan pembuat keputusan.
4. Subsistem manajemen berbasis pengetahuan
Subsistem tersebut mendukung semua subsistem lain atau bertindak langsung
sebagai suatu komponen independen dan bersifat opsional. Selain
memberikan intelegensi untuk memperbesar pengetahuan si pengambil
keputusan, subsistem tersebut bisa diinterkoneksikan dengan repository
pengetahuan perusahaan (bagian dari sistem manajemen pengetahuan), yang
kadang-kadang disebut basis pengetahuan organisasional.
Berdasarkan definisi, sistem pendukung keputusan harus mencakup tiga komponen
utama dari DBMS, MBMS, dan antarmuka pengguna. Subsistem manajemen berbasis
pengetahuan adalah opsional, tetapi bisa memberikan banyak manfaat karena
memberikan intelegensi bagi ketiga komponen tersebut. Seperti pada semua sistem
informasi manajemen, pengguna bisa dianggap sebagai komponen sistem pendukung
keputusan. Komponen-komponen tersebut membentuk sistem aplikasi pendukung
10
keputusan yang bisa dikoneksikan ke intranet perusahaan, ekstranet, atau Internet.
Umumnya komponen berkomunikasi via teknologi Internet. Browser Web umumnya
memberikan antarmuka pengguna. Arsitektur sistem pendukung keputusan dan
komponen yang ditunjukkan pada gambar 2.1 memberikan pemahaman mendasar
mengenai struktur umum suatu sistem pendukung keputusan atau DSS.
Gambar 2.1 Arsitektur DSS
Sumber : Buku Decision Support Systems and Intelligent Systems oleh Turban
2.3 Logika Fuzzy
Logika fuzzy adalah suatu cara yang tepat untuk memetakan suatu ruang input
ke dalam suatu ruang output. Logika fuzzy dikatakan sebagai logika baru yang lama,
sebab ilmu tentang logika fuzzy modern dan metodis baru ditemukan beberapa tahun
lalu padahal sebenarnya konsep tentang logika fuzzy itu sendiri sudah ada pada diri
Sistem lainnyayang berbasis
komputer
Internet,Intraner,ekstranet
Subsistem berbasispengetahuan
Antarmukapengguna
ManajemenData
Manajemenmodel
Manajer(pengguna)
Modeleksternal
Basis pengetahuanorganisasional
Data : eksternaldan internal
11
kita sejak lama. Logika ini berbasiskan perasaan manusia. 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 nonlinier yang sangat
kompleks.
5. Logika fuzzy dapat bekerjasama dengan teknik-teknik kendali secara
konvensional.
6. Logika fuzzy didasarkan pada bahasa alami.
2.3.1 Himpunan Fuzzy
Pada himpunan tegas (crisp), nilai keanggotaan suatu item x dalam suatu
himpunan A, yang sering ditulis dengan µA[x], memiliki 2 kemungkinan, yaitu :
1. Satu (1), yang berarti bahwa suatu item menjadi anggota dalam suatu
himpunan, atau
2. Nol (0), yang berarti bahwa suatu item tidak menjadi anggota dalam suatu
himpunan.
Terkadang kemiripan antara keanggotaan fuzzy dengan probabilitas menimbulkan
kerancuan. Keduanya memiliki nilai pada interval [0,1], namun interpretasi nilainya
sangat berbeda antara kedua kasus tersebut. Keanggotaan fuzzy memberikan suatu
ukuran terhadap pendapat atau keputusan, sedangkan probabilitas mengindikasikan
proporsi terhadap keseringan suatu hasil bernilai benar dalam jangka waktu yang
panjang. Misalnya, jika nilai keanggotaan suatu himpunan fuzzy MUDA adalah 0,9;
maka tidak perlu dipermasalahkan berapa seringnya nilai itu diulang secara individual
untuk mengharapkan suatu hasil yang hamper pasti muda. Di lain pihak, nilai
probabilitas 0,9 muda berarti 10% dari himpunan tersebut diharapkan tidak muda.
Himpunan fuzzy memiliki 2 atribut, yaitu :
12
µ[x]
DINGIN SEJUK NORMAL HANGAT PANAS
15 20 25 30 35 40
1
0
a. Linguistik, yaitu penamaan suatu grup yang mewakili suatu keadaan atau
kondisi tertentu dengan menggunakan bahasa alamim, seperti : MUDA,
PAROBAYA, TUA.
b. Numeris, yaitu suatu nilai (angka) yang menunjukkan ukuran dari suatu
variabel seperti : 40, 25, 50, dsb.
Ada beberapa hal yang perlu diketahui dalam memahami suatu sistem fuzzy, yaitu :
a. Variabel fuzzy
Variabel fuzzy merupakan variabel yang hendak dibahas dalam suatu sistem
fuzzy. Contoh : umur, temperatur, permintaan, dsb.
b. Himpunan fuzzy
Himpunan fuzzy merupakan suatu grup yang mewakili suatu kondisi atau
keadaan tertentu dalam suatu variabel fuzzy.
Contoh :
1. Variabel umur, terbagi menjadi 3 himpunan fuzzy, yaitu : MUDA,
PAROBAYA, TUA.
2. Variabel temperatur, terbagi menjadi 5 himpunan fuzzy, yaitu : DINGIN,
SEJUK, NORMAL, HANGAT, dan PANAS.
c. Semesta Pembicaraan
Semesta pembicaraan adalah keseluruhan nilai yang diperbolehkan umtuk
dioperasikan dalam suatu variabel fuzzy. Semesta pembicaraan merupakan
Gambar 2.2 Himpunan Fuzzy pada variabel temperatur
13
himpunan bilangan real yang senantiasa naik (bertambah) secara monoton dari
kiri ke kanan. Nilai semesta pembicaraan dapat berupa bilangan positif
maupun negative. Adakalanya nilai semesta pembicaraan ini tidak dibatasi
batas atasnya.
Contoh :
1. Semesta pembicaraan untuk variabel umur : [0 +∞]
2. Semesta pembicaraan untuk variabel temperatur : [0 40]
d. Domain
Domain himpunan fuzzy adalah keseluruhan nilai yang diijinkan dalam
semesta pembicaraan dan boleh dioperasikan dalam suatu himpunan fuzzy.
Seperti halnya semesta pembicaraan, domain merupakan himpunan bilangan
real yang senantiasa naik (bertambah) secara monoton dari kiri ke kanan.
Nilai domain dapat berupa bilangan positif maupun negative.
Contoh domain himpunan fuzzy :
1. MUDA = [0 45]
2. PAROBAYA = [35 55]
3. TUA = [45 +∞]
2.3.2 Fungsi Keanggotaan
Fungsi Keanggotaan (membership function) adalah suatu kurva yang
menunjukkan pemetaan titik-titik input data ke dalam nilai keanggotaannya (sering
juga disebut dengan derajat keanggotaan) yang memiliki interval antara 0 sampai 1.
Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah
dengan melalui pendekatan fungsi. Ada beberapa fungsi yang bisa digunakan :
a. Representasi Linier
Pada representasi linier, pemetaan input ke derajat keanggotaannya digambarkan
sebagai suatu garis lurus. Bentuk ini paling sederhana dan menjadi pilihan yang baik
untuk mendekati suatu konsep yang kurang jelas. Ada 2 keadaan himpunan fuzzy
linier. Pertama, garis lurus naik dari domain yang memiliki derajat keanggotaan
14
1
0a b
a bdomain
1
0
µ[x]
µ[x]
domain
terkecil [0] di sisi kiri ke arah kanan menuju nilai domain yang memiliki derajat
keanggotaan yang lebih tinggi.
Kedua, kebalikan dari yang pertama. Garis lurus dimulai dari nilai domain dengan
derajat keanggotaan tertinggi di sisi kiri kemudian menurun ke kanan ke nilai domain
yang derajat keanggotaannya lebih rendah.
b. Representasi Kurva Segitiga
Kurva segitiga pada dasarnya gabungan antara 2 garis (linear) seperti terlihat pada
gambar berikut :
Gambar 2.3 Representasi Linear Naik
Gambar 2.4 Representasi Linear Turun
15
1
0
µ[x]
a b c
1
µ[x]
0a b c d
c. Representasi Kurva Trapesium
Kurva trapezium pada dasarnya seperti bentuk segitiga, hanya saja ada beberapa
titik yang memiliki keanggotaan 1.
d. Representasi Kurva Bentuk Bahu
Kurva yang bentuknya seperti bahu di sisi paling kanan dan paling kirinya.
Himpunan fuzzy ‘bahu’, bukan segitiga, digunakan untuk mengakhiri variabel suatu
daerah fuzzy.
Gambar 2.5 Kurva Segitiga
Gambar 2.6 Kurva Trapesium
16
1
µ[x]
0
Bahu Kiri Bahu Kanan
a b c d e f
1
0
µ[x]
ba
e. Representasi Kurva-S
Kurva PERTUMBUHAN dan PENYUSUTAN merupakan kurva S atau sigmoid
yang berhubungan dengan kenaikan dan penurunan permukaan secara tak linear.
Kurva-S untuk PERTUMBUHAN akan bergerak dari sisi paling kiri (nilai
keanggotaan=0) ke sisi paling kanan (nilai keanggotaan=1). Fungsi keanggotaanya
akan tertumpu pada 50% nilai keanggotaanya yang sering disebut dengan titik
infleksi.
Kurva-S PENYUSUTAN akan bergerak dari sisi paling kanan (nilai keanggotaan=1)
ke sisi paling kiri (nilai keanggotaan=0).
Gambar 2.7 Kurva Bentuk Bahu
Gambar 2.8 Kurva-S : PERTUMBUHAN
17
1
µ[x]
0a b
cb0a
µ[x]
1
f. Representasi Kurva Bentuk Lonceng (Bell Curve)
Kurva bentuk lonceng ini terbabi atas 3 kelas yaitu : himpunan fuzzy PI, BETA,
dan Gauss. Perbedaanya terletak pada gradiennya.
2.3.3 Operator Dasar Zadeh untuk Operasi Himpunan Fuzzy
Ada 3 operator dasar yang diciptakan oleh Zadeh, yaitu :
1. Operator AND
Operator ini berhubungan dengan operasi interseksi pada himpunan. α-predikat
sebagai hasil operasi dengan operator AND diperoleh dengan mengambil nilai
keanggotaan terkecil antar elemen pada himpunan-himpunan yang bersangkutan.
µA∩B = min( µA[x],µB[y] )
Gambar 2.9 Kurva-S : PENYUSUTAN
Gambar 2.10 Kurva-Bentuk Lonceng
18
2. Operator OR
Operator ini berhubungan dengan operator union pada himpunan. α-predikat
sebagai hasil operasi dengan operator OR diperoleh dengan mengambil nilai
keanggotaan terbesar antar elemen pada himpunan-himpunan yang bersangkutan.
µAUB = min( µA[x],µB[y] )
3. Operator NOT
Operator ini berhubungan dengan operasi komplemen pada himpunan. α-predikat
sebagai hasil operasi dengan operator NOT diperoleh dengan mengurangkan nilai
keanggotaan elemen pada himpunan yang bersangkutan dari 1.
µA’ = 1- µA[x]
2.3.4 Penalaran Monoton
Metode ini digunakan sebagai dasar untuk teknik implikasi fuzzy. Jika 2 daerah fuzzy
direalisasikan dengan implikasi sederhana sebagai berikut :
IF x is A THEN y is B
Memiliki transfer fungsi :
Y = f ((x, A), B)
Maka sistem fuzzy dapat berjalan tanpa harus melalui komposisi dan dekomposisi
fuzzy. Nilai output dapat di estimasi secara langsung dari nilai keanggotaan yang
berhubungan dengan antesedennya.
2.3.5 Fungsi Implikasi
Tiap-tiap aturan (proposisi) pada basis pengetahuan fuzzy akan berhubungan
dengan suatu relasi fuzzy. Bentuk umum dari aturan yang digunakan dalam fungsi
implikasi adalah :
19
IF x is A THEN y is B
Dengan x dan y adalah skalar, dan A dan B adalah himpunan fuzzy. Proposisi yang
mengikuti IF disebut sebagai anteseden, sedangkan proposisi yang mengikuti THEN
disebut sebagai konsekuen. Proposisi ini dapat diperluas dengan menggunakan
operator fuzzy, seperti :
IF (x1 is A1)٠(x2 is A2) ٠(x3 is A3)٠……. ٠(xn is An) THEN y is B
Dengan ٠adalah operator (misal : OR atau AND).
Secara umum ada 2 implikasi yang dapat digunakan, yaitu :
a. Min (minimum)
Fungsi ini akan memotong output himpunan fuzzy.
b. Dot (product)
Fungsi ini akan memotong output himpunan fuzzy.
2.3.6 Sistem Inferensi Fuzzy
Sistem Inferensi Fuzzy (Fuzzy Inference System/FIS) disebut juga fuzzy
inference engine adalah sistem yang dapat melakukan penalaran dengan prinsip
serupa seperti manusia melakukan penalaran dengan nalurinya.
Terdapat beberapa jenis FIS yang dikenal antara lain :
1. Metode Tsukamoto
Pada metode ini setiap konsekuen pada aturan yang berbentuk IF THEN harus
direpresentasikan dengan suatu himpunan fuzzy dengan fungsi keanggotaan yang
monoton (Gambar 2.11). Sebagai hasilnya output hasil inferensi dari tiap-tiap aturan
diberikan secara tegas (crisp) berdasarkan α-predikat (fire strength). Hasil akhirnya
20
diperoleh dengan menggunakan rata-rata terbobot (weight average). (Jang, dkk., 1997)
(Kusumadewi, 2003).
Berikut merupakan gambar inferensi dengan Tsukamoto, dimana dalam
penentuan akhirnya menggunakan rata-rata terbobot (weight average) :
Gambar 2.11 Metode Inferensi Tsukamoto.
(Sumber : Artificial Intelegent, Sri Kusumadewi)
2. Metode Mamdani
Metode ini sering juga dikenal dengan metode Max-Min. metode ini
diperkenalkan oleh Ebrahim Mamdani pada tahun 1975. Untuk mendapatkan output
diperlukan 4 tahapan, yaitu :
a. Pembentukan himpunan fuzzy
b. Aplikasi fungsi implikasi (aturan)
c. Komposisi aturan
d. Penegasan (defuzzy)
21
3. Metode Sugeno
Penalaran dengan metode Sugeno hampir sama dengan metode Mamdani,
hanya saja output (konsekuen) sistem tidak berupa himpunan fuzzy, melainkan berupa
konstanta atau persamaan linear. Metode ini diperkenalkan oleh Takagi-Sugeno Kang
pada tahun 1985.
Proses dalam FIS ditunjukan pada Gambar 2.2 Input yang diberikan kepada
FIS adalah berupa bilangan tertentu dan output yang dihasilkan juga harus berupa
bilangan tertentu. Kaidah-kaidah/ aturan-aturan dalam bahasa linguistik dapat
digunakan sebagai input yang bersifat teliti harus dikonversikan terlebih dahulu, lalu
melakukan penalaran berdasarkan kaidah-kaidah dan mengkonversi hasil penalaran
tersebut menjadi output yang bersifat teliti.
Gambar 2.12 Proses dalam FIS
2.4 Konsep Dasar Basis Data
Sistem basis data adalah suatu sistem yang mempunyai fungsi untuk
mengorganisir data dan menyediakan informasi pada saat diperlukan. Date
mendefinisikan sistem basis data pada dasarnya adalah sistem terkomputerisasi yang
tujuan utamanya memelihara informasi dan membuat informasi tersebut tersedia saat
22
dibutuhkan. Dengan kata lain, basis data merupakan gudang atau tempat penyimpanan
dari berkas file yang terkomputerisasi.
Di antara basis data secara fisik dan pemakai terdapat suatu lapisan yang
disebut Database Manager (DB Manager), atau lebih sering disebut dengan Database
Management Sistem (DBMS). Semua permintaan pemakai untuk mengakses database
ditangani oleh DBMS ini.
Secara umum bahasa pembentukan basis data terbagi dalam dua komponen, yaitu:
1. Data Definition Language (DDL).
DDL adalah bahasa yang digunakan untuk mendefinisikan skema ke DBMS.
Skema adalah deskripsi lengkap tentang medan, rekaman, dan hubungan data pada
basis data. Bahasa tersebut mendukung pembuatan tabel baru, pembuatan indeks, dan
perubahan tabel.
2. Data Manipulation Language (DML).
DML adalah perintah-perintah yang digunakan untuk memanipulasi dan
mengambil data pada suatu basis data. Manipulasi data misalnya:
1. Penyisipan atau penambahan data baru ke suatu basis data.
2. Penghapusan data dui suatu basis data.
3. Perubahan data di suatu basis data
DML merupakan bahasa yang berfungsi memudahkan pemakai untuk mengakses data.
2.4.1 Normalisasi
Normalisasi adalah suatu proses untuk mengubah suatu relasi yang memiliki
masalah tertentu ke dalam dua buah relasi atau lebih yang tidak memiliki masalah
tersebut (Abdul Kadir, 1999). Normalisasi memberikan panduan yang sangat
membantu bagi pengembang untuk mencegah penciptaan struktur tabel yang kurang
fleksibel atau mengurangi ketidakefisienan. Setelah dilakukan normalisasi kemudian
menspesifikasi dengan bentuk kamus data.
23
2.4.2 Diagram Alir Data (DAD)
Diagram Alir Data (DAD) merupakan alat yang biasa dipakai untuk
mendokumentasikan proses dalam sistem, cara menggunakan informasi yang tersimpan
dan memindahkan informasi antar fungsi di dalam sistem (Abdul Kadir, 1999). DAD
dapat digunakan untuk menggambarkan arus data di dalam sistem dengan terstruktur
dan jelas. Diagram Konteks adalah DAD yang memperlihatkan sistem sebagai sebuah
proses (Abdul Kadir, 1999). Tujuannya adalah memberikan pandangan umum sistem.
Diagram konteks memperlihatkan sebuah proses berinteraksi dengan lingkungannya.
Ada pihak luar atau lingkungan yang memberi masukan dan pihak yang menerima
keluaran sistem. Dalam hal pihak luar dapat berupa sistem lain, suatu perangkat keras,
orang, atau organisasi.
Tabel 2.1 Simbol-Simbol Diagram Alir Data
Simbol Arti
Terminator
Proses Data
Aliran Data
Penyimpanan Data
P Primitive (Proses yang tidak dapat dipecah lagi)
Sumber : Buku Analisis dan Desain Sistem Informasi: Pendekatan Terstruktur Teori
dan Praktek Aplikasi Bisnis oleh Jogiyanto HM.
24
2.4.3 Diagram Alir ( FlowChart Sistem)
Diagram alir adalah diagram yang menjelaskan urutan kerja dari program yaitu
proses pembacaan data, pemrosesan data, pengambilalihan keputusan terhadap data dan
penyajian hasil pemrosesan data. Diagram alir digunakan untuk mempermudah
pemahaman akan algoritma dari sebuah program dan untuk proses dokumentasi.
Diagram alir akan memberikan gambaran yang jelas akan logika dari program yang
akan dibuat.
Tabel 2.2 Simbol-Simbol Diagram Alir
Simbol Arti
Keputusan
Awal dan Akhir Program
Penghubung satu halaman
Penghubung berbeda halaman
Masukan dan Keluaran
Arah Aliran
Proses
Sumber : Buku Analisis dan Desain Sistem Informasi: Pendekatan Terstruktur Teori
dan Praktek Aplikasi Bisnis oleh Jogiyanto HM.
25
2.5 Borland Delphi 7.0
2.5.1 Pengenalan Delphi 7.0
Delphi merupakan sebuah piranti pengembangan aplikasi berbasis Windows
yang dikeluarkan oleh Borland Internasional. Delphi adalah kompiler / penterjemah
bahasa Delphi (awalnya dari Pascal) yang merupakan bahasa tingkat tinggi sekelas
dengan Basic dan C. Bahasa Pemrograman di Delphi disebut bahasa prosedural
artinya bahasa/sintaknya mengikuti urutan tertentu/prosedur. Ada jenis pemrograman
non-prosedural seperti pemrograman untuk kecerdasan buatan seperti bahasa Prolog.
Delphi termasuk Keluarga Visual sekelas Visual Basic, Visual C, artinya perintah-
perintah untuk membuat objek dapat dilakukan secara visual. Pemrogram tinggal
memilih objek apa yang ingin dimasukkan ke dalam Form/Window, lalu tingkah laku
objek tersebut saat menerima event/aksi tinggal dibuat programnya. Delphi
merupakan bahasa berorentasi objek, artinya nama objek, properti dan
method/procedure dikemas menjadi satu kemasan (encapsulate). Perangkat lunak ini
sangat terkenal di lingkungan pengembang aplikasi karena mudah untuk dipelajari
dan dapat digunakan untuk menangani beberapa hal, dari aplikasi matematika,
permainan (games), hingga database. Pada penanganan database, Delphi
menyediakan fasilitas yang memungkinkan pemrogram dapat berinteraksi dengan
database seperti dBase, Paradox, Oracle, MySQL, dan Access.
2.6 MySQL
MySQL adalah sebuah server basis data SQL multiuser dan multi-threaded.
Multiuser artinya database ini tidak hanya digunakan oleh sepihak orang akan tetapi
merupakan database yang dapat digunakan oleh banyak orang. Multi-threaded artinya
MySQL mampu menerima query yang bertumpuk dalam satu permintaan. MySQL
merupakan sebuah database server yang free, artinya kita bebas menggunakan
database ini untuk keperluan pribadi atau usaha tanpa harus membeli atau membayar
lisensinya.
26
2.7 MyDAC
DAC untuk MySQL atau MyDAC merupakan salah satu produk Direct Access
Components (DAC) dari perusahaan perangkat lunak micro OLAP. MyDAC adalah
kumpulan beberapa komponen data akses yang dapat digunakan oleh pengembang
aplikasi database dengan Delphi dan C++ Builder yang ingin menggunakan MySQL
sebagai server databasenya.
2.8 Gambaran Umum Perusahaan
2.8.1 Sejarah Perusahaan
PT. Madu Baru yang berlokasi di daerah Kabupaten Bantul Propinsi Daerah
Istimewa Yogyakarta mempunyai usaha pokok Pabrik Gula dan Pabrik
Alkohol/Spiritus Madukismo dengan potensi dan peluang pengembangan usaha yang
potensial masih memiliki kesempatan tumbuh dan berkembang menjadi suatu
perusahaan Agro Industri yang berbasis tebu dan dikelola secara professional dan
inovatif menghadapi persaingan bebas di era globalisasi dengan petani sebagai mitra
sejati. Pabrik Gula dan Pabrik Alkohol/Spiritus Madukismo merupakan satu-satunya
pabrik gula dan pabrik alkohol/spiritus di Propinsi Daerah Istimewa Yogyakarta yang
mengemban tugas untuk mensukseskan program pengadaan pangan Nasional,
khususnya gula pasir. Sebagai perusahaan padat karya banyak menampung tenaga
kerja dari Propinsi Daerah Istimewa Yogyakarta. Dibangun pada tahun 1955 atas
prakarsa dari Sri Sultan Hamengku Buwono IX dan diresmikan pada tanggal 29 Mei
1958 oleh Presiden RI pertama Ir. Soekarno. Mulai produksi untuk Pabrik Gula pada
tahun 1958 dan Pabrik Spiritus pada tahun 1959.
Lokasi berada di atas lokasi Bangunan Pabrik Gula Padokan (satu di antara
dari 17 Pabrik Gula di Daerah Istimewa Yogyakarta yang dibangun Pemerintah
Belanda, tetapi dibumihanguskan pada masa Pemerintah Jepang), yang terletak di
Desa Padokan, Kelurahan Tirtonirmolo, Kecamatan Kasihan, Kabupaten Bantul,
Propinsi Daerah Istimewa Yogyakarta. Kontraktor utama adalah Machine Fabriek
27
Sangerhausen, Jerman Timur. Status perusahaan adalah Perseroan Terbatas (PT) yang
berdiri pada tanggal 14 Juni 1955 dan diberi nama “ Pabrik-Pabrik Gula Madu Baru
PT “ (P2G. Madu Baru PT) yang memiliki dua Pabrik antara lain Pabrik Gula (PG)
Madukismo dan Pabrik Alkohol/Spiritus (PS) Madukismo. Kepemilikan saham pada
awal berdiri adalah 75% milik Sri Sultan Hamengku Buwono IX dan 25% milik
pemerintah RI (Departemen Pertanian RI). Saat ini telah dirubah menjadi 65% milik
Sri Sultan Hamengku Buwono X dan 35% milik pemerintah yang dikuasakan kepada
PT. Rajawali Nusantara Indonesia yang merupakan sebuah BUMN.
Kronologi status perusahaan dan perubahan manajemennya adalah sebagai
berikut :
a. Tahun 1955-1962 : Perusahaan Swasta (PT)
b. Tahun 1962-1966 : Bergabung dengan Perusahaan Negara di bawah BPU-
PPN (Badan Pimpinan Umum-Perusahaan Negara), karena adanya policy
Pemerintah RI yang mengambil alih semua perusahaan di Indonesia.
c. Tahun 1966 : BPU-PPN bubar. PG-PG di Indonesia boleh memili : tetap
sebagai Perusahaan Negara atau keluar menjadi Perusahaan Swasta (PT). PT.
Madu Baru memilih menjadi Perusahaan Swasta.
d. Tahun 1966-1984 : PT. Madu Baru kembali menjadi Perusahaan Swasta
dengan susunan Direksi yang dipimpin Sri Sultan Hamengku Buwono IX
sebagai presiden direktur. Tanggal 4 Maret 1984-24 Februari 2004 diadakan
kontrak manajemen dengan PT. Rajawali Nusantara Indonesia (RNI) yaitu
salah satu BUMN milik Departemen Keuangan RI. Tanggal 24 Februari 2004
sampai sekarang PT. Madu Baru menjadi perusahaan mandiri yang dikelola
secara profesional dan independent.
2.8.2 Visi, Misi, dan Budaya Perusahaan
Visi PT. Madu Baru adalah :
“ PT. Madu Baru menjadi perusahaan Agro Industri yang unggul di Indonesia dengan
petani sebagai mitra sejati “.
28
Misi PT. Madu Baru adalah :
1. Menghasilkan gula dan ethanol yang berkualitas untuk memenuhi permintaan
masyarakat dan industri di Indonesia.
2. Menghasilkan produk dengan memanfaatkan teknologi maju yang ramah
lingkungan, dikelola secara professional dan inovatif, memberikan pelayanan
yang prima kepada pelanggan serta mengutamakan kemitraan dengan petani.
3. Mengembangkan produk/bisnis baru yang mendukung bisnis inti.
4. Menempatkan karyawan dan stake holder lainnya sebagai bagian terpenting
dalam proses penciptaan keunggulan perusahaan dan pencapaian share holder
values.
Budaya Perusahaan PT. Madu Baru adalah :
a. Taqwa terhadap Tuhan Yang Maha Esa
b. Jujur dan Adil
c. Rendah Hati
d. Terbuka
e. Saling Menghormati
f. Profesionalisme
g. Kreatif
h. Inovatif
i. Teamwork
j. Peduli Lingkungan
29
BAB III
PERANCANGAN SISTEM
3.1 Spesifikasi Hardware dan Software
3.1.1 Spesifikasi Hardware
Hardware atau perangkat keras merupakan semua peralatan fisik komputer.
Sistem perangkat keras ini terdiri dari unit input, proses, dan output. Beberapa
kebutuhan perangkat keras yang digunakan dalam pembuatan sistem ini adalah :
1. Processor Intel Celleron D 2.13 GHz
2. Motherboard Biostar P4TGV
3. RAM 256 MB
4. Harddisk 40 GB
5. CD ROM dan DVD RW
6. Keyboard, Mouse, monitor standar
Untuk spesifikasi hardware minimum dalam pengaplikasian sistem ini
membutuhkan beberapa spesifikasi antara lain :
1. Intel Pentium 166 MHz or higher (P2 400 MHz recommended)
2. RAM 256 Mb
3. Harddisk 2 GB
4. CD-ROM drive
5. VGA or higher resolution monitor
6. Motherboard, Keyboard, Mouse, Monitor standar
3.1.2 Spesifikasi Software
Dalam pembuatan web generator ini spesifikasi software atau perangkat lunak
yang digunakan adalah :
1. Sistem Operasi
Sistem operasi yang digunakan adalah Windows XP SP 2
2. Bahasa Pemrograman Borland Delphi 7.0
30
3. Database
Database yang digunakan adalah MySQL Database 5.0.24a
4. MySQL Control Center 0.9.2, MySQL DAC 224
3.2 Data-Data Pengamatan
Data-data yang Penulis dapatkan dalam pembuatan Sistem Pendukung
Keputusan Estimasi Jumlah Produksi Gula dengan Logika Fuzzy ini didapat melalui
pengumpulan data di PT. Madu Baru Yogyakarta, data-data tersebut terdiri dari data
tentang Luas Lahan yang digunakan untuk menanam tebu, Jumlah Tebu yang
digiling, jumlah Rendemennya, Biaya Produksi, dan Jumlah Produksi tebu yang
dikumpulkan berdasarkan hasil per tahun antara tahun 2000 sampai target tahun
2008. Adapun data-data tersebut antara lain :
Tabel 3.1 Data Pengamatan
No. TahunLuas Lahan
(Ha)
Jumlah Tebu
Digiling
(Ku)
Rendemen
(%)
Biaya Produksi
(Ribuan Rp.)
Jumlah
Produksi (Ku)
1 2000 5.100 3.602.784 6,47 22.156.533 233.185
2 2001 4.313 3.163.667 6,10 28.084.436 197.736
3 2002 4.870 3.657.298 6,55 27.842.372 240.222
4 2003 4.800 3.686.441 6,70 29.979.282 239.504
5 2004 4.295 3.585.520 6,61 29.920.225 264.210
6 2005 5.472 4.684.056 6,50 38.493.759 237.353
7 2006 5.268 4.756.231 6,72 42.327.923 320.727
8 2007 5.250 5.341.260 6,87 42.023.769 368.210
9 2008 5.535 5.640.000 7,18 57.924.549 406.169
Sumber : Data diolah dari berbagai laporan evaluasi atas kinerja keuangan PT. Madu
Baru untuk tahun 2000-2008
31
3.3 Metodologi Perancangan Sistem Fuzzy.
Dalam merancang sistem pendukung keputusan Estimasi jumlah produksi
gula ini dilakukan dengan Metode Tsukamoto. Adapun beberapa tahapan
perancangan sistem Fuzzy tersebut sebagai berikut :
1. Mendefinisikan model masukan dan keluaran sistem
2. Dekomposisi variabel model menjadi himpunan fuzzy
3. Pembuatan Aturan Fuzzy
4. Proses Logika Fuzzy :
a. Fuzzifikasi
b. Aplikasi Fungsi Implikasi
c. Defuzzifikasi
Penjelasan ke empat tahapan tersebut sebagai berikut :
1. Mendefinisikan Model Masukan dan Keluaran Sistem
Langkah pertama dalam merancang sistem ini adalah dengan mendefinisikan
terlebih dahulu masukan dan keluaran bagi SPK Estimasi Jumlah Produksi Gula.
Masukan dari pengguna untuk simulasi SPK ini terdiri dari luas lahan yang
digunakan untuk menanam tebu berapa Ha, jumlah tebu yang digiling berapa kuintal
(Ku), jumlah rendemennya berapa persen (%), dan biaya produksinya berapa rupiah
(Rp.). Sedangkan keluaran sistem berupa jumlah produksi gula dalam satuan kuintal
(Ku). Dimana masukan dan keluaran tersebut ditetapkan per tahun sebagai anggaran
pada saat awal musim giling.
2. Dekomposisi Variabel Model menjadi Himpunan Fuzzy
Dalam sistem inferensi fuzzy dikenal istilah variabel linguistik, yaitu variabel-
variabel yang dinyatakan dengan bilangan fuzzy, dimana bilangan fuzzy
merepresentasikan konsep fuzzy seperti kecil, sedang, besar (George J.Klir & Bo
Yuan, 1995). Begitu pula dengan sistem inferensi fuzzy yang digunakan untuk
menentukan jumlah produksi gula ini juga menggunakan variabel-variabel linguistik.
32
SEMPIT SEDANG LUAS1
04295 4500 5500 6000
µ[X]
Luas Lahan (Ha)4080
Dari variabel-variabel masukan dibentuk himpunan-himpunan fuzzy antara
lain :
1. Luas Lahan; terdiri atas 3 himpunan fuzzy, yaitu : SEMPIT, SEDANG dan LUAS
(Gambar 3.1 Luas Lahan)
Gambar 3.1 Luas Lahan
Fungsi Keanggotaan :
µlahan SEMPIT
µlahan SEDANG
µlahan LUAS
5000
1
(5000-x) / (5000-4295) ,
0
4080≤x ≤4295
4295 < x < 5000
x ≥5000
0
(x-4500) / (5000-4500) ,
(5500-x) / (5500-5000) ,
x ≤4500 dan x ≥5500
4500 < x < 5000
5000 < x < 5500
0
(x-5000) / (6000-5000) ,
1
x ≤5000
5000 < x < 6000
x ≥6000
1 x = 5000
33
SEDIKIT SEDANG BANYAK1
0
3164 4353 4811 6000
µ[X]
Jumlah Tebu(Ribuan Ku)
3000
2. Jumlah Tebu; terdiri atas 3 himpunan fuzzy, yaitu : SEDIKIT, SEDANG dan
BANYAK (Gambar 3.2 Jumlah Tebu)
Gambar 3.2 Jumlah Tebu
Fungsi Keanggotaan :
µjTebu SEDIKIT
µjTebu SEDANG
µjTebu BANYAK
4582
1
(4582-x) / (4582-3164) ,
0
3000 ≤x ≤3164
3164 < x < 4582
x ≥4582
0
(x-4353) / (4582-4353) ,
(4811-x) / (4811-4582) ,
x ≤4353 dan x ≥4811
4353 < x < 4582
4582 < x < 4811
0
(x-4582) / (6000-4582) ,
1
x ≤4582
4582 < x < 6000
x ≥6000
1 x = 4582
34
RENDAH SEDANG TINGGI1
06.10 6.11 6.75 8
µ[X]
Rendemen (%)5
3. Rendemen; terdiri atas 3 himpunan fuzzy, yaitu : RENDAH, SEDANG dan
TINGGI (Gambar 3.3 Rendemen)
Gambar 3.3 Rendemen
Fungsi Keanggotaan :
µrendemen RENDAH
µrendemen SEDANG
µrendemen TINGGI
6.432
1
6.432-x) / (6.432-6.10) ,
0
5 ≤x ≤6.10
6.10 < x < 6.432
x ≥6.432
0
(x-6.11) / (6.432-6.11) ,
(6.75-x) / (6.75-6.432,
x ≤6.11 dan x ≥6.75
6.11 < x < 6.432
6.432< x < 6.75
0
(x-6.432) / (8-6.432) ,
1
x ≤6.432
6,432 ≤x ≤8
x ≥8
1 x = 6.432
35
RENDAH NORMAL TINGGI1
027000 39045 43155 65000
µ[X]
Biaya Produksi(Jutaan Rp.)
22000
4. Biaya Produksi; terdiri atas 3 himpunan fuzzy, yaitu : RENDAH, NORMAL dan
TINGGI (Gambar 3.4 Biaya Produksi)
Gambar 3.4 Biaya Produksi
Fungsi Keanggotaan :
µBiayaProd RENDAH
µBiayaProd NORMAL
µBiayaProd TINGGI
41100
1
(41100-x) / (41100-27000) ,
0
22000 ≤x ≤27000
27000 < x < 41100
x ≥41100
0
(x-39045) / (41100-39045) ,
(43155-x) / (43155-41100) ,
x ≤39045 dan x ≥43155
39045 < x < 41100
41100< x < 43155
0
(x-41100) / (65000-41100) ,
1
x ≤41100
41100 < x < 65000
x ≥65000
1 x = 41100
36
RENDAH NORMAL TINGGI1
0197736 321925 355811 480000
µ[X]
Jumlah Produksi (Ku)
Untuk keluarannya, dibentuk himpunan fuzzy yaitu :
1. Jumlah Produksi; terdiri atas 3 himpunan fuzzy, yaitu : RENDAH, NORMAL dan
TINGGI (Gambar 3.5 Jumlah Produksi)
Gambar 3.5 Jumlah Produksi
Fungsi Keanggotaan :
µjProd RENDAH
µjProd NORMAL
µjProd TINGGI
338868
1
(338868-x) / (338868-197736) ,
0
x ≤197736
197736< x < 338868
x ≥338868
0
(x-321925) / (338868-321925) ,
(355811-x) / (355811-338868) ,
x ≤321925 dan x ≥355811
321925 < x < 338868
338868 < x < 355811
0
(x-338868) / (480000-338868) ,
1
x ≤338868
338868 < x < 480000
x ≥480000
1 x = 338868
37
Setelah variabel tersebut ditentukan himpunan fuzzy-nya kemudian
menentukan domain batas dari masing-masing himpunan fuzzy tersebut. Domain
batas ditentukan berdasarkan data-data yang telah ada. Data-data tersebut dianalisa
sehingga dihasilkan nilai batas dari setiap himpunan fuzzy pada setiap variabel
tersebut. Adapun Estimasi domain batas tersebut dari user, tetapi untuk nilai batas di
atas sudah dilakukan analisa penelitian oleh peneliti. Adapun Estimasi domain batas
tersebut yaitu dengan menentukan Batas Min, Batas Bawah, Rata-rata, dan Batas
Atas. Batas Min merupakan batas yang menjadi patokan peng-input-an nilai pada
waktu proses dijalankan. Batas Bawah merupakan batas paling kecil dari data-data
yang ada, Rata-rata merupakan nilai rata-rata data, dan Batas Atas merupakan batas
yang memiliki nilai paling besar. Dari batas-batas tersebut maka tiap-tiap himpunan
memiliki nilai, misal pada Luas Lahan memiliki himpunan fuzzy bernama sempit,
sedang, dan luas.
1. Sempit, yang direpresentasikan dengan kurva bentuk bahu meliputi :
a. Nilai Bawah a = Batas Min.
b. Nilai Bawah b = Batas Bawah.
c. Nilai Bawah c = Rata-rata.
2. Sedang, yang direpresentasikan dengan kurva segitiga meliputi :
a. Nilai Tengah a = 0.05 * Rata-rata.
b. Nilai Tengah b = Rata-rata.
c. Nilai Tengah c = 0.05 * Rata-rata.
3. Luas, yang direpresentasikan dengan kurva bentuk bahu meliputi :
a. Nilai Atas a = Rata-rata.
b. Nilai Atas b = Batas Atas.
Adapun Estimasi Nilai Tengah a dan Nilai Tengah c pada himpunan fuzzy
sedang ditentukan sendiri faktor pengalinya. Untuk sistem ini digunakan faktor
pengali sebesar 0.05 atau 5% agar mempunyai jangkauan yang tidak begitu terlalu
besar.
38
Estimasi nilai batas untuk himpunan fuzzy pada tiap-tiap variabel fuzzy
tersebut sama akan tetapi pada variabel Jumlah Produksi Batas Min tidak diterapkan
karena merupakan output dari sistem. Sebenarnya Batas Min tersebut dapat
diterapkan tetapi pada sistem ini tidak diterapkan Batas Min untuk output-nya, karena
nilai akan dihasilkan sama dengan Batas Bawah pada Jumlah Produksinya.
3. Pembuatan Aturan Fuzzy.
Dari ke empat masukan dan sebuah keluaran yang telah didefinisikan di atas,
dengan melakukan analisa data terhadap batas tiap-tiap himpunan fuzzy pada tiap-
tiap variabelnya maka dibentuk 19 aturan fuzzy yang akan dipakai dalam sistem
Estimasi jumlah produksi gula ini, yaitu :
a. IF Luas Lahan luas AND Jumlah Tebu banyak AND Rendemen tinggi AND
Biaya Produksi Tinggi THEN Jumlah Produksi tinggi
b. IF Luas Lahan luas AND Jumlah Tebu banyak AND Rendemen tinggi AND
Biaya Produksi normal THEN Jumlah Produksi tinggi
c. IF Luas Lahan luas AND Jumlah Tebu banyak AND Rendemen sedang AND
Biaya Produksi tinggi THEN Jumlah Produksi tinggi
d. IF Luas Lahan luas AND Jumlah Tebu sedang AND Rendemen sedang AND
Biaya Produksi tinggi THEN Jumlah Produksi tinggi
e. IF Luas Lahan sedang AND Jumlah Tebu sedang AND Rendemen sedang
AND Biaya Produksi tinggi THEN Jumlah Produksi tinggi
f. IF Luas Lahan luas AND Jumlah Tebu banyak AND Rendemen sedang AND
Biaya Produksi normal THEN Jumlah Produksi tinggi
g. IF Luas Lahan luas AND Jumlah Tebu sedang AND Rendemen tinggi AND
Biaya Produksi normal THEN Jumlah Produksi tinggi
h. IF Luas Lahan sedang AND Jumlah Tebu banyak AND Rendemen sedang
AND Biaya Produksi tinggi THEN Jumlah Produksi tinggi
i. IF Luas Lahan luas AND Jumlah Tebu sedang AND Rendemen tinggi AND
Biaya Produksi tinggi THEN Jumlah Produksi tinggi
39
j. IF Luas Lahan sedang AND Jumlah Tebu banyak AND Rendemen tinggi
AND Biaya Produksi tinggi THEN Jumlah Produksi tinggi
k. IF Luas Lahan luas AND Jumlah Tebu sedang AND Rendemen sedang AND
Biaya Produksi normal THEN Jumlah Produksi normal
l. IF Luas Lahan sedang AND Jumlah Tebu sedang AND Rendemen sedang
AND Biaya Produksi normal THEN Jumlah Produksi normal
m. IF Luas Lahan sempit AND Jumlah Tebu sedikit AND Rendemen rendah
AND Biaya Produksi rendah THEN Jumlah Produksi rendah
n. IF Luas Lahan sedang AND Jumlah Tebu sedikit AND Rendemen rendah
AND Biaya Produksi normal THEN Jumlah Produksi rendah
o. IF Luas Lahan sedang AND Jumlah Tebu sedikit AND Rendemen sedang
AND Biaya Produksi normal THEN Jumlah Produksi rendah
p. IF Luas Lahan sedang AND Jumlah Tebu sedikit AND Rendemen tinggi
AND Biaya Produksi normal THEN Jumlah Produksi rendah
q. IF Luas Lahan sempit AND Jumlah Tebu sedikit AND Rendemen rendah
AND Biaya Produksi normal THEN Jumlah Produksi rendah
r. IF Luas Lahan sempit AND Jumlah Tebu sedikit AND Rendemen sedang
AND Biaya Produksi normal THEN Jumlah Produksi rendah
s. IF Luas Lahan sempit AND Jumlah Tebu sedikit AND Rendemen tinggi
AND Biaya Produksi normal THEN Jumlah Produksi rendah
4. Proses Logika Fuzzy
a. Fuzzifikasi
Merupakan proses untuk mendapatkan derajat keanggotaan dari sebuah nilai
numerik masukan (crisp).
Misalnya : suatu variabel mempunyai nilai X1 maka nilai X1 tersebut dicari derajat
keanggotaannya (µ[X1]). Di dalam mencari derajat keanggotaannya tersebut X1 harus
diketahui dahulu letaknya berada dimana. Misal diambil salah satu variabel yaitu
40
Luas Lahan, apakah X1 tersebut berada di himpunan sempit, sedang atau luas. X1
dapat menempati di dua tempat himpunan misalnya sedang dan luas atau bahkan satu
himpunan saja.
Fungsi Keanggotaan Bawah :
µBAWAH[X1]
Keterangan :
a = Batas Bawah a/ Batas MIN
b = Batas Bawah b
c = Batas Bawah c
Berikut implementasi X1 tersebut di dalam Fuzzifikasi untuk himpunan sempit :
µlahan SEMPIT
Diambil suatu nilai untuk X1 = 4300 Ha. Dimana nilai 4300 hanya memenuhi untuk
himpunan sempit.
µlahan SEMPIT[4300] = (5000-4300) / (5000-4295)
= 700 / 705
= 0.9929
Didapat derajat keanggotaan senilai 0.9929 yang selanjutnya derajat keanggotaan
tersebut diimplementasikan ke dalam aturan fuzzy.
1
(5000-x) / (5000-4295) ,
0
4080≤x ≤5000
4295 < x < 5000
x ≥5000
1
(c-x1) / (c-b) ,
0
a ≤x ≤b
b < x < c
x ≥c
41
b. Aplikasi Fungsi Implikasi
Dimana penggunaan Fungsi MIN sebagai Metode Implikasinya dalam
menentukan α-predikat minimum dari tiap-tiap aturan yang ditetapkan, maksudnya
dari beberapa pernyataan IF tersebut diambil α-predikat atau nilai derajat
keanggotaan terkecil.
Misal : Diambil contoh untuk aturan pertama dengan nilai derajat keanggotaan
sembarang.
IF Luas Lahan luas AND Jumlah Tebu banyak AND Rendemen tinggi AND
Biaya Produksi Tinggi THEN Jumlah Produksi tinggi
α-predikat1 :
= µLahanLUAS µTebuBANYAKµRendTINGGI µBiayaTINGGI
= MIN ( µLahanLUAS[5535], µTebuBANYAK[5640], µRendTINGGI[7.18],
µBiayaTINGGI[58000] )
= MIN (0.535; 0.746; 0.477; 0.707)
= 0.477
Keterangan :
α-predikat1 = derajat keanggotaan terkecil/ minimum
c. Defuzzifikasi
Dalam perancangan sistem Estimasi jumlah produksi gula dengan logika fuzzy
ini, digunakan Metode Inferensi Tsukamoto. Pada metode ini setiap konsekuen pada
aturan yang berbentuk IF-THEN harus direpresentasikan dengan suatu himpunan
fuzzy dengan fungsi keanggotaan yang monoton dalam arti Estimasi nilai Zn tersebut
dari hasil implikasi tiap-tiap aturan masing-masing. Mula-mula Defuzzifikasi ini
dilakukan pada tiap-tiap aturan, setelah semua aturan terpenuhi serta didapat nilai Zn
dari tiap-tiap aturannya kemudian mulai melakukan Estimasi hasil akhir. Berikut
gambaran melakukan Defuzzifikasi untuk tiap-tiap aturan yang diambil dari aturan
pertama :
42
α1z1 + α2z2 +….. + αnzn
α1 + α2+….. +αn
Di dalam aturan pertama didapat sebuah pernyataan THEN yaitu Jumlah Produksi
bertambah. Sehingga didapat sebuah rumusan Defuzzifikasi aturan pertama sebagai
berikut :
Z1= α-predikat1 *(b-a)+a
Keterangan :
Z1 = Nilai Defuzzifikasi (jumlah produksi aturan 1)
α-predikat1 = Derajat Keanggotaan 1
a = Batas Atas a
b = Batas Atas b
Defuzzifikasi itu sendiri merupakan suatu proses untuk merubah hasil
penalaran yang berupa derajat keanggotaan keluaran (α-predikat) menjadi variabel
numerik kembali (crisp). Sistem akhir Estimasi jumlah produksi gula ini
menggunakan rata-rata terbobot (weight average) sebagai metode Defuzzifikasi untuk
mendapatkan hasil akhir jumlah produksi gula. Adapun rumus rata-rata terbobot
tersebut adalah sebagai berikut :
Z =
Keterangan :
Z = Jumlah Produksi Gula
αn = Derajat Keanggotaan dari Aturan ke- n
zn = Jumlah Produksi dari Aturan ke- n
43
Data BatasHimp. Fuzzy daninput nilai variabelFuzzy
Data Batas Himp. FuzzyData keputusan jumlahproduksi
3.4 Perancangan Aplikasi
3.4.1 Diagram Alir Data
Diagram Alir Data yang disingkat DAD atau DFD (Data Flow Diagram)
merupakan suatu model logika data atau proses yang dibuat untuk menggambarkan
dari mana asal data dan ke mana tujuan data yang keluar dari sistem, dimana data
disimpan, proses apa yang menghasilkan data tersebut dan interaksi antara data yang
tersimpan dan proses yang dikenakan pada data tersebut. Sehingga dengan DAD ini
bisa diketahui dimana data disimpan dan bagaimana transformasi datanya.
3.4.1.1 Diagram Konteks
Gambar 3.6 Diagram Konteks
User
0SPK Estimasi
JumlahProduksi Gula
DatabaseMadubaru
44
D1 batas
D2 anggaran
Updatebatas himp.Fuzzy
Input nilai variabelFuzzy ( luas lahan, jum.tebu, rendemen, biayaprod.)
Proses jumlahproduksi gula
Output jumlahproduksi gula
Lihat data batas,dan anggaranproduksi
3.4.1.3 DAD Level 0
Gambar 3.7 Diagram Alir Data (DAD) Level 0
User
1P
Update BatasHimpunan
Fuzzy
2P
Input nilaivariabel fuzzy
3
JumlahProduksi Gula
4P
Lihat Datayang ada pada
SPK
45
D2 anggaran
Print hasilkeputusan
ProsesSimpankeputusan
3.4.1.4 DAD Level 1
3
Gambar 3.8 Diagram Alir Data (DAD) Level 1
User
3.1P
SimpanKeputusan
DSS
3.2P
PrintKeputusan
DSS
46
3.4.2 FlowChart Sistem
Suatu permasalahan dapat diselesaikan dengan flowchart, karena flowchart
merupakan bagan alir dari proses penyelesaian masalah yang disusun secara
sistematis.
Gambar 3.9 FlowChart SPK Jumlah Produksi Gula dengan Logika Fuzzy
Mulai
Masukan dari user,Luas lahanJumlah tebuRendemenBiaya produksi
Defuzzifikasi
Jumlah produksigula
Selesai
Fuzzifikasi Implikasi
47
3.4.3 Kamus Data
Semua jenis data yang terlibat dalam proses akan didefinisikan dan
dikumpulkan dalam suatu kamus data. Adapun dalam pembuatan aplikasi ini
digunakan dua buah tabel yaitu tabel batas dan tabel anggaran. Berikut representasi
kamus data batas pada Tabel 3.2 dan kamus data anggaran pada Tabel 3.3 :
Tabel 3.2 Kamus Data Batas
FILE BATAS.DBF
Nama Field Tipe Lebar Artiid Varchar 30 Nomor Batasvariabel Varchar 30 Nama Variabelhimpunan Varchar 30 Nama Himpunansatuan Varchar 30 Satuan VariabelA Varchar 30 Domain BatasB Varchar 30 Domain BatasC Varchar 30 Domain Batas
Tabel 3.3 Kamus Data Anggaran
FILE ANGGARAN.DBF
Nama Field Tipe Lebar Arti
tahun Varchar 5 Tahunluas_lahan Float Luas Lahan (Ha)jum_tebu Float Jumlah Tebu (x1000 Ku)rendemen Float Rendemen (%)biaya_prod Float Biaya Produksi (Jutaan Rp.)jum_prod Float Jumlah Produksi (Ku)
48
3.5 Perancangan Program
3.5.1 Perancangan Tampilan Awal
Tampilan awal berisi judul program yang mengghunakan metode splash
screen untuk menunggu agar program masuk ke tampilan awal program. Gambar
3.10 adalah rancangan tampilan awal.
Gambar 3.10 Rancangan Tampilan Awal
3.5.2 Perancangan Tampilan Utama
Tampilan Utama merupakan menu pull down yang terdiri dari File, Bantuan
dan Tentang Program. Menu File terdiri dari Input untuk membuka mengisi domain b
atas himpunan fuzzy pada masing-masing variabel fuzzy, SPK untuk melakukan
proses Estimasi jumlah produksi gula dengan melakukan input nilai terhadap tiap-tiap
variable fuzzy, dan Lihat untuk melihat data anggaran produksi tiap-tiap tahunnya.
Menu Bantuan berisi bantuan untuk aplikasi program. Menu Tentang berisi identitas
pembuat program, serta Keluar untuk mengakhiri aplikasi program. Selain itu di
tampilan utama ini menyajikan empat buah toolbar yang terdiri dari Domain Batas,
SPK, Anggaran Produksi, dan Keluar. Keempat toolbar mempunyai fungsi sama
dengan yang berada di pull down, tetapi ini berfungsi untuk lebih memudahkan lagi
user dalam mengaplikasikan program tersebut. Gambar 3.11 adalah rancangan
tampilan utama SPK Estimasi jumlah produksi gula dengan logika fuzzy.
Judul Program
49
Gambar 3.11 Rancangan Tampilan Utama
3.5.3 Perancangan Input Domain Batas Himpunan Fuzzy
Tampilan Input domain batas himpunan fuzzy ini berisi enam buah button
yang terdiri dari button Luas Lahan untuk memasuki form pengisian domain batas
terhadap himpunan Luas Lahan, button Jumlah Tebu untuk memasuki form
pengisian domain batas terhadap himpunan Jumlah Tebu, button Rendemen untuk
memasuki form pengisian domain batas terhadap himpunan Rendemen, button Biaya
Produksi untuk memasuki form pengisian domain batas terhadap himpunan Biaya
Produksi, button Jumlah Produksi untuk memasuki form pengisian domain batas
terhadap himpunan Jumlah Produksi, dan button Keluar untuk keluar dari form input
Domain Batas Himpunan Fuzzy. Gambar 3.12 adalah rancangan tampilan untuk
input domain batas himpunan fuzzy.
File Bantuan Tentang Keluar
DomainBatas
SPK AnggaranProduksi
Keluar
Input Domain Batas
SPKLihat Data Anggaran
Gambar Perusahaan Tanggal
Jam
50
Gambar 3.12 Rancangan Input Domain Batas Himpunan Fuzzy
3.5.4 Perancangan Input Batas Luas Lahan
Tampilan Input Batas Luas Lahan ini menggunakan lima buah Group Box.
Group Box yang terdiri dari tiga buah Label dan tiga buah Edit yang terdiri dari
Bawah, Rata-rata, dan Atas. Bawah merupakan masukan untuk batas paling bawah
untuk Luas Lahan, Rata-rata merupakan rata-rata Luas Lahannya, dan Atas
merupakan batas maksimal Luas Lahan tersebut. Kemudian Group Box yang bawah
terdiri dari tiga buah Group Box yaitu Group Box Sempit, Sedang, dan Luas yang
mana setiap Group Box tersebut memiliki Label untuk menampilkan nilai setelah
melalui proses inputan Batas Bawah, Rata-rata, dan Batas Atasnya yang berada di
Group Box atasnya. Selain Group Box, Label, dan Edit digunakan Bitbutton yang
terdiri dari Proses, Simpan, Edit, Batal dan Keluar. Bitbutton Proses untuk
memproses input pada Group Box atas yang terdiri dari Batas Bawah, Rata-rata, dan
Atas yang hasilnya akan ditampilkan di Group Box bawahnya yang terdiri dari Group
Box Sempit, Sedang, dan Luas. Simpan untuk menyimpan hasil batas Luas Lahan
setelah diproses, Edit untuk meng-edit batas tersebut, Batal untuk membatalkan
proses dan Keluar untuk keluar dari form Input Batas Luas Lahan. Gambar 3.13
adalah Rancangan Input Batas Luas Lahan.
Luas Lahan
Jumlah Tebu
Rendemen
Biaya Produksi
JumlahProduksi
Keluar
51
Gambar 3.13 Rancangan Input Batas Luas Lahan
3.5.5 Perancangan Input Batas Jumlah Tebu
Tampilan Input Batas Jumlah Tebu ini menggunakan lima buah Group Box.
Group Box yang terdiri dari tiga buah Label dan tiga buah Edit yang terdiri dari
Bawah, Rata-rata, dan Atas. Bawah merupakan masukan untuk batas paling bawah
untuk Jumlah Tebu, Rata-rata merupakan rata-rata Jumlah Tebunya, dan Atas
merupakan batas maksimal Jumlah Tebu tersebut. Kemudian Group Box yang bawah
terdiri dari tiga buah Group Box yaitu Group Box Sedikit, Sedang, dan Banyak yang
mana setiap Group Box tersebut memiliki Label untuk menampilkan nilai setelah
melalui proses inputan Batas Bawah, Rata-rata, dan Batas Atasnya yang berada di
Group Box atasnya. Selain Group Box, Label, dan Edit digunakan Bitbutton yang
terdiri dari Proses, Simpan, Edit, Batal dan Keluar. Bitbutton Proses untuk
memproses input pada Group Box atas yang terdiri dari Batas Bawah, Rata-rata, dan
Atas yang hasilnya akan ditampilkan di Group Box bawahnya yang terdiri dari Group
Box Sedikit, Sedang, dan Banyak. Simpan untuk menyimpan hasil batas Jumlah Tebu
Edit Simpan Keluar
Proses
Luas Lahan
Bawah Atas
Rata-rata
Luas Lahan
Sempit Sedang Luas
Bawah a
Bawah b
Tengah a
Tengah b
Tengah c
Atas a
Atas b
Batal
52
setelah diproses, Edit untuk meng-edit batas tersebut, Batal untuk membatalkan
proses dan Keluar untuk keluar dari form Input Batas Jumlah Tebu. Gambar 3.14
adalah Rancangan Input Batas Jumlah Tebu.
Gambar 3.14 Rancangan Input Batas Jumlah Tebu
3.5.6 Perancangan Input Batas Rendemen
Tampilan Input Batas Rendemen ini menggunakan lima buah Group Box.
Group Box terdiri dari tiga buah Label dan tiga buah Edit yang terdiri dari Bawah,
Rata-rata, dan Atas. Bawah merupakan masukan untuk batas paling bawah untuk
Rendemen, Rata-rata merupakan rata-rata Rendemennya, dan Atas merupakan batas
maksimal Rendemen tersebut. Kemudian Group Box yang bawah terdiri dari tiga
buah Group Box yaitu Group Box Rendah, Sedang, dan Tinggi yang mana setiap
Group Box tersebut memiliki Label untuk menampilkan nilai setelah melalui proses
inputan Batas Bawah, Rata-rata, dan Batas Atasnya yang berada di Group Box
atasnya. Selain Group Box, Label, dan Edit digunakan Bitbutton yang terdiri dari
Edit Simpan Keluar
Proses
Jumlah Tebu
Bawah Atas
Rata-rata
Jumlah Tebu
Sedikit Sedang Banyaks
Bawah a
Bawah b
Tengah a
Tengah b
Tengah c
Atas a
Atas b
Batal
53
Proses, Simpan, Edit, Batal dan Keluar. Bitbutton Proses untuk memproses input
pada Group Box atas yang terdiri dari Batas Bawah, Rata-rata, dan Atas yang
hasilnya akan ditampilkan di Group Box bawahnya yang terdiri dari Group Box
Rendah, Sedang, dan Tinggi. Simpan untuk menyimpan hasil batas Rendemen setelah
diproses, Edit untuk meng-edit batas tersebut, Batal untuk membatalkan proses dan
Keluar untuk keluar dari form Input Batas Rendemen. Gambar 3.15 adalah
Rancangan Input Batas Rendemen.
Gambar 3.15 Rancangan Input Batas Rendemen
3.5.7 Perancangan Input Batas Biaya Produksi
Tampilan Input Batas Biaya Produksi ini menggunakan lima buah Group Box.
Group Box terdiri dari tiga buah Label dan tiga buah Edit yang terdiri dari Bawah,
Rata-rata, dan Atas. Bawah merupakan masukan untuk batas paling bawah untuk
Biaya Produksi, Rata-rata merupakan rata-rata Biaya Produksinya, dan Atas
merupakan batas maksimal Biaya Produksi tersebut. Kemudian Group Box yang
bawah terdiri dari tiga buah Group Box yaitu Group Box Rendah, Normal, dan Tinggi
Edit Simpan Keluar
Proses
Rendemen
Bawah Atas
Rata-rata
Rendemen
Rendah Sedang Tinggi
Bawah a
Bawah b
Tengah a
Tengah b
Tengah c
Atas a
Atas b
Batal
54
yang mana setiap Group Box tersebut memiliki Label untuk menampilkan nilai
setelah melalui proses input-an Batas Bawah, Rata-rata, dan Batas Atasnya yang
berada di Group Box atasnya. Selain Group Box, Label, dan Edit digunakan Bitbutton
yang terdiri dari Proses, Simpan, Edit, Batal dan Keluar. Bitbutton Proses untuk
memproses input pada Group Box atas yang terdiri dari Batas Bawah, Rata-rata, dan
Atas yang hasilnya akan ditampilkan di Group Box bawahnya yang terdiri dari Group
Box Rendah, Normal, dan Tinggi. Simpan untuk menyimpan hasil batas Biaya
Produksi setelah diproses, Edit untuk meng-edit batas tersebut, Batal untuk
menmpatalkan proses dan Keluar untuk keluar dari form Input Batas Biaya Produksi.
Gambar 3.16 adalah Rancangan Input Batas Biaya Produksi.
Gambar 3.16 Rancangan Input Batas Biaya Produksi
3.5.8 Perancangan Input Batas Jumlah Produksi
Tampilan Input Batas Jumlah Produksi ini menggunakan lima buah Group
Box. Group Box terdiri dari tiga buah Label dan tiga buah Edit yang terdiri dari
Edit Simpan Keluar
Proses
Biaya Prod.
Bawah Atas
Rata-rata
Biaya Prod.
Rendah Normal Tinggi
Bawah a
Bawah b
Tengah a
Tengah b
Tengah c
Atas a
Atas b
Batal
55
Bawah, Rata-rata, dan Atas. Bawah merupakan masukan untuk batas paling bawah
untuk Jumlah Produksi, Rata-rata merupakan rata-rata Jumlah Produksinya, dan Atas
merupakan batas maksimal Jumlah Produksi tersebut. Kemudian Group Box yang
bawah terdiri dari tiga buah Group Box yaitu Group Box Berkurang, Normal, dan
Bertambah yang mana setiap Group Box tersebut memiliki Label untuk menampilkan
nilai setelah melalui proses input-an Batas Bawah, Rata-rata, dan Batas Atasnya yang
berada di Group Box atasnya. Selain Group Box, Label, dan Edit digunakan Bitbutton
yang terdiri dari Proses, Simpan, Edit, Batal dan Keluar. Bitbutton Proses untuk
memproses input pada Group Box atas yang terdiri dari Batas Bawah, Rata-rata, dan
Atas yang hasilnya akan ditampilkan di Group Box bawahnya yang terdiri dari Group
Box Rendah, Normal, dan Tinggi. Simpan untuk menyimpan hasil batas Jumlah
Produksi setelah diproses, Edit untuk meng-edit batas tersebut, Batal untuk
membatalkan proses dan Keluar untuk keluar dari form Input Batas Jumlah Produksi.
Gambar 3.17 adalah Rancangan Input Batas Jumlah Produksi.
Gambar 3.17 Rancangan Input Batas Jumlah Produksi
Edit Simpan Keluar
Proses
Jumlah Prod.
Bawah Atas
Rata-rata
Jumlah Prod.
Rendah Normal Tinggi
Bawah a
Bawah b
Tengah a
Tengah b
Tengah c
Atas a
Atas b
Batal
56
3.5.9 Perancangan Proses Sistem Pendukung Keputusan (SPK)
Tampilan Proses Sistem Pendukung Keputusan (SPK) ini menggunakan
empat buah Group Box yang masing-masingnya terdiri dari Edit dan button Data.
Edit untuk memasukkan nilai variabel fuzzy yang diinginkan dan button Data untuk
melihat data-data mengenai variabel fuzzy serta beberapa info dalam memutuskan
sebelum meng-input-kan nilai variabel fuzzy tersebut. Selain itu terdapat Label tahun
untuk menampilkan tahun sekarang, Speed Button Proses SPK Fuzzy untuk
memproses input-an dari empat buah variabel agar menghasilkan sutau nilai variabel
yaitu jumlah produksi gula yang disarankan, BitButton Simpan untuk menyimpan
data-data SPK, Hapus untuk menghapus masukan data pada tiap-tiap edit dalam
variabel tersebut, cetak untuk mencetak data anggaran produksi pada waktu itu,
Detail untuk melihat detail proses SPK dan Keluar untuk mengakhiri form SPK ini.
Hasil proses akan ditampilkan pada bagian bawah yang menggunakan Label. Gambar
3.18 adalah rancangan proses SPK.
Gambar 3.18 Rancangan Proses SPK
Luas Lahan
Data
Jumlah Tebu
Data
Rendemen
Data
Biaya Prod.
Data
Tahun
Proses SPKFuzzy
Hapus
Keluar
Simpan
Cetak
Jumlah Produksi Gula yang disarankan menurut Logika Fuzzy :
Detail
57
3.5.10 Perancangan Output Data Variabel Fuzzy
Tampilan untuk Output Data Variabel Fuzzy ini terdiri dari data-data yang
ditampilkan dalam DBGrid yang diambil dari tabel anggaran dalam database
program. Data-data tersebut merupakan data anggaran dari tiap-tiap variabel fuzzy
yang terdiri dari Luas Lahan, Jumlah Tebu, Rendemen, dan Biaya Produksi. Selain
data-data akan disajikan info agar user lebih teliti lagi dalam memasukkan nilai
variabel tersebut. Gambar 3.19 Rancangan Output Data Variabel Fuzzy
Gambar 3.19 Rancangan Output Data Variabel Fuzzy
3.5.11 Perancangan Output Data Anggaran Produksi
Tampilan Output Data Anggaran Produksi merupakan tampilan DBGrid untuk
menyajikan data-data dari tabel Anggaran secara keseluruhan di setiap tahunnya.
Data-data tersebut tersimpan dalam sebuah database dengan nama Madubaru.
Terdapat juga BitButton Keluar untuk mengakhiri form Anggaran Produksi ini.
Gambar 3.20 Rancangan Output Data Anggaran Produksi.
Data Variabel Fuzzy
Tahun Variabel Fuzzy
INFO
58
Gambar 3.20 Rancangan Output Data Anggaran Produksi
3.5.12 Perancangan Cetak Anggaran Produksi per Tahun
Tampilan Cetak Anggaran Produksi per Tahun menampilkan data-data
anggaran produksi per tahunnya. Data-data tersebut kemudian dicetak dan menjadi
hard copy sebuah data yang siap diarsipkan. Gambar 3.21 Rancangan Cetak
Anggaran Produksi per Tahun.
Gambar 3.21 Rancangan Cetak Anggaran Produksi per Tahun
Tahun Lahan Tebu Rendemen Biaya Jum. Prod.
Anggaran Produksi Gula per Tahun
Tahun Lahan Tebu Rendemen Biaya Jum. Prod.
Anggaran Produksi GulaPT. Madu Baru Yogyakarta
Keluar
LogoPerusahaan
59
3.5.13 Perancangan Detail SPK
Tampilan Detail SPK menampilkan data rumusan proses SPK Estimasi
Jumlah Produksi tersebut. Data-data tersebut merupakan representasi dari Proses SPK
dengan Logika Fuzzy tersebut. Gambar 3.22 Rancangan Detail SPK.
Gambar 3.22 Rancangan Detail SPK
Nilai Inputan
Fuzzifikasi
Fungsi Implikasi
Defuzzifikasi
60
BAB IV
IMPLEMENTASI DAN ANALISA SISTEM
4.1 Implementasi Sistem
Tahap implementasi sistem merupakan tahap pendiskripsian suatu sistem
aplikasi agar sistem aplikasi tersebut siap untuk dioperasikan. Tahap ini dilakukan
setelah tahap analisis data, tahap perancangan basis data dan tahap perancangan
aliran data dan menu sistem selesai. Tahap implementasi tersebut akan membahas
mengenai desain input data, desain proses data, desain output sistem serta analisis
hasil yang berupa pengujian sistem tersebut secara manualnya. Berdasarkan
tahapan implementasi tersebut diketahui apakah sistem yang dibuat benar-benar
mencapai tujuan yang diinginkan. Sebelum sistem ini diimplementasikan maka
sistem harus bebas dari kesalahan. Kesalahan yang mungkin terjadi antara lain
kesalahan dalam penulisan bahasa pemrograman, kesalahan logika baik program
maupun pengolahan data, maupun kesalahan pada waktu melakukan proses.
Berdasarkan analisis dari desain sistem yang telah dilakukan, maka telah
diimplementasikan sebuah sistem pendukung keputusan Estimasi jumlah produksi
gula dengan logika fuzzy. Dalam penyusunan sistem ini digunakan bahasa
pemrograman Delphi 7.0 dan database MySQL yang merupakan pasangan bahasa
pemrograman dan basis data yang digunakan untuk merancang suatu aplikasi .
Sistem ini dilengkapi dengan tombol-tombol perintah peng-input-an data sehingga
dapat membantu user dalam mengoperasikan sistem dan akan didapatkan hasil
output berupa jumlah produksi gula tiap tahunnya, selain itu tombol-tombol
tersebut akan membantu sistem dalam melakukan tugasnya dengan mudah dan
cepat.
61
4.1.1 Implementasi Sistem Awal
Implementasi sistem awal ini dengan menampilkan tampilan splash screen
di dalam sistem.
Gambar 4.1 Splash Screen
4.1.2 Implementasi Menu Utama
Menu Utama merupakan tampilan sesudah proses splash screen
dieksekusi. Menu Utama ini merupakan tampilan yang menyajikan tombol-
tombol perintah sehingga user akan dipermudahkan dalam menggunakan sistem
ini. Menu Utama ini terdiri dari Menu File, Menu Bantuan, Menu Tentang, dan
Keluar. Menu File ini terdiri dari tiga bagian yaitu input data domain batas, proses
SPK, dan melihat Anggaran Produksi. Untuk lebih memudahkan lagi isi di dalam
Menu File tersebut ditampilkan dengan tombol toolbar. Jika tombol domain batas
diklik maka akan menampilkan Form Domain Batas dimana di dalamnya juga
terdiri dari tombol variabel fuzzy untuk masuk ke sebuah form batas variabel
untuk melakukan pengisian nilai batas terhadap variabel yang bersangkutan.
Tampilan form Menu Utama seperti pada gambar 4.2 berikut :
62
Gambar 4.2 Menu Utama
4.1.3 Implementasi Input
Untuk menuju ke proses penginputan data dari tiap-tiap variabel maka
user akan dihadapkan pada sebuah tampilan yang terdiri dari button variabel yang
jika diklik maka user akan langsung menuju form pengisian nilai batas variabel
tertentu tersebut. Tampilan form Menu Domain Batas seperti pada gambar 4.3
berikut :
Gambar 4.3 Menu Domain Batas
63
Pada form ini user dapat mengisikan nilai batas tiap-tiap variabel, yang
terdiri dari Batas MIN yang merupakan Batas Minimum yang digunakan sebagai
patokan paling kecil pada saat memasukkan nilai saat mengaplikasikan SPK yang
digunakan sebagai persyaratan agar nilai yang dimasukkan benar-benar sesuai
dengan yang diinginkan, Bawah yang merupakan Batas Bawah dari variabel yang
nilainya di atas Batas MIN yang biasanya merupakan nilai terkecil dari data, Rata-
rata merupakan Batas Tengah atau rata-rata dari data untuk variabel, dan Atas
yang merupakan Batas Maksimum variabel tersebut yang dijadikan syarat target
ke depannya. Nilai tersebut akan menentukan nilai keluaran SPK nantinya.
Setelah ke empat nilai tersebut dimasukkan lewat komponen edit maka user
diharuskan menjalankan komponen Proses agar nilai tersebut diproses untuk
ditempatkan pada tiap-tiap himpunan fuzzy yang telah di-set keterangannya. Awal
mulanya untuk batas masing-masing himpunan ini mempunyai nilai default yang
nilainya ditentukan berdasarkan analisa terhadap data yang ada. Nilai ini langsung
dimasukkan lewat database dengan nama tabelnya adalah ”batas”. Untuk validasi
tombol jika form Batas tiap-tiap variabel ini di-show-kan adalah dengan
menampilkan nilai himpunan yang berkaitan dengan nama variabel yang diambil
dari tabel ”batas”. Selain itu, kondisi untuk button Edit, Batal dan Keluar adalah
Enabled=TRUE sedangkan button lainnya dalam keadaan Disabled atau
Enabled=FALSE. Jika dilakukan pengeditan terhadap nilai himpunan maka button
Edit akan bernilai FALSE dan button Proses akan bernilai TRUE. Jika button
Proses tersebut dijalankan maka button Simpan akan bernilai TRUE selanjutnya
jika Simpan dijalankan maka Simpan tersebut akan menjadi FALSE dan button
Edit akan bernilai TRUE lagi, demikian seterusnya. Untuk button Batal untuk
membatalkan pengeditan jika button Edit sudah dijalankan, button Keluar untuk
keluar dari form Input Batas variabel tersebut. Berikut merupakan representasi
dari button-button dari form Domain Batas jika di-klik :
1. Input Batas Luas Lahan
Batas Luas Lahan merupakan suatu batasan terhadap berapa hektar (Ha)
Luas Lahan yang akan dikelola ke depannya. Luas Lahan ini merupakan salah
64
satu faktor yang menjadi area bagi tumbuhnya atau dihasilkannya bahan baku
yang berupa tebu. Sehingga diperlukan suatu keputusan dalam menentukan Luas
Lahan sebelum diambil target untuk faktor-faktor yang lainnya. Tampilan form
Input Batas Luas Lahan seperti pada gambar 4.4 berikut :
Gambar 4.4 Input Batas Luas Lahan
2. Input Batas Jumlah Tebu
Batas Jumlah Tebu merupakan suatu batasan terhadap berapa Kuintal (Ku)
Tebu yang akan digiling. Tebu tersebut merupakan bahan baku dalam
menhasilkan gula sehingga diperlukan target yang matang agar jumlah produksi
gula tersebut dapat memenuhi permintaan dan sebanding dengan Luas Lahannya.
Tampilan form Input Batas Batas Jumlah Tebu seperti pada gambar 4.5 berikut :
65
Gambar 4.5 Input Batas Jumlah Tebu
3. Input Batas Rendemen
Batas Rendemen merupakan suatu batasan terhadap berapa persen (%)
rendemen atau kadar gula yang dibutuhkan untuk menghasilkan produksi yang
berkualitas dan menguntungkan. Rendemen ini juga merupakan faktor penentu
jumlah produksi gula tersebut, rendemen ini dapat menaksir seberapa Kuintal gula
akan diproduksi. Tampilan form Input Batas Rendemen seperti pada gambar 4.6
berikut :
Gambar 4.6 Input Batas Rendemen
66
4. Input Batas Biaya Produksi
Batas Biaya Produksi ini merupakan batasan terhadap berapa Rupiah biaya
yang dibutuhkan untuk berproduksi. Biaya produksi ini meliputi kalkulasi
terhadap semua biaya yang dikeluarkan. Tampilan form Input Batas Biaya
Produksi seperti pada gambar 4.7 berikut :
Gambar 4.7 Input Batas Biaya Produksi
4. Input Batas Jumlah Produksi
Batas Jumlah Produksi ini merupakan batasan terhadap berapa Kuintal
(Ku) gula yang akan diproduksi. Jumlah ini merupakan keluaran dari SPK ini. Di
dalam menentukan batas tersebut untuk Batas Jumlah Produksi gula ini tidak
merepresentasikan Batas MIN, karena variabel ini termasuk output dari SPK.
Tampilan form Input Batas Jumlah Produksi seperti pada gambar 4.8 berikut :
67
Gambar 4.8 Input Batas Jumlah Produksi
4.1.4 Implementasi Proses
Proses merupakan segala sesuatu yang menangani suatu masukan untuk
ditangani atau dirubah dengan suatu perumusan atau metode tertentu sehingga
menghasilkan suatu nilai keluaran yang dapat dijadikan sebagai informasi untuk
melakukan suatu keputusan.
1. Proses SPK
Form Proses ini menampilkan proses Sistem Pendukung Keputusan
Estimasi Jumlah Produksi Gula dengan Logika Fuzzy. Dimana user harus mengisi
terlebih dahulu input variabel yang dijadikan masukan SPK ini. Variabel tersebut
adalah variabel Luas Lahan, Jumlah Tebu, Rendemen, dan Biaya Produksi. Jika
tidak diisi semua atau salah beberapa maka akan muncul warning (Gambar 4.28),
jika di dalam meng-input-kannya tidak sesuai aturan pemberian nilai maka akan
muncul warning juga (Gambar 4.29) dan apabila inputnya kurang dari batas
minimum maka akan muncul warning (Gambar 4.30). Output dari SPK ini berupa
Jumlah Produksi Gula yang disarankan yang ditampilkan dalam format label.
Adapun tombol perintah yang dipakai ada tombol Simpan untuk menyimpan hasil
proses setelah masukan nilai variabel, Proses SPK Fuzzy untuk memproses
masukan nilai variabel tersebut untuk ditampilkan output-nya, Hapus untuk
68
menghapus inputan data variabel, Cetak untuk mencetak anggaran produksi tiap-
tiap tahunnya, Detail untuk melihat detail rumus proses SPK dan Keluar untuk
mengakhiri SPK tersebut. Tampilan form Proses SPK seperti pada gambar 4.9
berikut :
Gambar 4.9 Proses SPK
Listing Program untuk Fuzzifikasi
Pembentukan unit Fuzzifikasi untuk menyimpan fungsi-fungsi yang digunakan
untuk proses Fuzzifikasi. Gambar 4.10 berikut merupakan bagian awal dari unit
Fuzzifikasi :
Gambar 4.10 Unit Fuzzifikasi
unit UFuzzifikasi;
interface
function bahu_kiri(x,a,b:real):real;
function segitiga (x,a,b,c : real):real;
function bahu_kanan (x,a,b:real):real;
implementation
69
Selanjutnya di dalam unit tersebut terdapat tiga buah fungsi untuk Fuzzifikasi,
yaitu :
1. Fungsi Fuzzifikasi Bahu Kiri, yang merupakan representasi dari Fuzzifikasi
Batas Bawah. Gambar 4.11 berikut merupakan Fungsi Fuzzifikasi Bahu Kiri :
Gambar 4.11 Fungsi Fuzzifikasi Bahu Kiri
2. Fungsi Fuzzifikasi Segitiga, yang merupakan representasi dari Fuzzifikasi Batas
Tengah. Gambar 4.12 berikut merupakan Fungsi Fuzzifikasi Segitiga :
Gambar 4.12 Fungsi Fuzzifikasi Segitiga
function bahu_kiri(x,a,b:real):real;
begin
if(x<=a) then
bahu_kiri:=1
else if (x>a) and (x<b) then
bahu_kiri:= (b-x)/(b-a)
else
bahu_kiri:=0;
end;
function segitiga (x,a,b,c : real):real;
begin
if (x<=a) or (x>=c) then
segitiga:=0
else if (x>a) and (x<b) then
segitiga:=(x-a)/(b-a)
else if x=b then
segitiga:=1
else
segitiga:=(c-x)/(c-b); end;
70
3. Fungsi Fuzzifikasi Bahu Kanan, yang merupakan representasi dari Fuzzifikasi
Batas Atas. Gambar 4.13 berikut merupakan Fungsi Fuzzifikasi Bahu Kanan :
Gambar 4.13 Fungsi Fuzzifikasi Bahu Kanan
Listing Program Fungsi Implikasi :
Di dalam fungsi implikasi proses SPK ini digunakan implikasi Min,
dimana dicari derajat keanggotaan terkecil pada masing-masing aturannya.
Adapun cara untuk mengambil nilai derajat keanggotaan terkecil dari suatu aturan
dengan mengimplementasikan Fungsi Find_Min. Gambar 4.14 berikut merupakan
Fungsi Find_Min :
function bahu_kanan (x,a,b:real):real;
begin
if(x<=a) then
bahu_kanan:=0
else if (x>a) and (x<b) then
bahu_kanan:=(x-a)/(b-a)
else
bahu_kanan:=1;
end;
end.
71
Gambar 4.14 Fungsi Find_Min
Listing Program Defuzzifikasi :
Pembentukan unit Defuzzifikasi untuk menyimpan fungsi-fungsi yang digunakan
untuk proses Defuzzifikasi. Gambar 4.15 berikut merupakan bagian awal dari unit
Defuzzifikasi:
Gambar 4.15 Unit Defuzzifikasi
unit UDefuzzifikasi
interface
function defz_bahu_kiri(a,b,c:real):real;
function defz_segitiga(a,b,c:real):real;
function defz_bahu_kanan(a,b,c:real):real;
implementation
function TFrmSPK.Find_Min(a,b,c,d:real):real;
var x:real;
begin
x := a;
if x > b then
x := b;
if x > c then
x := c;
if x > d then
x := d;
//menyimpan nilai
Find_Min:= x;
end;
72
Selanjutnya di dalam unit tersebut terdapat tiga buah fungsi untuk Defuzzifikasi,
yaitu :
1. Fungsi Defuzzifikasi Bahu Kiri, yang merupakan representasi Defuzzifikasi
untuk Batas Bawah. Gambar 4.16 berikut merupakan Fungsi Defuzzifikasi Bahu
Kiri :
Gambar 4.16 Fungsi Defuzzifikasi Bahu Kiri
2. Fungsi Defuzzifikasi Segitiga, yang merupakan representasi Defuzzifikasi untuk
Batas Tengah. Gambar 4.17 berikut merupakan Fungsi Defuzzifikasi Segitiga :
Gambar 4.17 Fungsi Defuzzifikasi Segitiga
3. Fungsi Defuzzifikasi Bahu Kanan, yang merupakan representasi Defuzzifikasi
untuk Batas Atas. Gambar 4.18 berikut merupakan Fungsi Defuzzifikasi Bahu
Kanan :
Gambar 4.18 Fungsi Defuzzifikasi Bahu Kanan
function defz_bahu_kiri(a,b,c:real):real;
begin
defz_bahu_kiri:= b-(c*(b-a));
end;
function defz_segitiga(a,b,c:real):real;
begin
defz_segitiga:= b-c*(b-a);
end;
function defz_bahu_kanan(a,b,c:real):real;
begin
defz_bahu_kanan:= c*(b-a)+a;
end;
end.
73
Listing Program Implementasi Fungsi Implikasi dan Fungsi Defuzzifikasi :
Berikut merupakan contoh implementasi Fungsi Implikasi Min dan Fungsi
Defuzzifikasi di dalam Proses SPK Fuzzy. Gambar 4.19 merupakan Implementasi
Fungsi Implikasi Min dan Defuzzifikasi dari aturan pertama :
Gambar 4.19 Implementasi Fungsi Implikasi Min dan Defuzzifikasi
Listing Program Rata-rata Terbobot :
Rata-rata Terbobot atau Weight Average ini merupakan langkah terakhir
dalam Defuzzifikasi dimana dengan menerapkan prosedur ini akan didapat
keluaran yaitu jumlah produksi yang disarankan. Gambar 4.20 merupakan
Prosedur Rata-Rata Terbobot :
(* 1. IF luas lahan luas AND jumlah tebu banyak AND rendemen tinggi
AND Biaya Produksi Tinggi
THEN Jumlah Produksi bertambah *)
//Implikasi Min
output_rule[1]:=Find_Min(u_x1_bahu_kanan, u_x2_bahu_kanan, u_x3_bahu_kanan,u_x4_bahu_kanan);
//Defuzzifikasi masing-masing Aturan
u_output[1]:=defz_bahu_kanan(TabelBatasA.AsFloat,TabelBatasB.AsFloat,
output_rule[1]); //Defuzzifikasi
74
Gambar 4.20 Prosedur Rata-Rata Terbobot
2. Proses Edit Anggaran Produksi
Proses Edit Anggaran Produksi ini untuk mengganti nilai variabel pada
Tabel Anggaran. Tampilan form Proses Anggaran Produksi seperti pada gambar
4.21 berikut :
procedure TfrmSPK.compute_output ();
var i: integer;
z,temp1,temp2 : real;
begin
for i:=1 to 19 do
begin
temp1 := temp1 + output_rule[i] * u_output[i];
temp2 := temp2 + output_rule[i];
end;
if (temp1=0) OR (temp2=0) then
begin
MessageDlg('Tidak sesuai aturan', mtWarning, [mbOk], 0);
end
else
z:=temp1/temp2;
//menampilkan jumlah produksi
lblProd.Caption:= FloatToStr(RoundTo(z,-3));
frmDetail.jumlah.Caption:=lblProd.Caption;
end;
75
Gambar 4.21 Proses Edit Anggaran Produksi
4.1.5 Implementasi Output
Output merupakan hasil keluaran dari sistem yang digunakan sebagai
bahan informasi maupun referensi untuk menentukan suatu keputusan atau jalan
yang akan ditempuh selanjutnya.
1. Data Variabel Fuzzy
Data variabel Fuzzy ini merupakan informasi terhadap user sebelum dia
melakukan suatu masukan ke SPK. Informasi tersebut berupa data-data variabel
yang berada dalam anggaran produksi yang telah dikelompokkan berdasarkan
variabelnya. Data-data tersebut merupakan kumpulan data dari anggaran produksi
tahun-tahun sebelumnya. Untuk data yang ditampilkan di sistem ini data dari
tahun 2000 sampai tahun 2008. Tampilan form Data Variabel Fuzzy seperti pada
gambar 4.22 berikut :
76
Gambar 4.22 Data Variabel Fuzzy
2. Data Anggaran Produksi
Data hasil proses akan disimpan di dalam suatu tabel yang bernama tabel
anggaran. Form ini merupakan penampil dari data-data pada Tabel Anggaran
tersebut. Tampilan form Anggaran Produksi seperti pada gambar 4.23 berikut :
Gambar 4.23 Anggaran Produksi
77
3. Print Preview Anggaran Produksi
Ini merupakan tampilan print preview dari data anggaran produksi yang
berada pada Tabel Anggaran. Data Anggaran Produksi tersebut siap dicetak untuk
dijadikan laporan dalam bentuk Hard Copy. Tampilan Print Preview Anggaran
Produksi seperti pada gambar 4.24 berikut :
Gambar 4.24 Print Preview Anggaran Produksi
4. Detail SPK
Detail SPK ini merupakan informasi mengenai cara tertulis dari proses
SPK Estimasi Jumlah Produksi Gula dengan Logika Fuzzy tersebut. Dengan detail
ini diharapkan user dapat mengetahui tata cara Estimasi dengan metode fuzzy
secara garis besarnya yang mana proses ini sebenarnya terdapat di dalam source
code programnya. Tampilan Detail SPK seperti pada gambar 4.25 berikut :
78
Gambar 4.25 Detail SPK
4.1.6 Implementasi Menu Bantuan
Menu Bantuan merupakan suatu menu untuk membantu user dalam
mengaplikasikan program SPK ini. Bantuan ini menyajikan teori program dan
interface program SPK tersebut. Tampilan form Bantuan seperti pada gambar 4.26
berikut :
Gambar 4.26 Menu Bantuan
79
4.1.7 Implementasi Menu Tentang
Menu Tentang berisi identitas pembuat program. Menu ini akan muncul
jika menu tentang dijalankan kemudian akan berakhir jika tanda silang di pojok
kiri atas diklik. Tampilan form Tentang seperti pada gambar 4.27 berikut :
Gambar 4.27 Menu Tentang
4.1.8 Implementasi Peringatan
Peringatan/ warning ini akan muncul jika nilai data variabel yang diisi
pada saat melakukan SPK masih ada yang kosong atau belum diisi tapi sudah
diklik tombol Proses-nya. Tampilan peringatan tersebut seperti pada gambar 4.28
berikut :
Gambar 4.28 Peringatan Data Harus Diisi Semuanya
80
Peringatan ini akan muncul apabila data yang diisikan tidak sesuai aturan
dalam pengisian data. Aturan tersebut merupakan bagian dari pengolahan data
dengan Logika Fuzzy tersebut, tujuannya agar data yang diisikan benar-benar
sesuai kenyataan tidak berat sebelah, karena mengingat Logika Fuzzy tersebut
merupakan teknik pengambilan Keputusan dengan menyeimbangkan variabel-
variabelnya agar diperoleh keputusan selayaknya. Tampilan peringatan tersebut
seperti pada gambar 4.29 berikut :
Gambar 4.29 Peringatan Data Tidak Sesuai Aturan
Peringatan ini akan muncul jika masukan terhadap nilai variabel tersebut
kurang dari Batas Minimum nilai yang telah ditetapkan. Sehingga, user
diharapkan untuk mengulangi atau merubah nilai variabel yang dimasukkannya.
Tampilan peringatan tersebut seperti pada gambar 4.30 berikut :
Gambar 4.30 Peringatan Nilai Kurang dari Batas Minimum
Peringatan ini akan muncul pada saat penyimpanan data (Gambar 4.31)
dan peringatan pada Gambar 4.32 akan muncul pada saat penghapusan data.
4.2 Analisa Sistem
Sistem yang dibangun ini dianalisa agar penerapan teori ke dalam praktik
program dapat sejalan. Sehingga jika dicek baik secara manual dengan
81
penghitungan programnya menghasilkan nilai yang tidak jauh beda. SPK Estimasi
Jumlah Produksi Gula dengan Logika Fuzzy ini memberikan solusi baru mengenai
cara mendapatkan jumlah produksi gula tersebut yaitu dengan teknik pengambilan
keputusan dengan Logika Fuzzy.
4.2.1 Analisa Hasil
Hasil sistem yang didapatkan harus diuji nilainya dengan melakukan
pengujian sistem secara manual sehingga dengan perbandingan ini akan
didapatkan hasil sistem yang benar-benar diakui karena sesuai dengan hitungan
manualnya.
Diambil contoh suatu nilai dari tiap-tiap variabel yang akan dijadikan
masukan ke dalam SPK ini :
1. Luas Lahan : 5535 Ha
2. Jumlah Tebu : 5.640.000 Kuintal
3. Rendemen : 7.18 %
4. Biaya Produksi : Rp. 58.000.000.000,-
Ditetapkan suatu perjanjian ( NB. Untuk memudahkan perhitungan ) :
Untuk Jumlah Tebu : 5.640 x 1000 Ku
Untuk Biaya Produksi : Rp. 58.000,- x Rp.1.000.000,-
Tahapan Perhitungan :
1. Nilai masukan dan keluaran sistem
2. Fuzzifikasi
3. Aplikasi fungsi implikasi
4. Defuzzifikasi
Rincian :
1. Mendefinisikan model masukan dan keluaran sistem.
82
Masukan terdiri dari 4 Variabel Fuzzy, yaitu :
a. Luas Lahan : 5535 Ha
b. Jumlah Tebu : 5640 (x1000 Ku)
c. Rendemen : 7.18 %
d. Biaya Produksi : 58000 (x Rp. 1000000)
Keluaran terdiri dari 1 Variabel Fuzzy, yaitu : Jumlah Produksi.
2. Fuzzifikasi.
Estimasi dengan melihat grafik fungsi keanggotaan.
a. Luas Lahan :
1. Sempit = 0
2. Sedang = 0
3. Luas =
=
=
b. Jumlah Tebu :
1. Sedikit = 0
2. Sedang = 0
3. Banyak =
=
=
c. Rendemen :
(5535-5000) / (6000-5000)
535 / 1000
0.535
(5640-4582) / (6000-4582)
1058 / 1418
0.746
83
1. Rendah = 0
2. Sedang = 0
3. Tinggi =
=
=
d. Biaya Produksi :
1. Rendah = 0
2. Normal = 0
3. Tinggi =
=
=
3. Aplikasi Fungsi Implikasi Min dan Defuzzifikasi tiap-tiap aturan
1. IF Luas Lahan luas AND Jumlah Tebu banyak AND Rendemen tinggi
AND Biaya Produksi Tinggi THEN Jumlah Produksi tinggi
α-predikat1 :
= µLahanLUAS µTebuBANYAK µRendTINGGI µBiayaTINGGI
= MIN ( µLahanLUAS[5535], µTebuBANYAK[5640], µRendTINGGI[7.18],
µBiayaTINGGI[58000] )
= MIN (0.535; 0.746; 0.4770408; 0.707)
= 0.4770408
Lihat himpunan Jumlah Produksi TINGGI : (Defuzzifikasi Aturan)
Z1= 0.4770408*(480000-338868)+338868
(7.18-6.432) / (8-6.432)
0.748/ 1.568
0.4770408
(58000-41100) / (65000-41100)
16900 / 23900
0.707
84
= 0.4770408*141132 + 338868
= 67325.722+ 338868
= 406193.72
2. IF Luas Lahan luas AND Jumlah Tebu banyak AND Rendemen tinggi
AND Biaya Produksi normal THEN Jumlah Produksi tinggi
α-predikat2 :
= µLahanLUAS µTebuBANYAK µRendTINGGI µBiayaNORMAL
= MIN ( µLahanLUAS[5535], µTebuBANYAK[5640], µRendTINGGI[7.18],
µBiayaNORMAL[58000] )
= MIN (0.535; 0.746; 0.477; 0)
= 0
Lihat himpunan Jumlah Produksi TINGGI :
Z2 = 0*(480000-338868)+338868
= 338868
3. IF Luas Lahan luas AND Jumlah Tebu banyak AND Rendemen sedang
AND Biaya Produksi tinggi THEN Jumlah Produksi tinggi
α-predikat3 :
= µLahanLUAS µTebuBANYAK µRendSEDANG µBiayaTINGGI
= MIN ( µLahanLUAS[5535], µTebuBANYAK[5640], µRendSEDANG[7.18],
µBiayaTINGGI[58000] )
= MIN (0.535; 0.746; 0; 0.707)
= 0
85
Lihat himpunan Jumlah Produksi TINGGI :
Z3 = 0*(480000-338868)+338868
= 338868
4. IF Luas Lahan luas AND Jumlah Tebu sedang AND Rendemen sedang
AND Biaya Produksi tinggi THEN Jumlah Produksi tinggi
α-predikat4 :
= µLahanLUAS µTebuSEDANG µRendSEDANG µBiayaTINGGI
= MIN ( µLahanLUAS[5535], µTebuSEDANG[5640], µRendSEDANG[7.18],
µBiayaTINGGI[58000] )
= MIN (0.535; 0; 0; 0.707)
= 0
Lihat himpunan Jumlah Produksi TINGGI :
Z4 = 0*(480000-338868)+338868
= 338868
5. IF Luas Lahan sedang AND Jumlah Tebu sedang AND Rendemen sedang
AND Biaya Produksi tinggi THEN Jumlah Produksi tinggi
α-predikat5 :
= µLahanSEDANG µTebuSEDANG µRendSEDANG µBiayaTINGGI
=MIN (µLahanSEDANG[5535], µTebuSEDANG[5640], µRendSEDANG[7.18],
µBiayaTINGGI[58000] )
= MIN (0; 0; 0; 0.707)
= 0
86
Lihat himpunan Jumlah Produksi TINGGI :
Z5 = 0*(480000-338868)+338868
= 338868
6. IF Luas Lahan luas AND Jumlah Tebu banyak AND Rendemen sedang
AND Biaya Produksi normal THEN Jumlah Produksi tinggi
α-predikat6 :
= µLahanLUAS µTebuBANYAK µRendSEDANG µBiayaNORMAL
= MIN ( µLahanLUAS[5535], µTebuBANYAK[5640], µRendSEDANG[7.18],
µBiayaNORMAL[58000] )
= MIN (0.535; 0.746; 0;0)
= 0
Lihat himpunan Jumlah Produksi TINGGI :
Z6 = 0*(480000-338868)+338868
= 338868
7. IF Luas Lahan luas AND Jumlah Tebu sedang AND Rendemen tinggi
AND Biaya Produksi normal THEN Jumlah Produksi tinggi
α-predikat7 :
= µLahanLUAS µTebuSEDANGµRendTINGGI µBiayaNORMAL
= MIN ( µLahanLUAS[5535], µTebuSEDANG [5640], µRendTINGGI [7.18],
µBiayaNORMAL [58000] )
= MIN (0.535; 0; 0.477; 0)
= 0
87
Lihat himpunan Jumlah Produksi TINGGI :
Z7 = 0*(480000-338868)+338868
= 338868
8. IF Luas Lahan sedang AND Jumlah Tebu banyak AND Rendemen sedang
AND Biaya Produksi tinggi THEN Jumlah Produksi tinggi
α-predikat8 :
= µLahanSEDANG µTebuBANYAK µRendSEDANG µBiayaTINGGI
= MIN ( µLahanSEDANG[5535], µTebuBANYAK [5640], µRendSEDANG
[7.18], µBiayaTINGGI [58000] )
= MIN (0; 0.746; 0; 0.707)
= 0
Lihat himpunan Jumlah Produksi TINGGI :
Z8 = 0*(480000-338868)+338868
= 338868
9. IF Luas Lahan luas AND Jumlah Tebu sedang AND Rendemen tinggi
AND Biaya Produksi tinggi THEN Jumlah Produksi tinggi
α-predikat9 :
= µLahanLUAS µTebuSEDANG µRendTINGGI µBiayaTINGGI
= MIN ( µLahanLUAS[5535], µTebuSEDANG [5640], µRendTINGGI [7.18],
µBiayaTINGGI [58000] )
= MIN (0.535; 0; 0.477; 0.707)
= 0
88
Lihat himpunan Jumlah Produksi TINGGI :
Z9 = 0*(480000-338868)+338868
= 338868
10. IF Luas Lahan sedang AND Jumlah Tebu banyak AND Rendemen tinggi
AND Biaya Produksi tinggi THEN Jumlah Produksi tinggi
α-predikat10 :
= µLahanSEDANG µTebuBANYAK µRendTINGGI µBiayaTINGGI
= MIN ( µLahanSEDANG[5535], µTebuBANYAK [5640], µRendTINGGI
[7.18], µBiayaTINGGI [58000] )
= MIN (0; 0.746; 0.477; 0.707)
= 0
Lihat himpunan Jumlah Produksi TINGGI :
Z10 = 0*(480000-338868)+338868
= 338868
11. IF Luas Lahan luas AND Jumlah Tebu sedang AND Rendemen sedang
AND Biaya Produksi normal THEN Jumlah Produksi normal
α-predikat11 :
= µLahanLUAS µTebuSEDANGµRendSEDANG µBiayaNORMAL
= MIN ( µLahanLUAS[5535], µTebuSEDANG [5640], µRendSEDANG [7.18],
µBiayaNORMAL [58000] )
= MIN (0.535; 0; 0; 0)
= 0
89
Lihat himpunan Jumlah Produksi NORMAL :
Z11 = 362868-0*(362868-338868)
= 362868
12. IF Luas Lahan sedang AND Jumlah Tebu sedang AND Rendemen sedang
AND Biaya Produksi normal THEN Jumlah Produksi normal
α-predikat12 :
= µLahanSEDANG µTebuSEDANG µRendSEDANG µBiayaNORMAL
= MIN ( µLahanSEDANG[5535], µTebuSEDANG [5640], µRendSEDANG
[7.18], µBiayaNORMAL [58000] )
= MIN (0; 0; 0; 0)
= 0
Lihat himpunan Jumlah Produksi NORMAL :
Z12 = 362868-0*(362868-338868)
= 362868
13. IF Luas Lahan sempit AND Jumlah Tebu sedikit AND Rendemen rendah
AND Biaya Produksi rendah THEN Jumlah Produksi rendah
α-predikat13 :
= µLahanSEMPIT µTebuSEDIKIT µRendRENDAH µBiayaRENDAH
= MIN ( µLahanSEMPIT[5535], µTebuSEDIKIT [5640], µRendRENDAH
[7.18], µBiayaRENDAH [58000] )
= MIN (0; 0; 0; 0)
= 0
90
Lihat himpunan Jumlah Produksi RENDAH :
Z13 = 338868-0*(338868-197736)
= 338868
14. IF Luas Lahan sedang AND Jumlah Tebu sedikit AND Rendemen rendah
AND Biaya Produksi normal THEN Jumlah Produksi rendah
α-predikat14 :
= µLahanSEDANG µTebuSEDIKIT µRendRENDAH µBiayaNORMAL
= MIN ( µLahanSEDANG[5535], µTebuSEDIKIT [5640], µRendRENDAH
[7.18], µBiayaNORMAL [58000] )
= MIN (0; 0; 0; 0)
= 0
Lihat himpunan Jumlah Produksi RENDAH :
Z14 = 338868-0*(338868-197736)
= 3338868
15. IF Luas Lahan sedang AND Jumlah Tebu sedikit AND Rendemen sedang
AND Biaya Produksi normal THEN Jumlah Produksi rendah
α-predikat15 :
= µLahanSEDANGµTebuSEDIKIT µRendSEDANGµBiayaNORMAL
= MIN ( µLahanSEDANG[5535], µTebuSEDIKIT [5640], µRendSEDANG
[7.18], µBiayaNORMAL[58000] )
= MIN (0; 0; 0; 0)
= 0
91
Lihat himpunan Jumlah Produksi RENDAH :
Z15 = 338868-0*(338868-197736)
= 338868
16. IF Luas Lahan sedang AND Jumlah Tebu sedikit AND Rendemen tinggi
AND Biaya Produksi normal THEN Jumlah Produksi rendah
α-predikat16 :
= µLahanSEDANG µTebuSEDIKIT µRendTINGGIµBiayaNORMAL
= MIN ( µLahanSEDANG[5535], µTebuSEDIKIT [5640], µRendTINGGI
[7.18], µBiayaNORMAL [58000] )
= MIN (0; 0; 0.477; 0)
= 0
Lihat himpunan Jumlah Produksi RENDAH :
Z16 = 338868-0*(338868-197736)
= 3338868
17. IF Luas Lahan sempit AND Jumlah Tebu sedikit AND Rendemen rendah
AND Biaya Produksi normal THEN Jumlah Produksi rendah
α-predikat17 :
= µLahanSEMPIT µTebuSEDIKIT µRendRENDAHµBiayaNORMAL
= MIN ( µLahanSEMPIT[5535], µTebuSEDIKIT [5640], µRendRENDAH
[7.18], µBiayaNORMAL [58000] )
= MIN (0; 0; 0; 0)
= 0
92
Lihat himpunan Jumlah Produksi RENDAH :
Z17 = 338868-0*(338868-197736)
= 338868
18. IF Luas Lahan sempit AND Jumlah Tebu sedikit AND Rendemen sedang
AND Biaya Produksi normal THEN Jumlah Produksi rendah
α-predikat18 :
= µLahanSEMPIT µTebuSEDIKIT µRendSEDANG µBiayaNORMAL
= MIN ( µLahanSEMPIT[5535], µTebuSEDIKIT [5640], µRendSEDANG[7.18],
µBiayaNORMAL [58000] )
= MIN (0; 0; 0; 0)
= 0
Lihat himpunan Jumlah Produksi RENDAH :
Z18 = 338868-0*(338868-197736)
= 338868
19. IF Luas Lahan sempit AND Jumlah Tebu sedikit AND Rendemen tinggi
AND Biaya Produksi normal THEN Jumlah Produksi rendah
α-predikat19 :
= µLahanSEMPIT µTebuSEDIKIT µRendTINGGIµBiayaNORMAL
= MIN ( µLahanSEMPIT[5535], µTebuSEDIKIT [5640], µRendTINGGI [7.18],
µBiayaNORMAL [58000] )
= MIN (0; 0; 0.477; 0)
= 0
93
Lihat himpunan Jumlah Produksi RENDAH :
Z19 = 338868-0*(338868-197736)
= 338868
4. Defuzzifikasi Akhir.
Untuk Defuzzifikasi tiap-tiap aturan sudah dikerjakan setelah menerapkan
fungsi implikasi Min tiap-tiap aturannya. Selanjutnya akan ditentukan
Defuzzifikasi akhir untuk mendapatkan jumlah produksi gula yaitu dengan
menggunakan Rata-rata terbobot (Weight Average).
Z =
Z = 406193.724
Jadi, jumlah gula yang harus diproduksi perusahaan adalah 406.193,724 Kuintal.
Dengan inputan nilai variabel yang sama kemudian diaplikasikan melalui
program SPK ini, ternyata menghasilkan nilai yang tidak jauh beda. Maka dari itu,
SPK Estimasi Jumlah Produksi Gula dengan Logika Fuzzy ini sudah sesuai
dengan perhitungannya dan dapat diterapkan untuk mendukung keputusan dalam
menentukan target produksi gula setiap tahunnya. SPK ini bertujuan untuk
memberikan alternatif cara bagi manajer dalam menentukan target produksi gula
per tahun.
Selain itu, sistem SPK Estimasi Jumlah Produksi Gula dengan Logika
Fuzzy tersebut dibandingkan dengan data-data anggaran produksi yang diperoleh
dari PT. Madu Baru Yogyakarta pada tahun 2000-2008. Tabel 4.1 berikut ini
menjelaskan hasil dari sistem jika dibandingkan dengan data-data pengamatan
produksi pada tahun 2000-2008 :
(0.4770408*406193.72) + 0
0.4770408 + 0
94
Tabel 4.1 Data Perbandingan
No. Tahun
Luas
Lahan
(Ha)
Jumlah
Tebu
Digiling
(Ku)
Rende
men
(%)
Biaya
Produksi
(Ribuan Rp.)
Jumlah
Produksi
(Ku)Hasil Jumlah Produksi
dalam SPK
1 2000 5.100 3.602.784 6,47 22.156.533 233.185 Tidak Sesuai Aturan
2 2001 4.313 3.163.667 6,10 28.084.436 197.736 208.586,148
3 2002 4.870 3.657.298 6,55 27.842.372 240.222 Tidak Sesuai Aturan
4 2003 4.800 3.686.441 6,70 29.979.282 239.504 Tidak Sesuai Aturan
5 2004 4.295 3.585.520 6,61 29.920.225 264.210 Tidak Sesuai Aturan
6 2005 5.472 4.684.056 6,50 38.493.759 237.353 Tidak Sesuai Aturan
7 2006 5.268 4.756.231 6,72 42.327.923 320.727 355.544,477
8 2007 5.250 5.341.260 6,87 42.023.769 368.210 370.156,239
9 2008 5.535 5.640.000 7,18 57.924.549 406.169 406.193,724
Di dalam data perbandingan antara sistem dengan data sebenarnya yang
ada di lapangan menunjukkan nilai yang tidak begitu jauh beda yaitu pada tahun
2001, 2006, 2007, dan 2008. Untuk tahun 2000, 2002, 2003, 2004, dan 2005 nilai
yang didapat tidak sesuai aturan karena hasil α-predikat tiap-tiap aturan tersebut
mempunyai nilai 0. Sehingga tidak mempunyai hasil keluaran atau tidak sesuai
aturan. Setelah dianalisa rupanya pada biaya produksi harus memenuhi nilai
normal karena nilai normal akan cenderung memenuhi aturan, nilai pada biaya
produksi untuk kelima tahun yang tidak sesuai aturan tersebut mempunyai nilai
biaya produksi yang rendah sehingga harus dipertimbangkan. Maka dari itu, perlu
dianalisa ulang masukan untuk tiap-tiap faktornya.
95
BAB V
PENUTUP
5.1 Kesimpulan
1. Sistem Pendukung Keputusan Estimasi Jumlah Produksi Gula merupakan
solusi bagi para pengambil keputusan manajerial dalam menentukan target
produksi gula per tahunnya.
2. SPK Estimasi Jumlah Produksi Gula tersebut diproses dengan Logika
Fuzzy yang merupakan teknik berbasiskan perasaan yang menghasilkan
keputusan yang lebih seimbang karena merepresentasikan himpunan
dengan derajat keanggotaan antara interval 0 sampai 1.
3. Logika Fuzzy memetakan suatu ruang input ke dalam ruang output dimana
yang menjadi input-nya adalah faktor-faktor yang mempengaruhi jumlah
produksi gula yang meliputi Luas Lahan, Jumlah Tebu, Rendemen, dan
Biaya Produksi kemudian yang dijadikan output-nya adalah Jumlah
Produksi Gula per tahunnya.
4. Perancangan SPK digunakan Metode Inferensi Tsukamoto dimana
penggunaan metode Min sebagai fungsi implikasinya, kemudian output
hasil implikasi dari tiap-tiap aturan tersebut diberikan secara tegas (crisp)
berdasarkan derajat keanggotaan terkecilnya yang dikenal dengan
Defuzzifikasi tiap-tiap aturan, selanjutnya penentuan hasil akhir dengan
menerapkan rata-rata terbobot untuk mendapatkan jumlah produksi gula.
5. SPK Estimasi jumlah produksi gula telah diuji secara manual dan
menghasilkan nilai yang sama dengan sistem. Untuk kesesuaian dengan
data pengamatan, tahun 2001, 2006, 2007, dan 2008 telah memenuhi
sistem dengan hasil yang tidak jauh beda. Akan tetapi, pada tahun 2000,
2002, 2003, 2004, dan 2005 nilai data tidak sesuai aturan sistem.
96
5.2 Saran
Sistem ini dapat dikembangkan lagi dengan metode-metode inferensi
lainnya misalnya Metode Max-Min dan Metode Sugeno. Selain itu metode-
metode inferensi ini dapat digunakan untuk memecahkan permasalahan lain selain
estimasi jumlah produksi gula.
DAFTAR PUSTAKA
_____ , Buku Pedoman Agrowisata PT. Madu Baru, Yogyakarta : PT. Madu Baru
_____ , 2003, Seri Panduan Pemrograman : Pemrograman Borland Delphi 7, DivisiPenelitian dan Pengembangan MADCOMS, Yogyakarta : C.V. Andi Offset
Hermawanto D., 2008, Tutorial Pemrograman Fuzzy Logic,http://ilmukomputer.com/2008/02/19/tutorial-pemrograman-fuzzy-logic
Jogiyanto HM., 2005, Analisis dan Desain Sistem Informasi: Pendekatan Teori danPraktek Aplikasi Bisnis, Yogyakarta : CV. Andi Offset
Husni, 2004, Membuat Aplikasi Database Client-Server dengan Delphi dan MySQL,Yogyakarta : Graha Ilmu
Husni, 2004, Pemrograman Database dengan Delphi, Yogyakarta : Graha Ilmu
Kristanto A., 2004, Rekayasa Perangkat Lunak (Konsep Dasar), Yogyakarta :Penerbit Gava Media
Kadir A., 1999, Konsep dan Tuntunan Praktis Basis Data, Yogyakarta : CV. AndiOffset
Kadir A., 2002, Penuntun Praktis Belajar SQL, Yogyakarta : CV. Andi Offset
Kusrini, 2007, Konsep dan Aplikasi Sistem Pendukung Keputusan, Yogyakarta : CV.Andi Offset
Kusumadewi S., 2002, Analisis dan Desain Sistem Fuzzy Menggunakan Tool BoxMatlab, Yogyakarta: Graha Ilmu
Kusumadewi S., 2003, Artificial Intelligence (Teknik dan Aplikasinya),Yogyakarta:Graha Ilmu
Kusumadewi S. dan Purnomo H., 2004, Aplikasi Logika Fuzzy untuk PendukungKeputusan, Yogyakarta: Graha Ilmu
Kusumadewi S., 2008, Penentuan Tingkat Risiko Penyakit Menggunakan TsukamotoFuzzy Inference System, Jurnal Seminar Nasional II : The Application ofTechnology Toward A Better Life, http://cicie.files.wordpress.com/2008/06
Martina I., 2004, 36 Jam Belajar Komputer : Pemrograman Visual Borland Delphi 7,Yogyakarta : Elex Media Komputindo
Sasongko P.S., 2007, Sistem Inferensi Fuzzy,http://logikafuzzy.blogspot.com/2007/12/sistem-inferensi-fuzzy.html
Turban E., Aronson J.E., dkk, 2003, Decision Support Systems and IntelligentSystems (Sistem Pendukung Keputusan dan Sistem Cerdas), Yogyakarta: CV.Andi Offset
LAMPIRAN1
DAFTAR KONSULTASI
TUGAS AKHIR
TEKNIK INFORMATIKA
SEKOLAH TINGGI TEKNOLOGI ADISUTJIPTO
Nama Mahasiswa : Yoga Adiyasa
NIM : 04030033
Judul : Sistem Pendukung Keputusan Penentuan JumlahProduksi Gula dengan Logika Fuzzy (Studi Kasus di PT.Madu Baru Yogyakarta)
Dosen Pembimbing I : Anton Setiawan H., S.Kom, M.T.
No. Tanggal/ Bulan Keterangan Tanda Tangan
1.
2.
3.
4.
5.
6.
7.
8.
LAMPIRAN 2
Instalasi Program
Berikut langkah-langkah yang harus dilakukan untuk menjalankan aplikasi SPK
Estimasi Jumlah Produksi Gula dengan Logika Fuzzy.
1. Install MySQL database
2. Copy folder database >> madubaru dan paste di folder C:\\mysql >> data
3. Install SPK Fuzzy versi 1.0 dengan menjalankan setup.exe
NB. Semua software aplikasi berada di dalam CD Program Laporan.
1
Listing Program
unit UUtama;
interface
usesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ImgList, ComCtrls, ToolWin, ExtCtrls, Menus, jpeg, StdCtrls,XPMan;
typeTfrmUtama = class(TForm)MainMenu1: TMainMenu;File1: TMenuItem;Input1: TMenuItem;SPK1: TMenuItem;Lihat1: TMenuItem;DomainBatas1: TMenuItem;Bantuan1: TMenuItem;TentangProgram1: TMenuItem;Keluar1: TMenuItem;Panel1: TPanel;ToolBar1: TToolBar;ToolBtnBatas: TToolButton;ToolBtnSPK: TToolButton;ToolBtnAng: TToolButton;ImageListToolBar: TImageList;ToolBtnKeluar: TToolButton;DataAnggaran1: TMenuItem;Image1: TImage;Label1: TLabel;Timer1: TTimer;Label2: TLabel;XPManifest1: TXPManifest;procedure ToolBtnKeluarClick(Sender: TObject);procedure TentangProgram1Click(Sender: TObject);procedure Bantuan1Click(Sender: TObject);procedure Keluar1Click(Sender: TObject);procedure ToolBtnBatasClick(Sender: TObject);procedure ToolBtnSPKClick(Sender: TObject);procedure ToolBtnAngClick(Sender: TObject);procedure DomainBatas1Click(Sender: TObject);procedure SPK1Click(Sender: TObject);procedure DataAnggaran1Click(Sender: TObject);procedure Timer1Timer(Sender: TObject);
2
procedure FormShow(Sender: TObject);
private{ Private declarations }
public{ Public declarations }
end;
varfrmUtama: TfrmUtama;
implementationuses UAbout, UHelp, UBatas, UAnggaran, USPK;
{$R *.dfm}
procedure TfrmUtama.ToolBtnKeluarClick(Sender: TObject);beginApplication.Terminate;
end;
procedure TfrmUtama.TentangProgram1Click(Sender: TObject);beginfrmAbout.ShowModal;
end;
procedure TfrmUtama.Bantuan1Click(Sender: TObject);beginApplication.HelpContext(100);
end;
procedure TfrmUtama.Keluar1Click(Sender: TObject);beginApplication.Terminate;
end;
procedure TfrmUtama.ToolBtnBatasClick(Sender: TObject);beginfrmBatas.ShowModal;
end;
procedure TfrmUtama.ToolBtnSPKClick(Sender: TObject);beginfrmSPK.ShowModal;
end;
3
procedure TfrmUtama.ToolBtnAngClick(Sender: TObject);beginfrmAnggaran.ShowModal;
end;
procedure TfrmUtama.DomainBatas1Click(Sender: TObject);beginfrmBatas.ShowModal;
end;
procedure TfrmUtama.SPK1Click(Sender: TObject);beginfrmSPK.ShowModal;
end;
procedure TfrmUtama.DataAnggaran1Click(Sender: TObject);beginfrmAnggaran.ShowModal;
end;
procedure TfrmUtama.Timer1Timer(Sender: TObject);beginlabel1.Caption := DateToStr(Now);label2.Caption := TimeToStr(Now);
end;
procedure TfrmUtama.FormShow(Sender: TObject);beginAnimateWindow(Self.Handle,999,AW_HOR_POSITIVE or AW_ACTIVATE);
end;
end.
4
unit USPK;
interface
usesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, Buttons, StdCtrls, ExtCtrls,Math;
typeTfrmSPK = class(TForm)GroupBox1: TGroupBox;GroupBox2: TGroupBox;GroupBox3: TGroupBox;GroupBox4: TGroupBox;SpdBtnSPK: TSpeedButton;edt_x1: TEdit;BbDataLahan: TBitBtn;edt_x2: TEdit;edt_x3: TEdit;edt_x4: TEdit;BbDataRend: TBitBtn;BbDataBiaya: TBitBtn;Label1: TLabel;lblTahun: TLabel;BbDataTebu: TBitBtn;BbPrint: TBitBtn;BbSimpan: TBitBtn;BbClear: TBitBtn;BbClose: TBitBtn;Bevel1: TBevel;Bevel2: TBevel;Bevel3: TBevel;StaticText1: TStaticText;lblProd: TLabel;Label3: TLabel;Bevel4: TBevel;Bevel5: TBevel;Bevel6: TBevel;Bevel7: TBevel;BBDetail: TBitBtn;lblMinLahan: TLabel;lblMaxLahan: TLabel;Label5: TLabel;Label2: TLabel;Label4: TLabel;Label6: TLabel;
5
lblMinTebu: TLabel;Label8: TLabel;lblMaxTebu: TLabel;Label10: TLabel;Label11: TLabel;lblMinRend: TLabel;Label13: TLabel;lblMaxRend: TLabel;Label15: TLabel;Label16: TLabel;lblMinBiaya: TLabel;Label18: TLabel;lblMaxBiaya: TLabel;Label20: TLabel;procedure BbDataLahanClick(Sender: TObject);procedure BbDataTebuClick(Sender: TObject);procedure BbDataRendClick(Sender: TObject);procedure BbDataBiayaClick(Sender: TObject);procedure compute_membership ();procedure Apply_Rule ();procedure Run();procedure compute_output();procedure BbClearClick(Sender: TObject);procedure SpdBtnSPKClick(Sender: TObject);procedure BbPrintClick(Sender: TObject);procedure FormCreate(Sender: TObject);procedure BbSimpanClick(Sender: TObject);function Find_Min(a,b,c,d : real):real;procedure BBDetailClick(Sender: TObject);procedure FormShow(Sender: TObject);procedure edt_x1KeyPress(Sender: TObject; var Key: Char);procedure edt_x2KeyPress(Sender: TObject; var Key: Char);procedure edt_x3KeyPress(Sender: TObject; var Key: Char);procedure edt_x4KeyPress(Sender: TObject; var Key: Char);
private{ Private declarations }
public{ Public declarations }
end;
varfrmSPK: TfrmSPK;a,b,c,d,e : real;output_rule : array[1..19] of real;u_output : array[1..19] of real;
6
u_x1_segitiga, u_x1_bahu_kiri, u_x1_bahu_kanan:real;u_x2_segitiga, u_x2_bahu_kiri, u_x2_bahu_kanan:real;u_x3_segitiga, u_x3_bahu_kiri, u_x3_bahu_kanan:real;u_x4_segitiga, u_x4_bahu_kiri, u_x4_bahu_kanan:real;x,y:string;
implementation
uses UDataLahan1,UDataTebu1, UDataRend1, UDataBiaya1,UFuzzifikasi,UDefuzzifikasi,UModul, UCetak, UDetail;
{$R *.dfm}
//NB :{ x1=luas lahanx2=jumlah tebux3=rendemenx4=biaya produksix5=jumlah produksia,b,c =ambil dari tabel batas;
}
//---------------- Proses dieksekusi -----------------------------procedure TfrmSPK.SpdBtnSPKClick(Sender: TObject);var x1,x2,x3,x4,a,b,c,d : string;beginx1:=edt_x1.Text;x2:=edt_x2.Text;x3:=edt_x3.Text;x4:=edt_x4.Text;DataModul.TabelBatas.RecNo:=1;a:=DataModul.TabelBatasA.AsString;DataModul.TabelBatas.RecNo:=4;b:=DataModul.TabelBatasA.AsString;DataModul.TabelBatas.RecNo:=7;c:=DataModul.TabelBatasA.AsString;DataModul.TabelBatas.RecNo:=10;d:=DataModul.TabelBatasA.AsString;
if (x1 = '') or (x2 = '') or (x3 = '') or (x4 = '') then //semua kosongMessageDlg('Input harus diisi semuanya',mtWarning, [mbOk], 0)
else if (x1 = a) or (x2 < b) or (x3 < c) or (x4 < d) then //kurang dari batas minMessageDlg('Ada nilai yang kurang dari Batas Minimum', mtWarning,
[mbOk], 0)elseRun(); //perintah jika sesuai inputnya
7
end;
//-----Proses SPK ------procedure TfrmSPK.Run();begin
compute_membership(); //FuzzifikasiApply_Rule(); //Aplikasi fungsi implikasi --- Defuzzifikasicompute_output (); //Rata-Rata Terbobot
end;
//------ Fuzzifikasi ------procedure TfrmSPK.compute_membership ();var x1,x2,x3,x4: real;
beginwith DataModul dobegin
x1 := StrToFloat(edt_x1.Text);tabelbatas.First;u_x1_bahu_kiri:=bahu_kiri(x1,tabelbatas.Fieldbyname('B').AsFloat
,tabelbatas.Fieldbyname('C').AsFloat);frmDetail.Lahan1.Caption:=FloatToStr(RoundTo(u_x1_bahu_kiri,-3));tabelbatas.Next;u_x1_segitiga:=segitiga(x1,tabelbatas.Fieldbyname('A').AsFloat
,tabelbatas.Fieldbyname('B').AsFloat,tabelbatas.Fieldbyname('C').AsFloat);frmDetail.Lahan2.Caption:=FloatToStr(RoundTo(u_x1_segitiga,-3));tabelbatas.Next;u_x1_bahu_kanan:=bahu_kanan(x1,tabelbatas.Fieldbyname('A').AsFloat
,tabelbatas.Fieldbyname('B').AsFloat);frmDetail.Lahan3.Caption:=FloatToStr(RoundTo(u_x1_bahu_kanan,-3));tabelbatas.Next;
x2 := StrToFloat(edt_x2.Text);u_x2_bahu_kiri:=bahu_kiri(x2,tabelbatas.Fieldbyname('B').AsFloat
,tabelbatas.Fieldbyname('C').AsFloat);frmDetail.Tebu1.Caption:=FloatToStr(RoundTo(u_x2_bahu_kiri,-3));tabelbatas.Next;u_x2_segitiga:=segitiga(x2,tabelbatas.Fieldbyname('A').AsFloat
,tabelbatas.Fieldbyname('B').AsFloat,tabelbatas.Fieldbyname('C').AsFloat);frmDetail.Tebu2.Caption:=FloatToStr(RoundTo(u_x2_segitiga,-3));tabelbatas.Next;u_x2_bahu_kanan:=bahu_kanan(x2,tabelbatas.Fieldbyname('A').AsFloat
,tabelbatas.Fieldbyname('B').AsFloat);
8
frmDetail.Tebu3.Caption:=FloatToStr(RoundTo(u_x2_bahu_kanan,-3));tabelbatas.Next;
x3 := StrToFloat(edt_x3.Text);u_x3_bahu_kiri:=bahu_kiri(x3,tabelbatas.Fieldbyname('B').AsFloat
,tabelbatas.Fieldbyname('C').AsFloat);frmDetail.Rend1.Caption:=FloatToStr(RoundTo(u_x3_bahu_kiri,-3));tabelbatas.Next;u_x3_segitiga:=segitiga(x3,tabelbatas.Fieldbyname('A').AsFloat
,tabelbatas.Fieldbyname('B').AsFloat,tabelbatas.Fieldbyname('C').AsFloat);frmDetail.Rend2.Caption:=FloatToStr(RoundTo(u_x3_segitiga,-3));tabelbatas.Next;u_x3_bahu_kanan:=bahu_kanan(x3,tabelbatas.Fieldbyname('A').AsFloat
,tabelbatas.Fieldbyname('B').AsFloat);frmDetail.Rend3.Caption:=FloatToStr(RoundTo(u_x3_bahu_kanan,-3));tabelbatas.Next;
x4 := StrToFloat(edt_x4.Text);u_x4_bahu_kiri:=bahu_kiri(x4,tabelbatas.Fieldbyname('B').AsFloat
,tabelbatas.Fieldbyname('C').AsFloat);frmDetail.Biaya1.Caption:=FloatToStr(RoundTo(u_x4_bahu_kiri,-3));tabelbatas.Next;u_x4_segitiga:=segitiga(x4,tabelbatas.Fieldbyname('A').AsFloat
,tabelbatas.Fieldbyname('B').AsFloat,tabelbatas.Fieldbyname('C').AsFloat);frmDetail.Biaya2.Caption:=FloatToStr(RoundTo(u_x4_segitiga,-3));tabelbatas.Next;u_x4_bahu_kanan:=bahu_kanan(x4,tabelbatas.Fieldbyname('A').AsFloat
,tabelbatas.Fieldbyname('B').AsFloat);frmDetail.Biaya3.Caption:=FloatToStr(RoundTo(u_x4_bahu_kanan,-3));
end;
end;
// ------ Fungsi Implikasi Min & Defuzzifikasi ---------procedure TfrmSPK.Apply_Rule ();beginwith DataModul do begin
(* 1. IF luas lahan luas AND jumlah tebu banyak AND rendemen tinggiAND Biaya Produksi TinggiTHEN Jumlah Produksi tinggi *)TabelBatas.RecNo:=15;//Implikasi Minoutput_rule[1]:=Find_Min(u_x1_bahu_kanan, u_x2_bahu_kanan,
u_x3_bahu_kanan, u_x4_bahu_kanan);//Ambil Min
9
frmDetail.Min1.Caption:=FloatToStr(RoundTo(output_rule[1],-3));//Defuzzifikasi masing-masing Aturan
u_output[1]:=defz_bahu_kanan(TabelBatasA.AsFloat,TabelBatasB.AsFloat,output_rule[1]); //DefuzzifikasifrmDetail.Z1.Caption:=FloatToStr(Round(u_output[1]));
(* 2. IF luas lahan luas AND jumlah tebu banyak AND rendemen tinggiAND Biaya Produksi normalTHEN Jumlah Produksi tinggi *)
output_rule[2]:=Find_Min(u_x1_bahu_kanan, u_x2_bahu_kanan,u_x3_bahu_kanan, u_x4_segitiga);frmDetail.Min2.Caption:=FloatToStr(RoundTo(output_rule[2],-3));
u_output[2]:=defz_bahu_kanan(TabelBatasA.AsFloat,TabelBatasB.AsFloat,output_rule[2]);frmDetail.Z2.Caption:=FloatToStr(Round(u_output[2]));
(* 3. IF luas lahan luas AND jumlah tebu banyak AND rendemen sedangAND Biaya Produksi tinggiTHEN Jumlah Produksi tinggi *)
output_rule[3]:=Find_Min(u_x1_bahu_kanan, u_x2_bahu_kanan, u_x3_segitiga,u_x4_bahu_kanan);frmDetail.Min3.Caption:=FloatToStr(RoundTo(output_rule[3],-3));
u_output[3]:=defz_bahu_kanan(TabelBatasA.AsFloat,TabelBatasB.AsFloat,output_rule[3]);frmDetail.Z3.Caption:=FloatToStr(Round(u_output[3]));
(* 4. IF luas lahan luas AND jumlah tebu sedang AND rendemen sedangAND Biaya Produksi tinggiTHEN Jumlah Produksi tinggi *)
output_rule[4]:=Find_Min(u_x1_bahu_kanan, u_x2_segitiga, u_x3_segitiga,u_x4_bahu_kanan);frmDetail.Min4.Caption:=FloatToStr(RoundTo(output_rule[4],-3));
u_output[4]:=defz_bahu_kanan(TabelBatasA.AsFloat,TabelBatasB.AsFloat,output_rule[4]);frmDetail.Z4.Caption:=FloatToStr(Round(u_output[4]));
(* 5. IF luas lahan sedang AND jumlah tebu sedang AND rendemen sedangAND Biaya Produksi tinggi
10
THEN Jumlah Produksi tinggi *)output_rule[5]:=Find_Min(u_x1_segitiga, u_x2_segitiga, u_x3_segitiga,
u_x4_bahu_kanan);frmDetail.Min5.Caption:=FloatToStr(RoundTo(output_rule[5],-3));
u_output[5]:=defz_bahu_kanan(TabelBatasA.AsFloat,TabelBatasB.AsFloat,output_rule[5]);frmDetail.Z5.Caption:=FloatToStr(Round(u_output[5]));
(* 6. IF luas lahan luas AND jumlah tebu banyak AND rendemen sedangAND Biaya Produksi normalTHEN Jumlah Produksi tinggi *)
output_rule[6]:=Find_Min(u_x1_bahu_kanan, u_x2_bahu_kanan, u_x3_segitiga,u_x4_segitiga);frmDetail.Min6.Caption:=FloatToStr(RoundTo(output_rule[6],-3));
u_output[6]:=defz_bahu_kanan(TabelBatasA.AsFloat,TabelBatasB.AsFloat,output_rule[6]);frmDetail.Z6.Caption:=FloatToStr(Round(u_output[6]));
(* 7. IF luas lahan luas AND jumlah tebu sedang AND rendemen tinggiAND Biaya Produksi normalTHEN Jumlah Produksi tinggi *)
output_rule[7]:=Find_Min(u_x1_bahu_kanan, u_x2_segitiga, u_x3_bahu_kanan,u_x4_segitiga);frmDetail.Min7.Caption:=FloatToStr(RoundTo(output_rule[7],-3));
u_output[7]:=defz_bahu_kanan(TabelBatasA.AsFloat,TabelBatasB.AsFloat,output_rule[7]);frmDetail.Z7.Caption:=FloatToStr(Round(u_output[7]));
(* 8. IF luas lahan sedang AND jumlah tebu banyak AND rendemen sedangAND Biaya Produksi tinggiTHEN Jumlah Produksi tinggi *)
output_rule[8]:=Find_Min(u_x1_segitiga, u_x2_bahu_kanan, u_x3_segitiga,u_x4_bahu_kanan);frmDetail.Min8.Caption:=FloatToStr(RoundTo(output_rule[8],-3));
u_output[8]:=defz_bahu_kanan(TabelBatasA.AsFloat,TabelBatasB.AsFloat,output_rule[8]);frmDetail.Z8.Caption:=FloatToStr(Round(u_output[8]));
11
(* 9. IF luas lahan luas AND jumlah tebu sedang AND rendemen tinggiAND Biaya Produksi tinggiTHEN Jumlah Produksi tinggi *)
output_rule[9]:=Find_Min(u_x1_bahu_kanan, u_x2_segitiga, u_x3_bahu_kanan,u_x4_bahu_kanan);frmDetail.Min9.Caption:=FloatToStr(RoundTo(output_rule[9],-3));
u_output[9]:=defz_bahu_kanan(TabelBatasA.AsFloat,TabelBatasB.AsFloat,output_rule[9]);frmDetail.Z9.Caption:=FloatToStr(Round(u_output[9]));
(* 10. IF luas lahan sedang AND jumlah tebu banyak AND rendemen tinggiAND Biaya Produksi tinggiTHEN Jumlah Produksi tinggi *)
output_rule[10]:=Find_Min(u_x1_segitiga, u_x2_bahu_kanan,u_x3_bahu_kanan, u_x4_bahu_kanan);frmDetail.Min10.Caption:=FloatToStr(RoundTo(output_rule[10],-3));
u_output[10]:=defz_bahu_kanan(TabelBatasA.AsFloat,TabelBatasB.AsFloat,output_rule[10]);frmDetail.Z10.Caption:=FloatToStr(Round(u_output[10]));
TabelBatas.RecNo:=14;(* 11. IF luas lahan luas AND jumlah tebu sedang AND rendemen sedang
AND Biaya Produksi normalTHEN Jumlah Produksi normal *)
output_rule[11]:=Find_Min(u_x1_bahu_kanan, u_x2_segitiga, u_x3_segitiga,u_x4_segitiga);frmDetail.Min11.Caption:=FloatToStr(RoundTo(output_rule[11],-3));
u_output[11]:=defz_segitiga(TabelBatasB.AsFloat,TabelBatasC.AsFloat,output_rule[11]);frmDetail.Z11.Caption:=FloatToStr(Round(u_output[11]));
(* 12. IF luas lahan sedang AND jumlah tebu sedang AND rendemen sedangAND Biaya Produksi normalTHEN Jumlah Produksi normal *)
output_rule[12]:=Find_Min(u_x1_segitiga, u_x2_segitiga, u_x3_segitiga,u_x4_segitiga);frmDetail.Min12.Caption:=FloatToStr(RoundTo(output_rule[12],-3));
u_output[12]:=defz_segitiga(TabelBatasB.AsFloat,TabelBatasC.AsFloat,output_rule[12]);frmDetail.Z12.Caption:=FloatToStr(Round(u_output[12]));
12
TabelBatas.RecNo:=13;(* 13. IF luas lahan sempit AND jumlah tebu sedikit AND rendemen rendah
AND Biaya Produksi rendahTHEN Jumlah Produksi rendah *)
output_rule[13]:=Find_Min(u_x1_bahu_kiri, u_x2_bahu_kiri, u_x3_bahu_kiri,u_x4_bahu_kiri);frmDetail.Min13.Caption:=FloatToStr(RoundTo(output_rule[13],-3));
u_output[13]:=defz_bahu_kiri(TabelBatasA.AsFloat,TabelBatasB.AsFloat,output_rule[13]);frmDetail.Z13.Caption:=FloatToStr(Round(u_output[13]));
(* 14. IF luas lahan sedang AND jumlah tebu sedikit AND rendemen rendahAND Biaya Produksi normalTHEN Jumlah Produksi rendah *)
output_rule[14]:=Find_Min(u_x1_segitiga, u_x2_bahu_kiri, u_x3_bahu_kiri,u_x4_segitiga);frmDetail.Min14.Caption:=FloatToStr(RoundTo(output_rule[14],-3));
u_output[14]:=defz_bahu_kiri(TabelBatasA.AsFloat,TabelBatasB.AsFloat,output_rule[14]);frmDetail.Z14.Caption:=FloatToStr(Round(u_output[14]));
(* 15. IF luas lahan sedang AND jumlah tebu sedikit AND rendemen sedangAND Biaya Produksi normalTHEN Jumlah Produksi rendah *)
output_rule[15]:=Find_Min(u_x1_segitiga, u_x2_bahu_kiri, u_x3_segitiga,u_x4_segitiga);frmDetail.Min15.Caption:=FloatToStr(RoundTo(output_rule[15],-3));
u_output[15]:=defz_bahu_kiri(TabelBatasA.AsFloat,TabelBatasB.AsFloat,output_rule[15]);frmDetail.Z15.Caption:=FloatToStr(Round(u_output[15]));
(* 16. IF luas lahan sedang AND jumlah tebu sedikit AND rendemen tinggiAND Biaya Produksi normalTHEN Jumlah Produksi rendah *)
output_rule[16]:=Find_Min(u_x1_segitiga, u_x2_bahu_kiri, u_x3_bahu_kanan,u_x4_segitiga);frmDetail.Min16.Caption:=FloatToStr(RoundTo(output_rule[16],-3));
13
u_output[16]:=defz_bahu_kiri(TabelBatasA.AsFloat,TabelBatasB.AsFloat,output_rule[16]);frmDetail.Z16.Caption:=FloatToStr(Round(u_output[16]));
(* 17. IF luas lahan sempit AND jumlah tebu sedikit AND rendemen rendahAND Biaya Produksi normalTHEN Jumlah Produksi rendah *)
output_rule[17]:=Find_Min(u_x1_bahu_kiri, u_x2_bahu_kiri, u_x3_bahu_kiri,u_x4_segitiga);frmDetail.Min17.Caption:=FloatToStr(RoundTo(output_rule[17],-3));
u_output[17]:=defz_bahu_kiri(TabelBatasA.AsFloat,TabelBatasB.AsFloat,output_rule[17]);frmDetail.Z17.Caption:=FloatToStr(Round(u_output[17]));
(* 18. IF luas lahan sempit AND jumlah tebu sedikit AND rendemen sedangAND Biaya Produksi normalTHEN Jumlah Produksi rendah *)
output_rule[18]:=Find_Min(u_x1_bahu_kiri, u_x2_bahu_kiri, u_x3_segitiga,u_x4_segitiga);frmDetail.Min18.Caption:=FloatToStr(RoundTo(output_rule[18],-3));
u_output[18]:=defz_bahu_kiri(TabelBatasA.AsFloat,TabelBatasB.AsFloat,output_rule[18]);frmDetail.Z18.Caption:=FloatToStr(Round(u_output[18]));
(* 19. IF luas lahan sempit AND jumlah tebu sedikit AND rendemen tinggiAND Biaya Produksi normalTHEN Jumlah Produksi rendah *)
output_rule[19]:=Find_Min(u_x1_bahu_kiri, u_x2_bahu_kiri,u_x3_bahu_kanan, u_x4_segitiga);frmDetail.Min19.Caption:=FloatToStr(RoundTo(output_rule[19],-3));
u_output[19]:=defz_bahu_kiri(TabelBatasA.AsFloat,TabelBatasB.AsFloat,output_rule[19]);frmDetail.Z19.Caption:=FloatToStr(Round(u_output[19]));
end;end;
//--------- Fungsi Min ---------function TFrmSPK.Find_Min(a,b,c,d:real):real;
14
var x:real;beginx := a;if x > b thenx := b;
if x > c thenx := c;
if x > d thenx := d;
//menyimpan nilaiFind_Min:= x;end;
//----- Rata-Rata Terbobot -----procedure TfrmSPK.compute_output ();var i: integer;
z,temp1,temp2: real;
beginfor i:=1 to 19 dobegintemp1 := temp1 + output_rule[i] * u_output[i];temp2 := temp2 + output_rule[i];
end;
if (temp1=0) OR (temp2=0) thenbeginMessageDlg('Tidak sesuai aturan', mtWarning, [mbOk], 0);
endelsez:=temp1/temp2;//menampilkan jumlah produksi//lblProd.Caption:= FloatToStr(RoundTo(z,-3));x:= FormatFloat('#,##0.000',z);lblProd.Caption:= x;frmDetail.jumlah.Caption:=x;y:= FloatToStr(z);
end;//-------------------- Akhir Proses SPK Fuzzy --------------------------
//------------- Show data anggaran tiap-tiap variabel ---------------procedure TfrmSPK.BbDataLahanClick(Sender: TObject);beginfrmDataLahan1.ShowModal;
end;
15
procedure TfrmSPK.BbDataTebuClick(Sender: TObject);beginfrmDataTebu1.ShowModal;
end;
procedure TfrmSPK.BbDataRendClick(Sender: TObject);beginfrmDataRend1.ShowModal;
end;
procedure TfrmSPK.BbDataBiayaClick(Sender: TObject);beginfrmDataBiaya1.ShowModal;
end;
// ----- Hapus nilai -----procedure TfrmSPK.BbClearClick(Sender: TObject);beginedt_x1.Clear;edt_x2.Clear;edt_x3.Clear;edt_x4.Clear;lblProd.Caption:='';edt_x1.SetFocus;
end;
//------------------- Cetak Data ----------------------------procedure TfrmSPK.BbPrintClick(Sender: TObject);begin//frmCetak.ShowModal;DataModul.RVProject1.Execute; //cetak anggaran prod. dari SPK
end;
//------------ Memunculkan tahun --------------------procedure TfrmSPK.FormCreate(Sender: TObject);var sekarang :TDateTime;Year,Month,Day:word;beginSekarang:=Now;DecodeDate(Sekarang,Year,Month,Day);lblTahun.Caption:=intToStr(Year); //ambil tahunnya saja
end;
16
// --- proses menyimpan ---procedure TfrmSPK.BbSimpanClick(Sender: TObject);var x1,x2,x3,x4 : string;beginx1:=edt_x1.Text;x2:=edt_x2.Text;x3:=edt_x3.Text;x4:=edt_x4.Text;with DataModul dobegin//cek validasiif (x1 = '') or (x2 = '') or (x3 = '') or (x4 = '') thenMessageDlg('Input harus diisi semuanya',mtWarning, [mbOk], 0)
elseif TabelAnggaran.FindKey([lblTahun.Caption]) thenMessageDlg('Data dengan tahun tersebut sudah ada',mtWarning, [mbOk], 0) //
jika tahun sama di-saveelsebegin //Konfirmasi simpanif MessageDlg('Anda mau menyimpan data ini
?',mtConfirmation,[mbYes,MbNo],0)=mrYes thenbeginTabelAnggaran.Append;TabelAnggaran.FieldByName('tahun').AsString:=lblTahun.Caption;TabelAnggaran.FieldByName('luas_lahan').AsString:=edt_x1.Text;TabelAnggaran.FieldByName('jum_tebu').AsString:=edt_x2.Text;TabelAnggaran.FieldByName('rendemen').AsString:=edt_x3.Text;TabelAnggaran.FieldByName('biaya_prod').AsString:=edt_x4.Text;TabelAnggaran.FieldByName('jum_prod').AsString:=y;TabelAnggaran.Post;MessageDlg('Data sudah tersimpan',mtInformation,[mbOK],0);
endelse //Jika membatalkan penyimpananMessageDlg('Silahkan simulasikan SPK Fuzzy lagi',mtInformation, [mbOk],
0)end;end;
end;
//--------------- Detail Rumus Logika Fuzzy -------------------procedure TfrmSPK.BBDetailClick(Sender: TObject);beginfrmDetail.ShowModal;
end;
17
//--------------- Jika form SPK muncul ----------------------procedure TfrmSPK.FormShow(Sender: TObject);beginedt_x1.SetFocus;edt_x1.Clear;edt_x2.Clear;edt_x3.Clear;edt_x4.Clear;lblProd.Caption:='';//Ambil nilai dari tabel batasDataModul.TabelBatas.RecNo:=1;lblMinLahan.Caption:= DataModul.TabelBatasA.AsString;DataModul.TabelBatas.RecNo:=3;lblMaxLahan.Caption:= DataModul.TabelBatasB.AsString;DataModul.TabelBatas.RecNo:=4;lblMinTebu.Caption:= DataModul.TabelBatasA.AsString;DataModul.TabelBatas.RecNo:=6;lblMaxTebu.Caption:= DataModul.TabelBatasB.AsString;DataModul.TabelBatas.RecNo:=7;lblMinRend.Caption:= DataModul.TabelBatasA.AsString;DataModul.TabelBatas.RecNo:=9;lblMaxRend.Caption:= DataModul.TabelBatasB.AsString;DataModul.TabelBatas.RecNo:=10;lblMinBiaya.Caption:= DataModul.TabelBatasA.AsString;DataModul.TabelBatas.RecNo:=12;lblMaxBiaya.Caption:= DataModul.TabelBatasB.AsString;
end;
//---------- Validasi inputan harus berupa numerik --------------procedure TfrmSPK.edt_x1KeyPress(Sender: TObject; var Key: Char);beginif (key = chr(vk_return)) or (key = chr(vk_delete))
or (key = chr(vk_back)) then exit;
if (key < chr(48)) or (key > chr(57)) thenkey := chr(13);
end;
procedure TfrmSPK.edt_x2KeyPress(Sender: TObject; var Key: Char);beginif (key = chr(vk_return)) or (key = chr(vk_delete))
or (key = chr(vk_back)) then exit;
if (key < chr(48)) or (key > chr(57)) then
18
key := chr(13);end;
procedure TfrmSPK.edt_x3KeyPress(Sender: TObject; var Key: Char);beginif (key = chr(vk_return)) or (key = chr(vk_delete))
or (key = chr(vk_back)) then exit;
if (key < chr(48)) or (key > chr(57)) thenkey := chr(13);
end;
procedure TfrmSPK.edt_x4KeyPress(Sender: TObject; var Key: Char);beginif (key = chr(vk_return)) or (key = chr(vk_delete))
or (key = chr(vk_back)) then exit;
if (key < chr(48)) or (key > chr(57)) thenkey := chr(13);
end;end.
19
unit UFuzzifikasi;
interfacefunction bahu_kiri(x,a,b:real):real;function segitiga (x,a,b,c : real):real;function bahu_kanan (x,a,b:real):real;
implementation
function bahu_kiri(x,a,b:real):real;beginif(x<=a) thenbahu_kiri:=1else if (x>a) and (x<b) thenbahu_kiri:= (b-x)/(b-a)elsebahu_kiri:=0;
end;
function segitiga (x,a,b,c : real):real;beginif (x<=a) or (x>=c) thensegitiga:=0else if (x>a) and (x<b) thensegitiga:=(x-a)/(b-a)else if x=b thensegitiga:=1elsesegitiga:=(c-x)/(c-b);
end;
function bahu_kanan (x,a,b:real):real;beginif(x<=a) thenbahu_kanan:=0else if (x>a) and (x<b) thenbahu_kanan:=(x-a)/(b-a)elsebahu_kanan:=1;
end;
end.
20
unit UDefuzzifikasi;
interfacefunction defz_bahu_kiri(a,b,c:real):real;function defz_segitiga(a,b,c:real):real;function defz_bahu_kanan(a,b,c:real):real;
implementation
function defz_bahu_kiri(a,b,c:real):real;begindefz_bahu_kiri:= b-(c*(b-a));
end;
function defz_segitiga(a,b,c:real):real;begindefz_segitiga:= b-c*(b-a);
end;
function defz_bahu_kanan(a,b,c:real):real;begindefz_bahu_kanan:= c*(b-a)+a;
end;end.