Anda di halaman 1dari 140

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 Ketua Jurusan


Adisutjipto Yogyakarta Teknik Informatika

Ir. Suyitmadi, M.T. 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
HALAMAN MOTTO

Just Do It…

Do The Best Think The Worst…

Lakukan segala sesuatu dengan niat dan ikhlas...

iv
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!

v
 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<<

vi
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.

vii
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

viii
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

ix
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

x
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

xi
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

xii
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

xiii
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

xiv
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

xv
Intisari

Sistem Pendukung Keputusan atau SPK merupakan suatu sistem yang


membantu manajer dalam menyelesaikan permasalahan yang semi
terstruktur. Banyak teknik yang dipakai untuk membuat SPK, salah satunya
dengan Logika Fuzzy. Logika Fuzzy merupakan salah satu teknik penyelesaian
masalah yang berbasiskan perasaan. Dimana derajat keanggotaan yang
biasanya direpresentasikan dengan nilai 0 dan 1, dengan Logika Fuzzy ini
derajat keanggotaannya dapat direpresentasikan dengan nilai antara 0 dan 1
sehingga dapat lebih seimbang. PT. Madu Baru Yogyakarta merupakan
sebuah perusahaan yang bergerak di bidang industri yang salah satu usahanya
adalah memproduksi gula pasir. Sebelum melakukan produksi, terlebih
dahulu 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 biaya
produksi. Biasanya PT. Madu Baru sebelum melakukan produksi
mengadakan rapat intern terlebih dahulu. Maka dari itu, untuk lebih
membantu dalam membuat keputusan jumlah produksi gula tersebut perlu
dibuat SPK. SPK tersebut akan menggunakan teknik logika fuzzy Metode
Inferensi Tsukamoto yang menerapkan rata-rata terbobot untuk menghitung
jumlah produksi gula sebagai hasil akhirnya. Diharapkan SPK ini dapat
dijadikan alternatif dalam mengestimasi jumlah produksi gula di PT. Madu
Baru Yogyakarta nantinya.

Kata Kunci : SPK, Logika Fuzzy, Metode Inferensi Tsukamoto

xvi
Abstract

Decision Support System or DSS is a system that help a manager in finishing


the semi structure problem. A lot of technique are proved to make the DSS, one of them
is used the Fuzzy Logic. Fuzzy Logic is one of technique for solving problem which has
bases the feeling, where membership degree which is usually assessed with the value 0
and 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 is
produce the sand sugar. Before doing production, It has to determine the sugar amount
which must be produced in its year. So, have to pay attention the factors having an
effect on. The factors for example wide of farm, sum up the sugar cane, sugar rate, and
also production cost. PT. Madu Baru have an intern meeting to make decision about
production. Hence from that, to assist in make decision the amount produce of sugar is
created a DSS. The DSS will use the technique of fuzzy logic that is Tsukamoto
Inference Method that applying weight average to count the sugar production as final
report. Expected this DSS can be alternative in estimating amount of sugar production
in PT. Madu Baru Yogyakarta later.

Keywords : DSS, Fuzzy Logic, Tsukamoto Inference Method

xvii
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-

1
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.
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

5
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.

Sistem lainnya Internet,


yang berbasis Intraner,
komputer ekstranet
Data : eksternal
dan internal

Manajemen Manajemen Model


Data model eksternal

Subsistem berbasis
pengetahuan

Antarmuka
pengguna

Basis pengetahuan Manajer


organisasional (pengguna)

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
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

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.

DINGIN SEJUK NORMAL HANGAT PANAS


1

µ[x]

0
15 20 25 30 35 40
Gambar 2.2 Himpunan Fuzzy pada variabel temperatur

c. Semesta Pembicaraan
Semesta pembicaraan adalah keseluruhan nilai yang diperbolehkan umtuk
dioperasikan dalam suatu variabel fuzzy. Semesta pembicaraan merupakan
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

terkecil [0] di sisi kiri ke arah kanan menuju nilai domain yang memiliki derajat
keanggotaan yang lebih tinggi.

µ[x]

0
a domain b

Gambar 2.3 Representasi Linear Naik

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.

µ[x]

0
a domain b

Gambar 2.4 Representasi Linear Turun

b. Representasi Kurva Segitiga


Kurva segitiga pada dasarnya gabungan antara 2 garis (linear) seperti terlihat pada
gambar berikut :
15

µ[x]

0
a b c

Gambar 2.5 Kurva Segitiga

c. Representasi Kurva Trapesium


Kurva trapezium pada dasarnya seperti bentuk segitiga, hanya saja ada beberapa
titik yang memiliki keanggotaan 1.

µ[x]

0
a b c d

Gambar 2.6 Kurva Trapesium

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.
16

Bahu Kiri Bahu Kanan


1

µ[x]

0
a b c d e f

Gambar 2.7 Kurva Bentuk Bahu

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.

µ[x]

0
a b

Gambar 2.8 Kurva-S : PERTUMBUHAN

Kurva-S PENYUSUTAN akan bergerak dari sisi paling kanan (nilai keanggotaan=1)
ke sisi paling kiri (nilai keanggotaan=0).
17

µ[x]

0
a
b

Gambar 2.9 Kurva-S : PENYUSUTAN

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.

µ[x]

0
a b c

Gambar 2.10 Kurva-Bentuk Lonceng

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] )
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
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

29
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


Jumlah Tebu
Luas Lahan Rendemen Biaya Produksi Jumlah
No. Tahun Digiling
(Ha) (%) (Ribuan Rp.) Produksi (Ku)
(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

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)

µ[X]
SEMPIT SEDANG LUAS
1

0
4080 4295 4500 5000 5500 6000 Luas Lahan (Ha)

Gambar 3.1 Luas Lahan


Fungsi Keanggotaan :

1 4080≤x ≤4295

(5000-x) / (5000-4295) , 4295 < x < 5000


µlahan SEMPIT
0 x ≥5000

0 x ≤4500 dan x ≥5500

(x-4500) / (5000-4500) , 4500 < x < 5000


µlahan SEDANG
(5500-x) / (5500-5000) , 5000 < x < 5500

1 x = 5000

0 x ≤5000

µlahan LUAS (x-5000) / (6000-5000) ,


5000 < x < 6000

1 x ≥6000
33

2. Jumlah Tebu; terdiri atas 3 himpunan fuzzy, yaitu : SEDIKIT, SEDANG dan
BANYAK (Gambar 3.2 Jumlah Tebu)

µ[X]
SEDIKIT SEDANG BANYAK
1

0
3000 3164 4353 4582 4811 6000 Jumlah Tebu
(Ribuan Ku)
Gambar 3.2 Jumlah Tebu
Fungsi Keanggotaan :

1 3000 ≤x ≤3164

µjTebu SEDIKIT (4582-x) / (4582-3164) , 3164 < x < 4582

0 x ≥4582

0 x ≤4353 dan x ≥4811

(x-4353) / (4582-4353) , 4353 < x < 4582


µjTebu SEDANG
(4811-x) / (4811-4582) , 4582 < x < 4811

1 x = 4582

0 x ≤4582

µjTebu BANYAK (x-4582) / (6000-4582) ,


4582 < x < 6000

1 x ≥6000
34

3. Rendemen; terdiri atas 3 himpunan fuzzy, yaitu : RENDAH, SEDANG dan


TINGGI (Gambar 3.3 Rendemen)

µ[X]
RENDAH SEDANG TINGGI
1

0
5 6.10 6.11 6.432 6.75 8 Rendemen (%)

Gambar 3.3 Rendemen


Fungsi Keanggotaan :

1 5 ≤x ≤6.10

µrendemen RENDAH 6.432-x) / (6.432-6.10) , 6.10 < x < 6.432

0 x ≥6.432

0 x ≤6.11 dan x ≥6.75

µrendemen SEDANG (x-6.11) / (6.432-6.11) , 6.11 < x < 6.432

(6.75-x) / (6.75-6.432, 6.432< x < 6.75

1 x = 6.432

0 x ≤6.432

µrendemen TINGGI
(x-6.432) / (8-6.432) , 6,432 ≤x ≤8

1 x ≥8
35

4. Biaya Produksi; terdiri atas 3 himpunan fuzzy, yaitu : RENDAH, NORMAL dan
TINGGI (Gambar 3.4 Biaya Produksi)

µ[X]
RENDAH NORMAL TINGGI
1

0
22000 27000 39045 41100 43155 65000
Biaya Produksi
(Jutaan Rp.)
Gambar 3.4 Biaya Produksi
Fungsi Keanggotaan :

1 22000 ≤x ≤27000

(41100-x) / (41100-27000) , 27000 < x < 41100


µBiayaProd RENDAH
0 x ≥41100

0 x ≤39045 dan x ≥43155

µBiayaProd NORMAL (x-39045) / (41100-39045) , 39045 < x < 41100

(43155-x) / (43155-41100) , 41100< x < 43155

1 x = 41100

0 x ≤41100

µBiayaProd TINGGI
(x-41100) / (65000-41100) , 41100 < x < 65000

1 x ≥ 65000
36

Untuk keluarannya, dibentuk himpunan fuzzy yaitu :


1. Jumlah Produksi; terdiri atas 3 himpunan fuzzy, yaitu : RENDAH, NORMAL dan
TINGGI (Gambar 3.5 Jumlah Produksi)

µ[X]
RENDAH NORMAL TINGGI
1

0
197736 321925 338868 355811 480000 Jumlah Produksi (Ku)

Gambar 3.5 Jumlah Produksi


Fungsi Keanggotaan :

1 x ≤197736

µjProd RENDAH (338868-x) / (338868-197736) , 197736< x < 338868

0 x ≥338868

0 x ≤321925 dan x ≥355811

µjProd NORMAL (x-321925) / (338868-321925) , 321925 < x < 338868

(355811-x) / (355811-338868) , 338868 < x < 355811

1 x = 338868

0 x ≤338868

µjProd TINGGI (x-338868) / (480000-338868) , 338868 < x < 480000

1 x ≥480000
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 X 1 tersebut berada di himpunan sempit, sedang atau luas. X 1
dapat menempati di dua tempat himpunan misalnya sedang dan luas atau bahkan satu
himpunan saja.
Fungsi Keanggotaan Bawah :

1 a ≤x ≤b

µBAWAH[X 1] (c-x1) / (c-b) , b<x<c

0 x ≥c

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 :

4080≤x ≤5000
1

µlahan SEMPIT (5000-x) / (5000-4295) , 4295 < x < 5000

0 x ≥5000

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.
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

Di dalam aturan pertama didapat sebuah pernyataan THEN yaitu Jumlah Produksi
bertambah. Sehingga didapat sebuah rumusan Defuzzifikasi aturan pertama sebagai
berikut :

Z1= α-predikat 1 *(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 :

α1 z1 + α2 z2 +….. + αn zn
Z=
α1 + α2+….. +αn

Keterangan :
Z = Jumlah Produksi Gula
αn = Derajat Keanggotaan dari Aturan ke- n

zn = Jumlah Produksi dari Aturan ke- n


43

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

Data Batas
Himp. Fuzzy dan
input nilai variabel 0
Fuzzy SPK Estimasi
Jumlah
User Produksi Gula

Data Batas Himp. Fuzzy


Data keputusan jumlah
produksi

Database
Madubaru

Gambar 3.6 Diagram Konteks


44

3.4.1.3 DAD Level 0

Update
batas himp. 1P
Fuzzy
User Update Batas D1 batas
Himpunan
Fuzzy

Input nilai variabel


Fuzzy ( luas lahan, jum.
tebu, rendemen, biaya 2P
prod.)
Input nilai D2 anggaran
variabel fuzzy

Proses jumlah
produksi gula

Output jumlah 3
produksi gula
Jumlah
Produksi Gula

Lihat data batas,


dan anggaran 4P
produksi
Lihat Data
yang ada pada
SPK

Gambar 3.7 Diagram Alir Data (DAD) Level 0


45

3.4.1.4 DAD Level 1

Proses
Simpan 3.1P
keputusan
User Simpan
Keputusan
DSS D2 anggaran

3.2P
Print hasil
keputusan Print
Keputusan
DSS

Gambar 3.8 Diagram Alir Data (DAD) Level 1


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.

Mulai

Masukan dari user,


Luas lahan
Jumlah tebu
Rendemen
Biaya produksi

Fuzzifikasi Implikasi Defuzzifikasi

Jumlah produksi
gula

Selesai

Gambar 3.9 FlowChart SPK Jumlah Produksi Gula dengan Logika Fuzzy
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 Arti
id Varchar 30 Nomor Batas
variabel Varchar 30 Nama Variabel
himpunan Varchar 30 Nama Himpunan
satuan Varchar 30 Satuan Variabel
A Varchar 30 Domain Batas
B Varchar 30 Domain Batas
C Varchar 30 Domain Batas

Tabel 3.3 Kamus Data Anggaran

FILE ANGGARAN.DBF
Nama Field Tipe Lebar Arti
tahun Varchar 5 Tahun
luas_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.

Judul Program

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.
49

File Bantuan Tentang Keluar

Input Domain Batas


SPK
Lihat Data Anggaran

Domain SPK Anggaran Keluar


Batas Produksi

Tanggal
Gambar Perusahaan
Jam

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.
50

Luas Lahan Biaya Produksi

Jumlah Tebu Jumlah


Produksi

Rendemen Keluar

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.
51

Luas Lahan

Bawah Atas
Proses
Rata-rata

Luas Lahan
Sempit Sedang Luas

Bawah a Tengah a Atas a

Tengah b Atas b
Bawah b
Tengah c

Edit Simpan Batal Keluar

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
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.

Jumlah Tebu

Bawah Atas
Proses
Rata-rata

Jumlah Tebu

Sedikit Sedang Banyak


s
Bawah a Tengah a Atas a

Tengah b Atas b
Bawah b
Tengah c

Edit Simpan Batal Keluar

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
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.

Rendemen

Bawah Atas
Proses
Rata-rata

Rendemen
Rendah Sedang Tinggi

Bawah a Tengah a Atas a

Tengah b Atas b
Bawah b
Tengah c

Edit Simpan Batal Keluar

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
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.

Biaya Prod.

Bawah Atas
Proses
Rata-rata

Biaya Prod.
Rendah Normal Tinggi

Bawah a Tengah a Atas a

Tengah b Atas b
Bawah b
Tengah c

Edit Simpan Batal Keluar

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
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.

Jumlah Prod.

Bawah Atas
Proses
Rata-rata

Jumlah Prod.

Rendah Normal Tinggi

Bawah a Tengah a Atas a

Tengah b Atas b
Bawah b
Tengah c

Edit Simpan Batal Keluar

Gambar 3.17 Rancangan Input Batas Jumlah Produksi


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.

Tahun

Luas Lahan Jumlah Tebu

Proses SPK
Fuzzy
Data Data

Rendemen Biaya Prod.


Simpan Hapus

Cetak Keluar
Data Data Detail

Jumlah Produksi Gula yang disarankan menurut Logika Fuzzy :

Gambar 3.18 Rancangan Proses SPK


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

Data Variabel Fuzzy

Tahun Variabel Fuzzy

INFO

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.
58

Anggaran Produksi Gula per Tahun

Tahun Lahan Tebu Rendemen Biaya Jum. Prod.

Keluar

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.

Logo Anggaran Produksi Gula


Perusahaan PT. Madu Baru Yogyakarta

Tahun Lahan Tebu Rendemen Biaya Jum. Prod.

Gambar 3.21 Rancangan Cetak Anggaran Produksi per Tahun


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.

Nilai Inputan Defuzzifikasi

Fuzzifikasi

Fungsi Implikasi

Gambar 3.22 Rancangan Detail SPK


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.

60
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 :

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

Gambar 4.10 Unit Fuzzifikasi


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 :

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;

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 :

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;

Gambar 4.12 Fungsi Fuzzifikasi Segitiga


70

3. Fungsi Fuzzifikasi Bahu Kanan, yang merupakan representasi dari Fuzzifikasi


Batas Atas. Gambar 4.13 berikut merupakan Fungsi Fuzzifikasi Bahu Kanan :

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.

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 :
71

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;

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:

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

Gambar 4.15 Unit Defuzzifikasi


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 :
function defz_bahu_kiri(a,b,c:real):real;

begin

defz_bahu_kiri:= b-(c*(b-a));

end;

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 :

function defz_segitiga(a,b,c:real):real;

begin

defz_segitiga:= b-c*(b-a);

end;

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 :

function defz_bahu_kanan(a,b,c:real):real;

begin

defz_bahu_kanan:= c*(b-a)+a;

end;

end.

Gambar 4.18 Fungsi Defuzzifikasi Bahu Kanan


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 :

(* 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

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 :
74

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;

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 :
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 = (5535-5000) / (6000-5000)

= 535 / 1000

= 0.535

b. Jumlah Tebu :

1. Sedikit =0

2. Sedang =0

3. Banyak = (5640-4582) / (6000-4582)

= 1058 / 1418

= 0.746

c. Rendemen :
83

1. Rendah =0

2. Sedang =0

3. Tinggi = (7.18-6.432) / (8-6.432)

= 0.748/ 1.568

= 0.4770408

d. Biaya Produksi :

1. Rendah =0

2. Normal =0

3. Tinggi = (58000-41100) / (65000-41100)

= 16900 / 23900

= 0.707

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
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).

(0.4770408*406193.72) + 0
Z=
0.4770408 + 0

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 :
94

Tabel 4.1 Data Perbandingan

Jumlah Jumlah
Luas Tebu Rende Biaya Produksi
Hasil Jumlah Produksi
No. Tahun Lahan Digiling men Produksi (Ku)
dalam SPK
(Ha) (%) (Ribuan Rp.)
(Ku)

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.
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.
95
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, Divisi


Penelitian 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 dan
Praktek 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. Andi
Offset

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 Box
Matlab, Yogyakarta: Graha Ilmu

Kusumadewi S., 2003, Artificial Intelligence (Teknik dan Aplikasinya),Yogyakarta:


Graha Ilmu

Kusumadewi S. dan Purnomo H., 2004, Aplikasi Logika Fuzzy untuk Pendukung
Keputusan, Yogyakarta: Graha Ilmu

Kusumadewi S., 2008, Penentuan Tingkat Risiko Penyakit Menggunakan Tsukamoto


Fuzzy Inference System, Jurnal Seminar Nasional II : The Application of
Technology 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 Intelligent
Systems (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 Jumlah


Produksi 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

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, ComCtrls, ToolWin, ExtCtrls, Menus, jpeg, StdCtrls,
XPMan;

type
TfrmUtama = 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;

var
frmUtama: TfrmUtama;

implementation
uses UAbout, UHelp, UBatas, UAnggaran, USPK;

{$R *.dfm}

procedure TfrmUtama.ToolBtnKeluarClick(Sender: TObject);


begin
Application.Terminate;
end;

procedure TfrmUtama.TentangProgram1Click(Sender: TObject);


begin
frmAbout.ShowModal;
end;

procedure TfrmUtama.Bantuan1Click(Sender: TObject);


begin
Application.HelpContext(100);
end;

procedure TfrmUtama.Keluar1Click(Sender: TObject);


begin
Application.Terminate;
end;

procedure TfrmUtama.ToolBtnBatasClick(Sender: TObject);


begin
frmBatas.ShowModal;
end;

procedure TfrmUtama.ToolBtnSPKClick(Sender: TObject);


begin
frmSPK.ShowModal;
end;
3

procedure TfrmUtama.ToolBtnAngClick(Sender: TObject);


begin
frmAnggaran.ShowModal;
end;

procedure TfrmUtama.DomainBatas1Click(Sender: TObject);


begin
frmBatas.ShowModal;
end;

procedure TfrmUtama.SPK1Click(Sender: TObject);


begin
frmSPK.ShowModal;
end;

procedure TfrmUtama.DataAnggaran1Click(Sender: TObject);


begin
frmAnggaran.ShowModal;
end;

procedure TfrmUtama.Timer1Timer(Sender: TObject);


begin
label1.Caption := DateToStr(Now);
label2.Caption := TimeToStr(Now);
end;

procedure TfrmUtama.FormShow(Sender: TObject);


begin
AnimateWindow(Self.Handle,999,AW_HOR_POSITIVE or AW_ACTIVATE);
end;

end.
4

unit USPK;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls, ExtCtrls,Math;

type
TfrmSPK = 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;

var
frmSPK: 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 lahan
x2=jumlah tebu
x3=rendemen
x4=biaya produksi
x5=jumlah produksi
a,b,c =ambil dari tabel batas;
}

//---------------- Proses dieksekusi -----------------------------


procedure TfrmSPK.SpdBtnSPKClick(Sender: TObject);
var x1,x2,x3,x4,a,b,c,d : string;
begin
x1:=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 kosong
MessageDlg('Input harus diisi semuanya',mtWarning, [mbOk], 0)
else if (x1 = a) or (x2 < b) or (x3 < c) or (x4 < d) then //kurang dari batas min
MessageDlg('Ada nilai yang kurang dari Batas Minimum', mtWarning,
[mbOk], 0)
else
Run(); //perintah jika sesuai inputnya
7

end;

//-----Proses SPK ------


procedure TfrmSPK.Run();
begin

compute_membership(); //Fuzzifikasi
Apply_Rule(); //Aplikasi fungsi implikasi --- Defuzzifikasi
compute_output (); //Rata-Rata Terbobot

end;

//------ Fuzzifikasi ------


procedure TfrmSPK.compute_membership ();
var x1,x2,x3,x4: real;

begin
with DataModul do
begin
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 ();
begin
with DataModul do begin

(* 1. IF luas lahan luas AND jumlah tebu banyak AND rendemen tinggi
AND Biaya Produksi Tinggi
THEN Jumlah Produksi tinggi *)
TabelBatas.RecNo:=15;
//Implikasi Min
output_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,outpu
t_rule[1]); //Defuzzifikasi
frmDetail.Z1.Caption:=FloatToStr(Round(u_output[1]));

(* 2. IF luas lahan luas AND jumlah tebu banyak AND rendemen tinggi
AND Biaya Produksi normal
THEN 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,outpu
t_rule[2]);
frmDetail.Z2.Caption:=FloatToStr(Round(u_output[2]));

(* 3. IF luas lahan luas AND jumlah tebu banyak AND rendemen sedang
AND Biaya Produksi tinggi
THEN 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,outpu
t_rule[3]);
frmDetail.Z3.Caption:=FloatToStr(Round(u_output[3]));

(* 4. IF luas lahan luas AND jumlah tebu sedang AND rendemen sedang
AND Biaya Produksi tinggi
THEN 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,outpu
t_rule[4]);
frmDetail.Z4.Caption:=FloatToStr(Round(u_output[4]));

(* 5. IF luas lahan sedang AND jumlah tebu sedang AND rendemen sedang
AND 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,outpu
t_rule[5]);
frmDetail.Z5.Caption:=FloatToStr(Round(u_output[5]));

(* 6. IF luas lahan luas AND jumlah tebu banyak AND rendemen sedang
AND Biaya Produksi normal
THEN 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,outpu
t_rule[6]);
frmDetail.Z6.Caption:=FloatToStr(Round(u_output[6]));

(* 7. IF luas lahan luas AND jumlah tebu sedang AND rendemen tinggi
AND Biaya Produksi normal
THEN 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,outpu
t_rule[7]);
frmDetail.Z7.Caption:=FloatToStr(Round(u_output[7]));

(* 8. IF luas lahan sedang AND jumlah tebu banyak AND rendemen sedang
AND Biaya Produksi tinggi
THEN 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,outpu
t_rule[8]);
frmDetail.Z8.Caption:=FloatToStr(Round(u_output[8]));
11

(* 9. IF luas lahan luas AND jumlah tebu sedang AND rendemen tinggi
AND Biaya Produksi tinggi
THEN 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,outpu
t_rule[9]);
frmDetail.Z9.Caption:=FloatToStr(Round(u_output[9]));

(* 10. IF luas lahan sedang AND jumlah tebu banyak AND rendemen tinggi
AND Biaya Produksi tinggi
THEN 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,outp
ut_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 normal
THEN 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_r
ule[11]);
frmDetail.Z11.Caption:=FloatToStr(Round(u_output[11]));

(* 12. IF luas lahan sedang AND jumlah tebu sedang AND rendemen sedang
AND Biaya Produksi normal
THEN 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_r
ule[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 rendah
THEN 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 rendah
AND Biaya Produksi normal
THEN 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 sedang
AND Biaya Produksi normal
THEN 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 tinggi
AND Biaya Produksi normal
THEN 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 rendah
AND Biaya Produksi normal
THEN 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 sedang
AND Biaya Produksi normal
THEN 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 tinggi
AND Biaya Produksi normal
THEN 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;
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;

//----- Rata-Rata Terbobot -----


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));
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);
begin
frmDataLahan1.ShowModal;
end;
15

procedure TfrmSPK.BbDataTebuClick(Sender: TObject);


begin
frmDataTebu1.ShowModal;
end;

procedure TfrmSPK.BbDataRendClick(Sender: TObject);


begin
frmDataRend1.ShowModal;
end;

procedure TfrmSPK.BbDataBiayaClick(Sender: TObject);


begin
frmDataBiaya1.ShowModal;
end;

// ----- Hapus nilai -----


procedure TfrmSPK.BbClearClick(Sender: TObject);
begin
edt_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;
begin
Sekarang:=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;
begin
x1:=edt_x1.Text;
x2:=edt_x2.Text;
x3:=edt_x3.Text;
x4:=edt_x4.Text;
with DataModul do
begin
//cek validasi
if (x1 = '') or (x2 = '') or (x3 = '') or (x4 = '') then
MessageDlg('Input harus diisi semuanya',mtWarning, [mbOk], 0)
else
if TabelAnggaran.FindKey([lblTahun.Caption]) then
MessageDlg('Data dengan tahun tersebut sudah ada',mtWarning, [mbOk], 0) //
jika tahun sama di-save
else
begin //Konfirmasi simpan
if MessageDlg('Anda mau menyimpan data ini
?',mtConfirmation,[mbYes,MbNo],0)=mrYes then
begin
TabelAnggaran.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);
end
else //Jika membatalkan penyimpanan
MessageDlg('Silahkan simulasikan SPK Fuzzy lagi',mtInformation, [mbOk],
0)
end;
end;
end;

//--------------- Detail Rumus Logika Fuzzy -------------------


procedure TfrmSPK.BBDetailClick(Sender: TObject);
begin
frmDetail.ShowModal;
end;
17

//--------------- Jika form SPK muncul ----------------------


procedure TfrmSPK.FormShow(Sender: TObject);
begin
edt_x1.SetFocus;
edt_x1.Clear;
edt_x2.Clear;
edt_x3.Clear;
edt_x4.Clear;
lblProd.Caption:='';
//Ambil nilai dari tabel batas
DataModul.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);
begin
if (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


key := chr(13);
end;

procedure TfrmSPK.edt_x2KeyPress(Sender: TObject; var Key: Char);


begin
if (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);


begin
if (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


key := chr(13);
end;

procedure TfrmSPK.edt_x4KeyPress(Sender: TObject; var Key: Char);


begin
if (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


key := chr(13);
end;
end.
19

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

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;

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.
20

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 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.