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 Penguji I Penguji II Penguji III

: Yuliani Indrianingsih, S.T., M.Kom. : Drs. Agus Basukesti, M.T. : Nurochman, S.Kom., M.Kom. : Anton Setiawan H., S.Kom, M.T.

( ( ( (

) ) ) )

Mengetahui,

Ketua Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

Ketua Jurusan Teknik Informatika

Ir. Suyitmadi, M.T.

Nurochman, S.Kom., M.Kom.

SURAT PERNYATAAN

Yang bertanda tangan di bawah ini: Nama NIM Judul Tugas Akhir : Yoga Adiyasa : 04030033 : 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 ..................................................................................... LEMBAR PENGESAHAN .......................................................................... SURAT PERNYATAAN .............................................................................. HALAMAN MOTTO ................................................................................... HALAMAN PERSEMBAHAN ................................................................... KATA PENGANTAR ................................................................................... DAFTAR ISI.................................................................................................. DAFTAR GAMBAR ..................................................................................... DAFTAR TABEL ......................................................................................... INTISARI ...................................................................................................... ABSTRACT .................................................................................................... BAB I PENDAHULUAN .............................................................................. 1.1 Latar Belakang Masalah ............................................................................ 1.2 Rumusan Masalah ..................................................................................... 1.3 Batasan Masalah........................................................................................ 1.4 Tujuan Penelitian ...................................................................................... 1.5 Manfaat Penelitian .................................................................................... 1.6 Metode Penelitian...................................................................................... BAB II LANDASAN TEORI ....................................................................... 2.1 Definisi Sistem .......................................................................................... 2.2 Konsep Sistem Pendukung Keputusan ..................................................... 2.2.1 Definisi Sistem Pendukung Keputusan ............................................ 2.2.2 Karakteristik dan Kapabilitas Sistem Pendukung Keputusan .......... 2.2.3 Komponen Sistem Pendukung Keputusan ....................................... 2.3 Logika Fuzzy ............................................................................................. 2.3.1 Himpunan Fuzzy .............................................................................. 2.3.2 Fungsi Keanggotaan......................................................................... 2.3.3 Operator Dasar Zadeh untuk Operasi Himpunan Fuzzy .................. ix

i ii iii iv v vii ix xii xv xvi xvii 1 1 2 3 3 3 4 5 5 5 5 7 8 10 11 13 17

2.3.4 Penalaran Monoton .......................................................................... 2.3.5 Fungsi Implikasi............................................................................... 2.3.6 Sistem Inferensi Fuzzy ..................................................................... 2.4 Konsep Dasar Basis Data .......................................................................... 2.4.1 Normalisasi ...................................................................................... 2.4.2 Diagram Alir Data............................................................................ 2.4.3 Diagram Alir (FlowChart Sistem) ................................................... 2.5 Borland Delphi 7.0 .................................................................................... 2.5.1 Pengenalan Delphi 7.0 ..................................................................... 2.6 MySQL ...................................................................................................... 2.7 MyDAC..................................................................................................... 2.8 Gambaran Umum Perusahaan ................................................................... 2.8.1 Sejarah Perusahaan........................................................................... 2.8.2 Visi, Misi, dan Budaya Perusahaan.................................................. BAB III PERANCANGAN SISTEM .......................................................... 3.1 Spesifikasi Hardware dan Software.......................................................... 3.1.1 Spesifikasi Hardware....................................................................... 3.1.2 Spesifikasi Software ......................................................................... 3.2 Data-Data Pengamatan .............................................................................. 3.3 Metodologi Perancangan Sistem Fuzzy .................................................... 3.4 Perancangan Aplikasi ................................................................................ 3.4.1 Diagram Alir Data............................................................................ 3.4.1.1 Diagram Konteks ................................................................ 3.4.1.2 DAD Level 0 ....................................................................... 3.4.1.3 DAD Level 1 ....................................................................... 3.4.2 FlowChart Sistem ............................................................................ 3.4.3 Kamus Data ...................................................................................... 3.5 Perancangan Program ............................................................................... 3.5.1 Perancangan Tampilan Awal ......................................................... 3.5.2 Perancangan Tampilan Utama .......................................................

18 19 19 21 22 23 24 25 25 25 26 26 26 27 29 29 29 29 30 31 43 43 43 44 45 46 47 48 48 48

x

3.5.3 Perancangan Input Domain Batas Himpunan Fuzzy...................... 3.5.4 Perancangan Input Batas Luas Lahan ............................................ 3.5.5 Perancangan Input Batas Jumlah Tebu .......................................... 3.5.6 Perancangan Input Batas Rendemen.............................................. 3.5.7 Perancangan Input Batas Biaya Produksi ...................................... 3.5.8 Perancangan Input Batas Jumlah Produksi .................................... 3.5.9 Perancangan Proses Sistem Pendukung Keputusan (SPK) ............ 3.5.10 Perancangan Output Data Variabel Fuzzy...................................... 3.5.11 Perancangan Output Data Anggaran Produksi............................... 3.5.12 Perancangan Cetak Anggaran Produksi per tahun ......................... 3.5.13 Perancangan Detail SPK ................................................................ BAB IV IMPLEMENTASI DAN ANALISIS SISTEM............................. 4.1 Implementasi Sistem ................................................................................. 4.1.1 Implementasi Sistem Awal .............................................................. 4.1.2 Implementasi Menu Utama .............................................................. 4.1.3 Implementasi Input........................................................................... 4.1.4 Implementasi Proses ........................................................................ 4.1.5 Implementasi Output ....................................................................... 4.1.6 Implementasi Menu Bantuan ........................................................... 4.1.7 Implementasi Menu Tentang ........................................................... 4.1.8 Implementasi Peringatan .................................................................. 4.2 Analisa Sistem........................................................................................... 4.2.1 Analisa Hasil .................................................................................... BAB V PENUTUP......................................................................................... 5.1 Kesimpulan ............................................................................................... 5.2 Saran..........................................................................................................

49 50 51 52 53 54 56 57 57 58 59 60 60 61 61 62 67 75 78 79 79 80 81 95 95 96

DAFTAR PUSTAKA LAMPIRAN I LAMPIRAN 2 xi

DAFTAR GAMBAR

2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17

Arsitektur DSS ........................................................................................ 10 Himpunan Fuzzy pada variabel temperatur............................................. 12 Representasi Linear Naik ........................................................................ 14 Representasi Linear Turun ...................................................................... 14 Kurva Segitiga......................................................................................... 15 Kurva Trapesium..................................................................................... 15 Kurva Bentuk Bahu................................................................................. 16 Kurva-S: PERTUMBUHAN................................................................... 16 Kurva-S : PENYUSUTAN ..................................................................... 17 Kurva Bentuk Lonceng ........................................................................... 17 Metode Inferensi Tsukamoto .................................................................. 20 Proses dalam FIS..................................................................................... 21 Luas Lahan .............................................................................................. 32 Jumlah Tebu ............................................................................................ 33 Rendemen................................................................................................ 34 Biaya Produksi ........................................................................................ 35 Jumlah Produksi ...................................................................................... 36 Diagram Konteks .................................................................................... 43 DAD Level 0 ........................................................................................... 44 DAD Level 1 ........................................................................................... 45 FlowChart Sistem ................................................................................... 46 Perancangan Tampilan Awal .................................................................. 48 Perancangan Tampilan Utama ................................................................ 49 Perancangan Input Domain Batas Himpunan Fuzzy ............................... 50 Perancangan Input Batas Luas Lahan ..................................................... 51 Perancangan Input Batas Jumlah Tebu ................................................... 52 Perancangan Input Batas Rendemen....................................................... 53 Perancangan Input Batas Biaya Produksi ............................................... 54 Perancangan Input Batas Jumlah Produksi ............................................. 55

xii

3.18 3.19 3.20 3.21 3.22 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19 4.20 4.21 4.22 4.23 4.24 4.25 4.26

Perancangan Proses SPK......................................................................... 56 Perancangan Output Data Variabel Fuzzy............................................... 57 Perancangan Output Data Anggaran Produksi ........................................ 58 Perancangan Cetak Anggaran Produksi per Tahun................................. 58 Perancangan Detail SPK ......................................................................... 59 Splash Screen .......................................................................................... 61 Menu Utama............................................................................................ 62 Menu Domain Batas................................................................................ 62 Input Batas Luas Lahan........................................................................... 64 Input Batas Jumlah Tebu......................................................................... 65 Input Batas Rendemen ............................................................................ 65 Input Batas Biaya Produksi ..................................................................... 66 Input Batas Jumlah Produksi................................................................... 67 Proses SPK .............................................................................................. 68 Unit Fuzzifikasi ....................................................................................... 68 Fungsi Fuzzifikasi Bahu Kiri................................................................... 69 Fungsi Fuzzifikasi Segitiga ..................................................................... 69 Fungsi Fuzzifikasi Bahu Kanan............................................................... 70 Fungsi Find_Min..................................................................................... 71 Unit DeFuzzifikasi................................................................................... 71 Fungsi DeFuzzifikasi Bahu Kiri .............................................................. 72 Fungsi DeFuzzifikasi Segitiga................................................................. 72 Fungsi DeFuzzifikasi Bahu Kanan .......................................................... 72 Implementasi Fungsi Implikasi Min dan DeFuzzifikasi ......................... 73 Prosedur Rata-Rata Terbobot .................................................................. 74 Proses Edit Anggaran Produksi............................................................... 75 Data Variabel Fuzzy ................................................................................ 76 Anggaran Produksi.................................................................................. 76 Print Preview Anggaran Produksi .......................................................... 77 Detail SPK............................................................................................... 78 Menu Bantuan ......................................................................................... 78

xiii

4.27 4.28 4.29 4.30

Menu Tentang ......................................................................................... 79 Peringatan Data Harus Diisi Semuanya .................................................. 79 Peringatan Data Tidak Sesuai Aturan ..................................................... 80 Peringatan Nilai Kurang dari Batas Minimum ....................................... 80

xiv

DAFTAR TABEL

2.1 2.2 3.1 3.2 3.3 4.1

Simbol-Simbol Diagram Alir Data ......................................................... 23 Simbol-Simbol Diagram Alir.................................................................. 24 Data Pengamatan..................................................................................... 30 Kamus Data Batas ................................................................................... 47 Kamus Data Anggaran ............................................................................ 47 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. Faktorfaktor 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 anggotaanggotanya 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 faktorfaktor 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 polapola 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. Bahasabahasa 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 yang berbasis komputer
Data : eksternal dan internal

Internet, Intraner, ekstranet

Manajemen Data

Manajemen model Subsistem berbasis pengetahuan

Model eksternal

Antarmuka pengguna

Basis pengetahuan organisasional

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

1 µ[x]

DINGIN

SEJUK NORMAL HANGAT

PANAS

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 2. PAROBAYA 3. TUA = [0 45] = [35 55] = [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.

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

1

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

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

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 1 µ[x]

Bahu Kanan

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.

1 µ[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

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

1 µ[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∩ = min( µ A[x],µB[y] ) B

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 ) ٠ 2 is A2) ٠ 3 is A3)٠ (x (x ……. ٠(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 perintahperintah 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 2.8.1

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

1 2 3 4 5 6 7 8 9

2000 2001 2002 2003 2004 2005 2006 2007 2008

5.100 4.313 4.870 4.800 4.295 5.472 5.268 5.250 5.535

3.602.784 3.163.667 3.657.298 3.686.441 3.585.520 4.684.056 4.756.231 5.341.260 5.640.000

6,47 6,10 6,55 6,70 6,61 6,50 6,72 6,87 7,18

22.156.533 28.084.436 27.842.372 29.979.282 29.920.225 38.493.759 42.327.923 42.023.769 57.924.549

233.185 197.736 240.222 239.504 264.210 237.353 320.727 368.210 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] 1 SEMPIT SEDANG LUAS

0 4080
4295 4500 5000 5500 6000

Luas Lahan (Ha)

Gambar 3.1 Luas Lahan Fungsi Keanggotaan : 1
(5000-x) / (5000-4295) , 4080≤ ≤ x 4295 4295 < x < 5000 x ≥5000

µlahan SEMPIT
0

0

x≤ 4500 dan x ≥5500 4500 < x < 5000 5000 < x < 5500 x = 5000

µlahan SEDANG

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

1

0

x ≤5000

µlahan LUAS

(x-5000) / (6000-5000) ,

5000 < x < 6000 x ≥6000

1

33

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

0
3000 3164 4353 4582 4811 6000

Jumlah Tebu (Ribuan Ku)

Gambar 3.2 Jumlah Tebu Fungsi Keanggotaan : 1
3000 ≤x ≤3164 3164 < x < 4582 x ≥4582

µjTebu SEDIKIT

(4582-x) / (4582-3164) ,

0

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

x≤ 4353 dan x ≥4811 4353 < x < 4582 4582 < x < 4811 x = 4582

µjTebu SEDANG

(4811-x) / (4811-4582) ,

1

0

x ≤4582

µjTebu BANYAK

(x-4582) / (6000-4582) ,

4582 < x < 6000 x ≥6000

1

34

3. Rendemen; terdiri atas 3 himpunan fuzzy, yaitu : RENDAH, SEDANG dan TINGGI (Gambar 3.3 Rendemen)

µ[X] 1 RENDAH SEDANG TINGGI

0
5 6.10 6.11 6.432 6.75 8

Rendemen (%)

Gambar 3.3 Rendemen Fungsi Keanggotaan :

1

5 ≤x ≤6.10 6.10 < x < 6.432 x ≥6.432

µrendemen RENDAH

6.432-x) / (6.432-6.10) ,

0

0

x≤ 6.11 dan x ≥6.75 6.11 < x < 6.432 6.432< x < 6.75 x = 6.432

µrendemen SEDANG

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

1

0

x ≤6.432 6,432 ≤x ≤8 x ≥8

µrendemen TINGGI
(x-6.432) / (8-6.432) ,

1

35

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

0
22000 27000 39045 41100 43155 65000

Biaya Produksi (Jutaan Rp.)

Gambar 3.4 Biaya Produksi Fungsi Keanggotaan : 1
22000 ≤ ≤ x 27000 27000 < x < 41100 x ≥41100

µBiayaProd RENDAH

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

0

0

x ≤39045 dan x ≥ 43155 39045 < x < 41100 41100< x < 43155 x = 41100

µBiayaProd NORMAL

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

1

0

x≤ 41100

µBiayaProd TINGGI

(x-41100) / (65000-41100) ,

41100 < x < 65000 x ≥ 65000

1

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] 1 RENDAH NORMAL TINGGI

0
197736 321925 338868 355811 480000

Jumlah Produksi (Ku)

Gambar 3.5 Jumlah Produksi Fungsi Keanggotaan : 1
x≤ 197736 197736< x < 338868 x ≥338868

µjProd RENDAH

(338868-x) / (338868-197736) ,

0

0

x ≤321925 dan x ≥ 355811 321925 < x < 338868 338868 < x < 355811 x = 338868

µjProd NORMAL

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

1

0

x ≤338868 338868 < x < 480000 x ≥480000

µjProd TINGGI

(x-338868) / (480000-338868) ,

1

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

Proses Logika Fuzzy 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 b<x<c x ≥c

µBAWAH[X 1]

(c-x1) / (c-b) ,

0 Keterangan : a b c = Batas Bawah a/ Batas MIN = Batas Bawah b = Batas Bawah c

Berikut implementasi X1 tersebut di dalam Fuzzifikasi untuk himpunan sempit :

1

4080≤x ≤5000 4295 < x < 5000 x ≥5000

µlahan SEMPIT

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

0

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], µBiayaTINGGI[58000] ) = MIN (0.535; 0.746; 0.477; 0.707) = 0.477 Keterangan : α -predikat1 = derajat keanggotaan terkecil/ minimum µRendTINGGI[7.18],

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 α -predikat1 a b = Nilai Defuzzifikasi (jumlah produksi aturan 1) = Derajat Keanggotaan 1 = Batas Atas a = Batas Atas b

Defuzzifikasi itu sendiri merupakan suatu proses untuk merubah hasil penalaran yang berupa derajat keanggotaan keluaran (α -predikat) menjadi variabel numerik kembali (crisp). Sistem akhir Estimasi jumlah produksi gula ini menggunakan rata-rata terbobot (weight average) sebagai metode Defuzzifikasi untuk mendapatkan hasil akhir jumlah produksi gula. Adapun rumus rata-rata terbobot tersebut adalah sebagai berikut :

Z=

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

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

α n zn

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 Fuzzy User Data Batas Himp. Fuzzy Data keputusan jumlah produksi

0
SPK Estimasi Jumlah Produksi Gula

Database Madubaru

Gambar 3.6 Diagram Konteks

44

3.4.1.3

DAD Level 0

User

Update batas himp. Fuzzy

1P
Update Batas Himpunan Fuzzy

D1 batas

Input nilai variabel Fuzzy ( luas lahan, jum. tebu, rendemen, biaya prod.)

2P
Input nilai variabel fuzzy

D2 anggaran

Proses jumlah produksi gula

Output jumlah produksi gula

3
Jumlah Produksi Gula

Lihat data batas, dan anggaran produksi

4P
Lihat Data yang ada pada SPK

Gambar 3.7 Diagram Alir Data (DAD) Level 0

45

3.4.1.4

DAD Level 1

3 Proses Simpan keputusan User

3.1P
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 id variabel himpunan satuan A B C Tipe Varchar Varchar Varchar Varchar Varchar Varchar Varchar Lebar 30 30 30 30 30 30 30 Arti Nomor Batas Nama Variabel Nama Himpunan Satuan Variabel Domain Batas Domain Batas Domain Batas

Tabel 3.3 Kamus Data Anggaran FILE ANGGARAN.DBF Nama Field tahun luas_lahan jum_tebu rendemen biaya_prod jum_prod Tipe Varchar Float Float Float Float Float Lebar 5 Arti Tahun Luas Lahan (Ha) Jumlah Tebu (x1000 Ku) Rendemen (%) Biaya Produksi (Jutaan Rp.) 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 tampilan utama SPK Estimasi jumlah produksi gula dengan logika fuzzy. rancangan

49

File

Bantuan
Input SPK Lihat

Tentang
Domain Batas Data Anggaran

Keluar

Domain Batas

SPK

Anggaran

Keluar

Produksi

Gambar Perusahaan

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

Rendemen

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 Rata-rata Luas Lahan Sempit Bawah a Bawah b Sedang Tengah a Tengah b Tengah c Luas Atas a Atas b Atas

Proses

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 Rata-rata
Jumlah Tebu

Atas

Proses

Sedikit

Sedang Tengah a Tengah b

Banyak s

Bawah a Bawah b

Atas a Atas 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 Rata-rata Rendemen
Rendah

Atas

Proses

Sedang Tengah a Tengah b

Tinggi Atas a Atas b

Bawah a 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 Rata-rata Biaya Prod.
Rendah

Atas

Proses

Normal Tengah a Tengah b

Tinggi Atas a Atas b

Bawah a 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 Rata-rata

Atas

Proses

Jumlah Prod.

Rendah Bawah a Bawah b

Normal Tengah a Tengah b Tengah c

Tinggi Atas a Atas b

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

Data
Rendemen

Data
Biaya Prod.

Proses SPK Fuzzy

Simpan Cetak

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

Anggaran Produksi Gula 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 Fuzzifikasi Fungsi Implikasi

Defuzzifikasi

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 tomboltombol 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, Ratarata 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 tiaptiap 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 variabelvariabelnya 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 2. Sedang 3. Luas =0 =0 = (5535-5000) / (6000-5000) = 535 / 1000 = 0.535 b. Jumlah Tebu : 1. Sedikit 2. Sedang 3. Banyak =0 =0 = = = c. Rendemen : (5640-4582) / (6000-4582) 1058 / 1418 0.746

83

1. Rendah 2. Sedang 3. Tinggi

=0 =0 = (7.18-6.432) / (8-6.432) = 0.748/ 1.568 = 0.4770408

d. Biaya Produksi : 1. Rendah 2. Normal 3. Tinggi =0 =0 = = = (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], µ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 µRendTINGGI[7.18],

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], µ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], µBiayaTINGGI[58000] ) = MIN (0.535; 0.746; 0; 0.707) =0 µRendSEDANG[7.18], µRendTINGGI[7.18],

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], µ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 µRendSEDANG[7.18],

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], µ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], µBiayaNORMAL [58000] ) = MIN (0.535; 0; 0.477; 0) =0 µRendTINGGI [7.18], µRendSEDANG[7.18],

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], [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], µBiayaTINGGI [58000] ) = MIN (0.535; 0; 0.477; 0.707) =0 µRendTINGGI [7.18], µRendSEDANG

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], [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 µRendTINGGI

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], [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], [7.18], µBiayaRENDAH [58000] ) = MIN (0; 0; 0; 0) =0 µRendRENDAH µRendSEDANG

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], [7.18], µBiayaNORMAL[58000] ) = MIN (0; 0; 0; 0) =0 µRendSEDANG

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], [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], [7.18], µBiayaNORMAL [58000] ) = MIN (0; 0; 0; 0) =0 µRendRENDAH µRendTINGGI

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 Luas No. Tahun Lahan (Ha) (Ku) 1 2 3 4 5 6 7 8 9 2000 2001 2002 2003 2004 2005 2006 2007 2008 5.100 4.313 4.870 4.800 4.295 5.472 5.268 5.250 5.535 3.602.784 3.163.667 3.657.298 3.686.441 3.585.520 4.684.056 4.756.231 5.341.260 5.640.000 6,47 6,10 6,55 6,70 6,61 6,50 6,72 6,87 7,18 22.156.533 28.084.436 27.842.372 29.979.282 29.920.225 38.493.759 42.327.923 42.023.769 57.924.549 233.185 197.736 240.222 239.504 264.210 237.353 320.727 368.210 406.169 Tidak Sesuai Aturan 208.586,148 Tidak Sesuai Aturan Tidak Sesuai Aturan Tidak Sesuai Aturan Tidak Sesuai Aturan 355.544,477 370.156,239 406.193,724 Tebu Digiling Rende men (%) Biaya Produksi (Ribuan Rp.) Jumlah Produksi (Ku) Hasil Jumlah Produksi dalam SPK

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 metodemetode 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 http://logikafuzzy.blogspot.com/2007/12/sistem-inferensi-fuzzy.html Fuzzy,

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

: Yoga Adiyasa : 04030033 : 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. 1. Tanggal/ Bulan Keterangan Tanda Tangan

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.