Algorithm, Codeigniter, Mathematic, PHP, Programming, SQL

Algoritma Fuzzifikasi Tsukamoto Untuk Prediksi Hasil Produksi Menggunakan 4 Aturan Prediksi

Algoritma FIS (Fuzzy Inference System) adalah salah satu algoritma yang digunakan untuk pengambilan keputusan. Contoh yang dibahas kali ini adalah mengenai penentuan nilai kinerja karyawan berdasarkan inputan yang ada.
Algoritma ini memiliki beberapa tipe teknik perhitungan yang digunakan, dan salah satu tipe yang digunakan adalah tipe yang ditemukan oleh Tsukamoto, oleh karena itu tipe ini dinamakan tipe Tsukamoto / Fuzzy Tsukamoto.

Logika fuzzy bila dibandingkan dengan logika konvensional, kemampuannya dalam proses pelanaran secara bahasa menjadi kelebihan tersendiri. Ditambah pula kelebihannya dalam perancangannya yang tidak memerlukan persamaan matematik yang rumit, mampu memodelkan fungsi non linear bahkan dapat mengaplikasikan pengalaman-pengalaman para pakar secara langsung tanpa harus melalui proses pelatihan.

Dalam memecahkan solusi studi kasus menggunakan model fuzzy tsukamoto, urutan langkah yang akan ditempuh adalah :

  1. Fuzzifikasi
  2. Inferensi Tsukamoto
  3. Defuzzifikasi

Berikut adalah contoh kode perhitungan menggunakan algoritma fuzzy tsukamoto (ala ala jepang namanya, tapi bukan ajinomoto loh ya)

 

<?php

/**
author       : Ahmad Sirojul Miftakh
phone        : +6281217040518
email        : sirojulmiftakh@gmail.com
facebook     : facebook.com/sirojulmiftakh
linkedin     : linkedin.com/in/sirojulmiftakh
 */

/**
Suatu perusahaan tekstil akan memproduksi pakaian dengan jenis XYZ. Dari 1 bulan terakhir,
permintaan terbesar mencapai 5000 potong per bulan, dan permintaan terkecil mencapai 1000 potong per bulan.
Persediaan barang di gudang tiap hari paling banyak 600 potong. dan persediaan terkecil mencapai 100 potong per hari.
Dikarenakan memiliki keterbasan, perusahaan ini hanya mampu memproduksi pakaian paling banyak 7000 potong per bulan.
Untuk efisiensi, mesin dan SDM setiap bulan diharapkan perusahaan memproduksi paling tidak 2000 potong pakaian.
Berapa potong pakaian jenis XYZ yang harus diproduksi
apabila terdapat permintaan sejumlah 4000 potong dan persediaan di gudang terdapat 300 potong. ?
 */

$max_permintaan = 5000;
$min_permintaan = 1000;

$max_stok = 600;
$min_stok = 100;

$max_produksi = 7000;
$min_produksi = 2000;

/**
diberikan 4 kondisi
1. permintaan NAIK & stok SEDIKIT (NS)
2. permintaan NAIK & stok BANYAK (NB)
3. permintaan TURUN & stok SEDIKIT (TS)
4. permintaan TURUN & stok BANYAK (TB)
 */

$permintaan = 4000;
$stok       = 300;

// alfa prediksi permintaan
$permintaan_turun = ($max_permintaan - $permintaan) / ($max_permintaan - $min_permintaan);
$permintaan_naik  = ($permintaan - $min_permintaan) / ($max_permintaan - $min_permintaan);

// alfa prediksi stok
$stok_sedikit = ($max_stok - $stok) / ($max_stok - $min_stok);
$stok_banyak  = ($stok - $min_stok) / ($max_stok - $min_stok);

// prediksi output permintaan NAIK - stok SEDIKIT
$const_NS  = min($permintaan_naik, $stok_sedikit);
$output_NS = ($const_NS * ($max_produksi - $min_produksi)) + $min_produksi;

// prediksi output permintaan NAIK - stok BANYAK
$const_NB  = min($permintaan_naik, $stok_banyak);
$output_NB = ($const_NB * ($max_produksi - $min_produksi)) + $min_produksi;

// prediksi output permintaan TURUN - stok SEDIKIT
$const_TS  = min($permintaan_turun, $stok_sedikit);
$output_TS = $max_produksi - ($const_TS * ($max_produksi - $min_produksi));

// prediksi output permintaan TURUN - stok BANYAK
$const_TB  = min($permintaan_turun, $stok_banyak);
$output_TB = $max_produksi - ($const_TB * ($max_produksi - $min_produksi));

// prediksi output total atau defuzzifikasi
$output_total = (($const_NS * $output_NS)
     + ($const_NB * $output_NB)
     + ($const_TS * $output_TS)
     + ($const_TB * $output_TB)) / ($const_NS + $const_NB + $const_TS + $const_TB);

echo floor($output_total);

Regards
:: Ahmad S M ::

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s