PHPackages                             afrizalmy/certainty\_factor - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. afrizalmy/certainty\_factor

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

afrizalmy/certainty\_factor
===========================

Package sederhana untuk menghitung Sistem Pakar menggunakan metode Certainty Factor

v1.0.2(5y ago)172006[1 issues](https://github.com/afrizal423/afrizalm-certainty-factor/issues)MITPHPPHP &gt;=7.1

Since Nov 25Pushed 4y ago1 watchersCompare

[ Source](https://github.com/afrizal423/afrizalm-certainty-factor)[ Packagist](https://packagist.org/packages/afrizalmy/certainty_factor)[ Docs](https://github.com/afrizal423/afrizalm-certainty-factor)[ RSS](/packages/afrizalmy-certainty-factor/feed)WikiDiscussions master Synced 6d ago

READMEChangelog (3)DependenciesVersions (5)Used By (0)

بِسْــــــــــــــمِ اللَّهِ الرَّحْمَنِ الرَّحِيم

Expert System With Certainty Factor Using PHP
=============================================

[](#expert-system-with-certainty-factor-using-php)

Package perhitungan sistem pakar dengan certainty factor menggunakan PHP.

Installation
------------

[](#installation)

- Pastikan anda sudah memiliki composer di device anda.
- Install menggunakan perintah ```
    composer require afrizalmy/certainty_factor

    ```

How To Use
----------

[](#how-to-use)

- Silahkan lihat pada file [ini](example/index.php)
- Terdapat dua parameter dalam function ProsesHitung()
    - parameter pertama yaitu berupa data master yang didapatkan dari pakar
        - Silahkan masukkan berupa array of object
        - contohnya seperti dibawah ini:

        ```
        $arr = [];
        $arr[0]['kode_case'] = "P01";
        $arr[0]['nama_case'] = "Anemia Aplastik";
        $arr[0]['kode_rule'] = "G01";
        $arr[0]['nama_rule'] = "Terasa lemas diseluruh tubuh";
        $arr[0]['nilai_mb'] = 0.8;
        $arr[0]['nilai_md'] = 0.2;

        $arr[1]['kode_case'] = "P01";
        $arr[1]['nama_case'] = "Anemia Aplastik";
        $arr[1]['kode_rule'] = "G02";
        $arr[1]['nama_rule'] = "Merasakan sakit kepala";
        $arr[1]['nilai_mb'] = 0.8;
        $arr[1]['nilai_md'] = 0.1;

        ```

        - Lalu masukkan variable `$arr` kedalam parameter pertama dalam fungsi ProsesHitung
        - Lebih efektif anda menggunakan looping untuk menyimpan ke variable `$arr` tersebut
    - parameter kedua yaitu berupa data inputan dari user
        - Silahkan masukkan berupa array of object
        - contohnya seperti dibawah ini:

        ```
        $arr = [];
        $arr[0]['kode_rule'] = "G01";
        $arr[0]['persentase_user'] = 0.8;

        $arr[1]['kode_rule'] = "G02";
        $arr[1]['persentase_user'] = 0.5;

        ```

        - Lalu masukkan variable `$arr` kedalam parameter kedua dalam fungsi ProsesHitung
        - Lebih efektif anda menggunakan looping untuk menyimpan ke variable `$arr` tersebut
    - **PERLU DIINGAT!!**
        Nama dari array of object **jangan diubah!**penjelasan:
        - object `kode_case` ini adalah kode dari case atau tautan untuk menghubungkan antara case dengan gejala. Atau lebih mudah dipahami seperti unique id dari sebuah penyakit (jika studi kasusnya penyakit).
        - object `nama_penyakit` ini adalah nama yang mendeskripsikan dari kode rule. Atau lebih mudah dipahami seperti nama dari sebuah penyakit (jika studi kasusnya penyakit)
        - object `kode_rule` ini adalah kode dari rule atau tautan untuk menghubungkan antara case dengan gejala. Atau lebih mudah dipahami seperti unique id dari gejala (jika studi kasusnya penyakit).
        - object `nama_rule` ini adalah nama yang mendeskripsikan dari kode rule. Atau lebih mudah dipahami seperti nama gejala (jika studi kasusnya penyakit)
        - object `nilai_mb` dan object `nilai_md` ini adalah hasil nilai dari pakar. Belum paham? silahkan dibaca referensi bagian bawah ini.
        - object `persentase_user` ini adalah persentase dari kepercayaan user, **INGAT!** jangan lupa konversikan ke bilangan bagi 100 atau float. contoh: 80% maka hasilnya 0.80
- Hasil dari perhitungan akan nampak seperti dibawah ini ```
    {
        "list_case":
        [
            {
            "kode_case":"P01",
            "nama_case":"Anemia Aplastik",
            "hasil_perhitungan":0.2977600000000000246558329308754764497280120849609375
            },
            {
            "kode_case":"P02",
            "nama_case":"Anemia Defisiensi Zat besi",
            "hasil_perhitungan":0.414553600000000022074431171859032474458217620849609375
            },
            {
            "kode_case":"P03",
            "nama_case":"Anemia Kremis\/Kronik",
            "hasil_perhitungan":0.244000000000000050182080713057075627148151397705078125
            }
        ],
        "hasil_pakar":
        {
            "kode_case":"P02",
            "nama_case":"Anemia Defisiensi Zat besi",
            "hasil_perhitungan":0.414553600000000022074431171859032474458217620849609375
        }
    }

    ```

    - Dari hasil output terdapat dua object yaitu list\_case dan hasil\_pakar.
    - Object list\_case didalamnya memiliki data array of object lagi
        - Object list\_case ini menampung semua hasil perhitungan dari case yang ada
    - Object hasil\_pakar didalamnya memiliki object lagi yaitu nama\_case dan hasil\_perhitungan
        - Object hasil\_pakar ini menampung hasil akhir dari semua case yang ada
    - Silahkan berkreasi lagi dari output seperti yang diatas. Lanjutkan sesuai logika aplikasi anda

NOTE!!!
-------

[](#note)

- [Data Test dan Input Test](src/Tester) yang didapat bukanlah data dari pakar untuk pembobotan MB (*measure of belief / ukuran kepercayaan*) maupun MD ( *measure of disbelief / ukuran ketidakpercayaan*)
- Data case / penyakit, rule dan gejala didapat dari [jurnal ini](https://prpm.trigunadharma.ac.id/public/fileJurnal/hpxu6%20-%20Trinanda.pdf)
- Silahkan ubah data tersebut sesuai studi kasus masing-masing

Hitung Manual
-------------

[](#hitung-manual)

- Silahkan lihat file [.ods](manual.ods) ini untuk perhitungan manual dari contoh inputan diatas
- Referensi perhitungan manual dengan studi kasus lain terdapat difile [manual-tambahan.xlsx](manual-tambahan.xlsx)

Referensi
---------

[](#referensi)

1. [SISTEM PAKAR PENDIAGNOSA PENYAKIT ANAK MENGGUNAKAN CERTAINTY FACTOR (CF)](https://ejournal.unsrat.ac.id/index.php/JIS/article/view/705/0)
2. [Perancangan Aplikasi Sistem Pakar Penyakit Roseola Dengan Menggunakan Metode Certainty Factor](https://www.ejurnal.stmik-budidarma.ac.id/index.php/JSON/article/view/1956)
3. [SISTEM PAKAR DIAGNOSA PENYAKIT PADA AYAM MENGGUNAKAN METODE CERTAINTY FACTOR](https://www.scribd.com/document/431280343/Dokumentasi-Sistem-Pakar-Ayam-Skripsi)
4. [SISTEM PAKAR penyelesaian metode Certainty Factor ](http://ariecandra02.blogspot.com/2017/05/sistem-pakar-penyelesaian-metode_64.html)
5. [Sistem Pakar Menggunakan Metode Certainty Factor untuk Estetika Kulit Wanita dalam Menjaga Kesehatan](https://www.jidt.org/index.php/jidt/article/view/70)

Disclaimer
----------

[](#disclaimer)

- **Dilarang keras** di perjual-belikan, source ini saya publikasi untuk keperluan belajar saja.
- Silahkan ubah sesuai studi kasus anda. Untuk menghargai pembuatan package ini saya menerima donasi dari anda.

Donation
--------

[](#donation)

- Bagi yang ingin berdonasi terbentuknya sistem ini, siapapun, berapapun, saya ucapkan terimakasih sebanyak-banyaknya. Silahkan donasi di [sini](https://saweria.co/afrizalmy)

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance19

Infrequent updates — may be unmaintained

Popularity21

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity51

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

Every ~43 days

Total

3

Last Release

1911d ago

### Community

Maintainers

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

---

Top Contributors

[![afrizal423](https://avatars.githubusercontent.com/u/34409541?v=4)](https://github.com/afrizal423 "afrizal423 (13 commits)")

---

Tags

certainty-factorexpert-systemexpertsystemkuliahmetodephpsistem-pakarsistempakarpakarsistem pakarcertainty factor

### Embed Badge

![Health badge](/badges/afrizalmy-certainty-factor/health.svg)

```
[![Health](https://phpackages.com/badges/afrizalmy-certainty-factor/health.svg)](https://phpackages.com/packages/afrizalmy-certainty-factor)
```

###  Alternatives

[hisune/echarts-php

A php wrapper for echarts javascript libraries

327201.9k5](/packages/hisune-echarts-php)[imliam/laravel-env-set-command

Set a .env file variable from the command line

118352.4k10](/packages/imliam-laravel-env-set-command)[bref/symfony-bridge

Makes Symfony work on AWS Lambda with Bref

491.7M5](/packages/bref-symfony-bridge)[andig/php-shunting-yard

Refactored repack of https://github.com/droptable/php-shunting-yard

26219.4k](/packages/andig-php-shunting-yard)[jackabox/nova-duplicate-field

A Laravel Nova field to duplicate records.

30111.5k](/packages/jackabox-nova-duplicate-field)[vdechenaux/brotli

Add brotli compress/uncompress functions to PHP

2468.3k1](/packages/vdechenaux-brotli)

PHPackages © 2026

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