PHPackages                             kematjaya/fuzzy-tsukamoto - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. kematjaya/fuzzy-tsukamoto

ActiveLibrary

kematjaya/fuzzy-tsukamoto
=========================

1.0(5y ago)7334MITPHP

Since Jan 3Pushed 5y ago1 watchersCompare

[ Source](https://github.com/kematjaya0/fuzzy-tsukamoto)[ Packagist](https://packagist.org/packages/kematjaya/fuzzy-tsukamoto)[ RSS](/packages/kematjaya-fuzzy-tsukamoto/feed)WikiDiscussions master Synced 4d ago

READMEChangelogDependencies (3)Versions (2)Used By (0)

fuzzy-tsukamoto
===============

[](#fuzzy-tsukamoto)

1. installation

```
composer require kematjaya/fuzzy-tsukamoto

```

2. create curve

```
...
use Kematjaya\FuzzyTsukamoto\Curve\DownCurve;
use Kematjaya\FuzzyTsukamoto\Curve\UpCurve;
use Kematjaya\FuzzyTsukamoto\Curve\TriagleCurve;
use Kematjaya\FuzzyTsukamoto\CurveBuilder;
...
...
$value = 3000000; // value will be test
$kurvaGaji = (new CurveBuilder())
        ->addCurve('sedikit', (new DownCurve($value))->setMin(2000000)->setMax(4000000))
        ->addCurve('banyak', (new UpCurve($value))->setMin(3000000)->setMax(5000000));

$value = 4; // example in year
$kurvaMasaKerja = (new CurveBuilder())
        ->addCurve('baru', (new DownCurve($value))->setMin(2)->setMax(5))
        ->addCurve('sedang', (new TriagleCurve($value))->setMedium(5)->setMin(3)->setMax(7))
        ->addCurve('lama', (new UpCurve($value))->setMin(5)->setMax(8));

$kurvaBonus = (new CurveBuilder()) // output curve
    ->addCurve('sedikit', (new DownCurve())->setMin(300000)->setMax(600000))
    ->addCurve('banyak', (new UpCurve())->setMin(300000)->setMax(600000));

```

3. ADD curve to Tsukamoto object

```
use Kematjaya\FuzzyTsukamoto\CurveBuilder;
use Kematjaya\FuzzyTsukamoto\FuzzyTsukamoto;
...
...
$tsukamoto = new FuzzyTsukamoto();
$tsukamoto->addDecisionCurve('gaji', $kurvaGaji)
        ->addDecisionCurve('kerja', $kurvaKerja)
        ->setOutputCurve($kurvaBonus);

```

4. Create Rules and process

```
...
use Kematjaya\FuzzyTsukamoto\RuleBuilder;

...

$ruleBuilder = new RuleBuilder();
$ruleBuilder->startWhen(1)
        ->andWhen('kerja', 'baru')
        ->andWhen("gaji", 'sedikit')
        ->then('sedikit');

$ruleBuilder->startWhen(2)
        ->andWhen('kerja', 'baru')
        ->andWhen("gaji", 'banyak')
        ->then('sedikit');

$ruleBuilder->startWhen(3)
        ->andWhen('kerja', 'sedang')
        ->andWhen("gaji", 'sedikit')
        ->then('sedikit');

$ruleBuilder->startWhen(4)
        ->andWhen('kerja', 'sedang')
        ->andWhen("gaji", 'banyak')
        ->then('banyak');

$ruleBuilder->startWhen(5)
        ->andWhen('kerja', 'lama')
        ->andWhen("gaji", 'sedikit')
        ->then('banyak');

$ruleBuilder->startWhen(6)
        ->andWhen('kerja', 'lama')
        ->andWhen("gaji", 'banyak')
        ->then('banyak');

$result = $tsukamoto->calculated($ruleBuilder);

```

5. Get result

```
$tsukamoto->calculated($ruleBuilder);
$tsukamoto->getOutput();// return float

```

Reference: [https://www.academia.edu/9877842/Perhitungan\_Bonus\_Karyawan\_dengan\_Metode\_Fuzzy\_Tsukamoto\_Berbasis\_Android](https://www.academia.edu/9877842/Perhitungan_Bonus_Karyawan_dengan_Metode_Fuzzy_Tsukamoto_Berbasis_Android)

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1957d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f2cf191329e1adc930a168a7d3baeda8517b7982184820692163a5baa72e3965?d=identicon)[kematjaya0](/maintainers/kematjaya0)

---

Top Contributors

[![kematjaya0](https://avatars.githubusercontent.com/u/36223951?v=4)](https://github.com/kematjaya0 "kematjaya0 (7 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/kematjaya-fuzzy-tsukamoto/health.svg)

```
[![Health](https://phpackages.com/badges/kematjaya-fuzzy-tsukamoto/health.svg)](https://phpackages.com/packages/kematjaya-fuzzy-tsukamoto)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
