From 7ce0a687073df880739b2b8c328930c3532dfceb Mon Sep 17 00:00:00 2001 From: kicap1992 Date: Fri, 1 Apr 2022 00:07:20 +0800 Subject: [PATCH] fiished the fuzzy method --- .../pengujian_fuzzy-checkpoint.ipynb | 798 ++++++++++++++--- dataset/dataset.csv | 16 +- dataset/himpunan_fuzzy.csv | 13 + out.csv | 33 + pengujian_fuzzy.ipynb | 817 ++++++++++++++---- 5 files changed, 1385 insertions(+), 292 deletions(-) create mode 100644 dataset/himpunan_fuzzy.csv create mode 100644 out.csv diff --git a/.ipynb_checkpoints/pengujian_fuzzy-checkpoint.ipynb b/.ipynb_checkpoints/pengujian_fuzzy-checkpoint.ipynb index af63302..5312176 100644 --- a/.ipynb_checkpoints/pengujian_fuzzy-checkpoint.ipynb +++ b/.ipynb_checkpoints/pengujian_fuzzy-checkpoint.ipynb @@ -11,13 +11,14 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 371, "id": "721c3e36", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", - "import pandas as pd" + "import pandas as pd\n", + "import asyncio" ] }, { @@ -30,7 +31,7 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 372, "id": "e7835698", "metadata": {}, "outputs": [ @@ -70,7 +71,7 @@ " 753\n", " 44.0\n", " 4.5\n", - " 10.0\n", + " 10.9\n", " Matang\n", " \n", " \n", @@ -214,7 +215,7 @@ ], "text/plain": [ " Usia Berat Keliling Ukuran_batang Jarak_duri Keterangan\n", - "0 14 753 44.0 4.5 10.0 Matang\n", + "0 14 753 44.0 4.5 10.9 Matang\n", "1 18 505 42.0 4.0 10.0 Matang\n", "2 17 750 43.0 3.0 10.0 Matang\n", "3 15 755 44.0 5.0 10.0 Matang\n", @@ -232,7 +233,7 @@ "15 13 860 40.0 4.0 9.5 Mentah" ] }, - "execution_count": 55, + "execution_count": 372, "metadata": {}, "output_type": "execute_result" } @@ -254,7 +255,7 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 373, "id": "f0789ec2", "metadata": {}, "outputs": [], @@ -265,7 +266,7 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 374, "id": "f3f362e1", "metadata": {}, "outputs": [ @@ -292,7 +293,7 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 375, "id": "9290d188", "metadata": {}, "outputs": [ @@ -317,7 +318,7 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 376, "id": "16e441bc", "metadata": {}, "outputs": [ @@ -342,7 +343,7 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": 377, "id": "d51fab67", "metadata": {}, "outputs": [ @@ -367,7 +368,7 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": 378, "id": "54b442e1", "metadata": {}, "outputs": [ @@ -375,7 +376,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "10.0\n" + "10.9\n" ] } ], @@ -391,6 +392,190 @@ "print(max_jarak_duri)" ] }, + { + "cell_type": "code", + "execution_count": 379, + "id": "53f0a713", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "

" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
FungsiNama VariabelSemesta PembicaraanHimpunan FuzzyDomain
InputUsia[ 9 , 18 ]Rendah[ 9 , 14.0 ]
Tinggi[ 13.0 , 18 ]
Berat[ 505 , 950 ]Rendah[ 505 , 827.5 ]
Tinggi[ 807.5 , 950 ]
Keliling[ 30.0 , 46.0 ]Rendah[ 30.0 , 43.0 ]
Tinggi[ 41.0 , 46.0 ]
Ukurang Batang[ 2.5 , 5.0 ]Rendah[ 2.5 , 4.5 ]
Tinggi[ 3.5 , 5.0 ]
Jarak Duri[ 7.5 , 10.9 ]Rendah[ 7.5 , 9.95 ]
Tinggi[ 8.95 , 10.9 ]
OutputKeterangan[ 0 , 1 ]Rendah (Mentah)[ 0 , 0.5 ]
Tinggi (Masak)[ 0.5 , 1 ]
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "himpunan_fuzzy = pd.read_csv(\"dataset/himpunan_fuzzy.csv\")\n", + "\n", + "# Fuzzykasi Usia\n", + "himpunan_fuzzy.loc[0, 'Semesta Pembicaraan'] = f\"[ {min_usia} , {max_usia} ]\" # Semesta pembicaraan (Rendah) Usia\n", + "himpunan_fuzzy.loc[1, 'Semesta Pembicaraan'] = f\"[ {min_usia} , {max_usia} ]\" # Semesta pembicaraan (Tinggi) Usia\n", + "himpunan_fuzzy.loc[0, 'Domain'] = f\"[ {min_usia} , {mid_usia + 0.5} ]\" # Domain (Rendah) Usia\n", + "himpunan_fuzzy.loc[1, 'Domain'] = f\"[ {mid_usia - 0.5} , {max_usia} ]\" # Domain pembicaraan (Tinggi) Usia\n", + "\n", + "# Fuzzykasi Berat\n", + "himpunan_fuzzy.loc[2, 'Semesta Pembicaraan'] = f\"[ {min_berat} , {max_berat} ]\" # Semesta pembicaraan (Rendah) Berat\n", + "himpunan_fuzzy.loc[3, 'Semesta Pembicaraan'] = f\"[ {min_berat} , {max_berat} ]\" # Semesta pembicaraan (Tinggi) Berat\n", + "himpunan_fuzzy.loc[2, 'Domain'] = f\"[ {min_berat} , {mid_berat + 10} ]\" # Domain (Rendah) Berat\n", + "himpunan_fuzzy.loc[3, 'Domain'] = f\"[ {mid_berat - 10} , {max_berat} ]\" # Domain pembicaraan (Tinggi) Berat\n", + "\n", + "# Fuzzykasi Keliling\n", + "himpunan_fuzzy.loc[4, 'Semesta Pembicaraan'] = f\"[ {min_keliling} , {max_keliling} ]\" # Semesta pembicaraan (Rendah) Keliling\n", + "himpunan_fuzzy.loc[5, 'Semesta Pembicaraan'] = f\"[ {min_keliling} , {max_keliling} ]\" # Semesta pembicaraan (Tinggi) Keliling\n", + "himpunan_fuzzy.loc[4, 'Domain'] = f\"[ {min_keliling} , {mid_keliling + 1} ]\" # Domain (Rendah) Keliling\n", + "himpunan_fuzzy.loc[5, 'Domain'] = f\"[ {mid_keliling - 1} , {max_keliling} ]\" # Domain pembicaraan (Tinggi) Keliling\n", + "\n", + "# Fuzzykasi Keliling\n", + "himpunan_fuzzy.loc[4, 'Semesta Pembicaraan'] = f\"[ {min_keliling} , {max_keliling} ]\" # Semesta pembicaraan (Rendah) Keliling\n", + "himpunan_fuzzy.loc[5, 'Semesta Pembicaraan'] = f\"[ {min_keliling} , {max_keliling} ]\" # Semesta pembicaraan (Tinggi) Keliling\n", + "himpunan_fuzzy.loc[4, 'Domain'] = f\"[ {min_keliling} , {mid_keliling + 1} ]\" # Domain (Rendah) Keliling\n", + "himpunan_fuzzy.loc[5, 'Domain'] = f\"[ {mid_keliling - 1} , {max_keliling} ]\" # Domain pembicaraan (Tinggi) Keliling\n", + "\n", + "# Fuzzykasi Ukuran Batang\n", + "himpunan_fuzzy.loc[6, 'Semesta Pembicaraan'] = f\"[ {min_ukuran_batang} , {max_ukuran_batang} ]\" # Semesta pembicaraan (Rendah) Ukuran Batang\n", + "himpunan_fuzzy.loc[7, 'Semesta Pembicaraan'] = f\"[ {min_ukuran_batang} , {max_ukuran_batang} ]\" # Semesta pembicaraan (Tinggi) Ukuran Batang\n", + "himpunan_fuzzy.loc[6, 'Domain'] = f\"[ {min_ukuran_batang} , {mid_ukuran_batang + 0.5} ]\" # Domain (Rendah) Ukuran Batang\n", + "himpunan_fuzzy.loc[7, 'Domain'] = f\"[ {mid_ukuran_batang - 0.5} , {max_ukuran_batang} ]\" # Domain pembicaraan (Tinggi) Ukuran Batang\n", + "\n", + "# Fuzzykasi Jarak Duri\n", + "himpunan_fuzzy.loc[8, 'Semesta Pembicaraan'] = f\"[ {min_jarak_duri} , {max_jarak_duri} ]\" # Semesta pembicaraan (Rendah) Jarak Duri\n", + "himpunan_fuzzy.loc[9, 'Semesta Pembicaraan'] = f\"[ {min_jarak_duri} , {max_jarak_duri} ]\" # Semesta pembicaraan (Tinggi) Jarak Duri\n", + "himpunan_fuzzy.loc[8, 'Domain'] = f\"[ {min_jarak_duri} , {mid_jarak_duri + 0.75} ]\" # Domain (Rendah) Jarak Duri\n", + "himpunan_fuzzy.loc[9, 'Domain'] = f\"[ {mid_jarak_duri - 0.25} , {max_jarak_duri} ]\" # Domain pembicaraan (Tinggi) Jarak Duri\n", + "\n", + "# Fuzzykasi Keterangan\n", + "himpunan_fuzzy.loc[10, 'Semesta Pembicaraan'] = f\"[ 0 , 1 ]\" # Semesta pembicaraan (Rendah) Keterangan\n", + "himpunan_fuzzy.loc[11, 'Semesta Pembicaraan'] = f\"[ 0 , 1 ]\" # Semesta pembicaraan (Tinggi) Keterangan\n", + "himpunan_fuzzy.loc[10, 'Domain'] = f\"[ 0 , 0.5 ]\" # Domain (Rendah) Keterangan\n", + "himpunan_fuzzy.loc[11, 'Domain'] = f\"[ 0.5 , 1 ]\" # Domain pembicaraan (Tinggi) Keterangan\n", + "\n", + "himpunan_fuzzy.loc[himpunan_fuzzy.duplicated(subset=['Fungsi']),['Fungsi']]=''\n", + "himpunan_fuzzy.loc[himpunan_fuzzy.duplicated(subset=['Nama Variabel']),['Nama Variabel']]=''\n", + "himpunan_fuzzy.loc[himpunan_fuzzy.duplicated(subset=['Semesta Pembicaraan']),['Semesta Pembicaraan']]=''\n", + "\n", + "\n", + "# himpunan_fuzzy.to_html(index=False)\n", + "\n", + "from IPython.display import display, HTML\n", + "display(HTML(\"

\"))\n", + "display(HTML(himpunan_fuzzy.to_html(index=False)))" + ] + }, { "cell_type": "markdown", "id": "e4ac8e31", @@ -402,7 +587,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 380, "id": "4d525445", "metadata": {}, "outputs": [], @@ -411,7 +596,7 @@ "import matplotlib.pyplot as plt\n", "\n", "def RangeSubjektif(_low, _high, _step):\n", - " subjektif = np.arange(_low, _high , _step)\n", + " subjektif = np.arange(_low, _high , _step)\n", " return subjektif\n", "\n", "def FuzzyShow(_rule, _range_subjektif, _title):\n", @@ -439,7 +624,7 @@ " lo = fuzz.trapmf(_range_subjektif, _rule[0])\n", " hi = fuzz.trapmf(_range_subjektif, _rule[1])\n", " \n", - " fig,ax = plt.subplots(nrows=1, figsize=(10,3))\n", + " fig,ax = plt.subplots(nrows=1, figsize=(16,3))\n", " ax.plot(_range_subjektif, lo, 'r' , linewidth = 1.5 , label= \"Masak\")\n", " ax.plot(_range_subjektif, hi, 'g' , linewidth = 1.5 , label= \"Mentah\")\n", " \n", @@ -468,7 +653,7 @@ }, { "cell_type": "code", - "execution_count": 63, + "execution_count": 381, "id": "aeab6802", "metadata": {}, "outputs": [ @@ -497,15 +682,15 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 382, "id": "1f123edb", "metadata": {}, "outputs": [ { "data": { - "image/png": "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oCRJcpGeDq6np4djjz2WU045xU9aHERmsmvXLnp6epg8eXJDX9OsRXqjgCnAXGAJcGNEHD9IgasyszszuydMmNCkU0uSdOTrdQRZB/HCCy8wfvx4w/FBRATjx49/RSPsjQTkJ4CT67a7irZ6PcDazNybmf8G/Au1wCxJkpqgL8IRZB2U4fjQXum/TyMB+QFgSkRMjogxwGJg7YA+f0tt9JiIeC21KRePvaJKJEnSQfV24CI9VVZEcNFFF/Vv79u3jwkTJrBgwYKmnueYY45p6vEOZsiAnJn7gEuAu4AtwM2ZuTkiVkTEwqLbXcCuiHgY+B7w3zNz13AVLUnSSOMiPVXZ0UcfzaZNm9izZw8Ad999NxMnTmxxVYevoTnImXlHZv5yZv5SZq4s2q7KzLXF68zM38vMaZl5RmbeNJxFS5I00vSFi/RUbfPnz+f2228HYM2aNSxZsqR/3/e//33OOussZs6cyTve8Q4effRRADZv3szs2bOZMWMG06dPZ+vWrQCce+65zJo1i9NOO41Vq1a97FxPP/00Z511Vv/5mq2Rp1hIkqQW6+0IOg3IGsrHPgYPPdTcY86YAV/60pDdFi9ezIoVK1iwYAEbN25k6dKl3HvvvQC85S1v4d5772XUqFHcc889fPKTn+TWW2/lK1/5CpdddhkXXnghL730Er29vQCsXr2aE088kT179vD2t7+d888/n/HjxwPw5JNPsnDhQj772c/yvve9r7nfa8GALElSG+hzDrIqbvr06Wzfvp01a9Ywf/78A/bt3r2biy++mK1btxIR7N27F4CzzjqLlStX0tPTw3nnnceUKbVnPFx77bXcdtttAOzYsYOtW7cyfvx49u7dy9lnn83111/Pu971rmH7XgzIkiS1gV6nWKgRDYz0DqeFCxdy+eWXs27dOnbt+vlytCuvvJJ3v/vd3HbbbWzfvp25c+cCcMEFF3DmmWdy++23M3/+fL761a/S0dHBPffcw3333ce4ceOYO3du/yPaRo0axaxZs7jrrruGNSA36znIkiRpGPU5xUJtYOnSpVx99dWcccYZB7Tv3r27f9He1772tf72xx57jDe96U1ceumlLFq0iI0bN7J7925OOOEExo0bxyOPPML69ev7+0cEq1ev5pFHHuHzn//8sH0fBmRJktqAI8hqB11dXVx66aUva7/iiiv4xCc+wcyZM9m3b19/+80338zpp5/OjBkz2LRpEx/60IeYN28e+/btY+rUqSxfvpw5c+YccKzOzk7WrFnDd7/7XW644YZh+T4iszV3W3d3d27YsKEl55Ykqd3850tO4KmxfTzwhd2tLkUVs2XLFqZOndrqMirvIP9Og07sdwRZkqQ24GPepPIYkCVJagO9HTgHWSqJAVmSpDbgCLJUHgOyJEltwEV6UnkMyJIktYG+cIqFVBYDsiRJbaAvoKOv1VVII4MBWZKkNtDrCLIqLCK46KKL+rf37dvHhAkTWLBgwWEf83Of+1xD/Y455pjDPsfBGJAlSWoDLtJTlR199NFs2rSJPXv2AHD33Xf3f3Le4Wo0IA8HA7IkSW2gN6Cjz4Ss6po/fz633347AGvWrGHJkiX9+5577jmWLl3K7NmzmTlzJt/61reA2sdOn3feecybN48pU6ZwxRVXALB8+XL27NnDjBkzuPDCCwE499xzmTVrFqeddhqrVq064Nyf+tSneOtb38qcOXN48sknX/X3MupVH0GSJA07F+mpER+782M89OOHmnrMGW+YwZfmfWnIfosXL2bFihUsWLCAjRs3snTpUu69914AVq5cyXve8x5Wr17Ns88+y+zZs3nve98LwEMPPcSDDz7IUUcdxamnnspHP/pRrrnmGq677joeeujn38vq1as58cQT2bNnD29/+9s5//zzGT9+PM899xxz5sxh5cqVXHHFFdx44418+tOfflXfsyPIkiS1gb5IF+mp0qZPn8727dtZs2YN8+fPP2Dft7/9ba655hpmzJjB3LlzeeGFF3j88ccBOPvssznuuOMYO3Ys06ZN44c//OGgx7/22mv7R4l37NjB1q1bARgzZkz/XOdZs2axffv2V/29OIIsSVIb6A3odIqFhtDISO9wWrhwIZdffjnr1q1j165d/e2Zya233sqpp556QP/777+fo446qn+7s7OTffv2vey469at45577uG+++5j3Lhx/SEbYPTo0UTEIb/+lXIEWZKkNuAiPbWDpUuXcvXVV3PGGWcc0P7+97+fL3/5y2TWLuIHH3xwyGONHj2avXv3ArB7925OOOEExo0bxyOPPML69eubX3wdA7IkSW2gl3SRniqvq6uLSy+99GXtV155JXv37mX69OmcdtppXHnllUMea9myZUyfPp0LL7yQefPmsW/fPqZOncry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\n", + "image/png": "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eFJK5JvzrJy6soqFSaqmlpYWGhsb2b9/f7VL6bWGDx/OlClTGDJkSEnjSwl4JgM72h03Am89asxMgIj4T6AG+EJK6e6jJ4qIVcAqgGnTppVUoCRJkqQ+rr4e7n7trwe/fem3vHzgZRssSwNYY2MjY8aMYfr06UREtcvpdVJKNDc309jYyIwZM0p6TVZNlgcDdcA5wMXAdyJiXAcFrk4pLUgpLZg0aVJGby1JkiSpV2togOeegz17gNcaLPuIljRw7d+/n9raWsOdY4gIamtru7TCqZSA5xlgarvjKcVz7TUC61JKLSmlp4AnKAQ+kiRJkga6oxot55uLW6TXuoJHGsgMd46vq38+pQQ8vwLqImJGRAwFVgDrjhrzIwqrd4iIiRQe2drapUokSZIk9U9tW6UXA55cU47RQ0fzpjFvqmJRkga6iODSSy89fNza2sqkSZNYunRppu8zevToTOc7lk4DnpRSK/Bx4B5gE3BrSumxiLgmIpYVh90DNEfE48DPgP+VUmquVNGSJEmS+pBTT4XBgw/vpJVvzlNfW++/3kuqqlGjRvHoo4+yb98+AO69914mT55c5aq6r6QePCmlu1JKM1NKp6aUri2e+3xKaV3x55RS+tOU0uyU0pkppVsqWbQkSZKkPmTIEDjllMMBj1ukS+otlixZwp133gnAmjVruPjiiw9f++Uvf8nZZ5/NvHnzeNvb3ka+uArxscceY+HChcydO5c5c+awefNmAC644ALmz5/P6aefzurVq1/3Xk1NTZx99tmH3y9rpeyiJUmSJEnlKW6VvvfAXrbv2W7/HUmv+dSn4JFHsp1z7lz42tc6HbZixQquueYali5dysaNG1m5ciXr168HoKGhgfXr1zN48GDuu+8+/uIv/oLbb7+db33rW3zyk5/kkksu4cCBAxw8eBCAm266iQkTJrBv3z7OOussPvjBD1JbWwvAzp07WbZsGV/84hd5z3vek+3vWmTAI0mSJKnyilulb97lDlqSeo85c+awbds21qxZw5IlS464tmfPHj760Y+yefNmIoKWlhYAzj77bK699loaGxu58MILqasr7DF1/fXXc8cddwCwY8cONm/eTG1tLS0tLZx33nnceOONvOtd76rY72LAI0mSJKnyGhrgwAFyuZ8XDg14JLUpYaVNJS1btoxPf/rT3H///TQ3v9ZO+KqrruLd7343d9xxB9u2beOcc84B4MMf/jBvfetbufPOO1myZAnf/va3GTRoEPfddx8PPPAAI0eO5Jxzzjm8xfngwYOZP38+99xzT0UDnpJ68EiSJElSWYpbpee3/pIgOG3CaVUuSJIKVq5cydVXX82ZZ555xPk9e/Ycbrp88803Hz6/detWTjnlFC6//HKWL1/Oxo0b2bNnD+PHj2fkyJHkcjkefPDBw+MjgptuuolcLseXv/zliv0eBjySJEmSKq+4VXrud48zfdx0RgwZUeWCJKlgypQpXH755a87f8UVV/CZz3yGefPm0draevj8rbfeyhlnnMHcuXN59NFH+chHPsLixYtpbW1l1qxZXHnllSxatOiIuWpqalizZg0//elP+eY3v1mR3yNSShWZuDMLFixIGzZsqMp7S5IkSaqCSZN4y6rEibPP4t8u+bdqVyOpijZt2sSsWbOqXUavd4w/p+horCt4JEmSJPWIQ/UzydfspqHW/juSlDUDHkmSJEk9ovH0qbxSc4j6iW6RLklZM+CRJEmS1CPyM8YA0DBscpUrkaT+x4BHkiRJUo/ITSr89aP++Q7bR0iSymDAI0mSJKlH5Efs5YT9cNLWXdUuRZL6HQMeSZIkST0i1/IsDc1BPPFEtUuRpH7HgEeSJElSj8g//wT1LSdALlftUiSJiODSSy89fNza2sqkSZNYunRpt+f80pe+VNK40aNHd/s9jsWAR5IkSVLFvfTqSzS+2EjD0DdBPl/tciSJUaNG8eijj7Jv3z4A7r33XiZPLq8JfKkBTyUY8EiSJEmquCeaC49l1U+shy1boKWlyhVJEixZsoQ777wTgDVr1nDxxRcfvrZ3715WrlzJwoULmTdvHmvXrgXg5ptv5sILL2Tx4sXU1dVxxRVXAHDllVeyb98+5s6dyyWXXALABRdcwPz58zn99NNZvXr1Ee/92c9+lje/+c0sWrSInTt3lv27DC57BkmSJEnqRL65sGqn4eQF0PIjeOopmDmzukVJ6hU+dfeneOS5RzKdc+5Jc/na4q91Om7FihVcc801LF26lI0bN7Jy5UrWr18PwLXXXsu5557LTTfdxAsvvMDChQs5//zzAXjkkUd4+OGHGTZsGPX19XziE5/guuuu44YbbuCRR177XW666SYmTJjAvn37OOuss/jgBz9IbW0te/fuZdGiRVx77bVcccUV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\n", "text/plain": [ - "
" + "
" ] }, "metadata": { @@ -517,8 +702,8 @@ "source": [ "x_berat = RangeSubjektif(min_berat , max_berat , 1)\n", "r_berat = np.array([\n", - " [min_berat,min_berat,mid_berat,mid_berat],\n", - " [mid_berat,mid_berat,max_berat,max_berat]\n", + " [min_berat,min_berat,mid_berat,mid_berat+10],\n", + " [mid_berat,mid_berat+10,max_berat,max_berat]\n", "])\n", "\n", "lo_berat , hi_berat = FuzzyShow1(r_berat , x_berat, 'Berat (kg)')" @@ -526,7 +711,7 @@ }, { "cell_type": "code", - "execution_count": 65, + "execution_count": 383, "id": "84aaee1a", "metadata": {}, "outputs": [ @@ -555,7 +740,7 @@ }, { "cell_type": "code", - "execution_count": 66, + "execution_count": 384, "id": "deeec0dc", "metadata": {}, "outputs": [ @@ -584,13 +769,13 @@ }, { "cell_type": "code", - "execution_count": 67, + "execution_count": 385, "id": "d3c1bed7", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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0rhxY95++23q1atHUlIS+fn5e7fx888/U7NmTbZv3865557Lm2++uffivaysLLp06cLQoUM58sgjueeee/bJWLyfiin15Lhu2BSpBPo368/THZ/mtS9fo9+sfuzeszv4N2/YAKmp3gxjOTkq3hLVzj77bNatW8fkyZPp2LHj715btGgRDz/8MM2aNeOiiy5ix44drF+/HoDU1FSqV69OQkICp59+Ot98802p63/yySf37mVv2LCBr776CoD4+Pi959pbtGjBunXrDvuz6KZNkUrihnNvIG9nHsMWDyMpLokxXcaUfdXrxo2QlgZbtsAbb8Dppx+4vUgQytpTLm9du3bl9ttvZ8mSJWze/P+XaznnmDFjBo0bN/5d+2XLllG1atW9z2NjYykqKtpnvUuWLCEnJ4f33nuPatWq7f0jACAuLm7v79v+3n+wtAcuUoncef6d3N32bl746AX+vPDPHPAU2s8/Q3o65ObCvHlwzjnhCypSjgYOHMh9993HWWed9bvl7du356mnntr7e/HRRx+Vua64uDh27doFwNatW6lRowbVqlXjiy++4P33y3duAu2Bi1Qyf734r+TtzGP0stEkV01mxMUj9m2UlwcdOsDq1TB3LvzhD+EPKlJO6taty80337zP8nvvvZchQ4Zw9tlns2fPHho0aMCcOQeeqnfw4MGcffbZnHPOOYwdO5bnnnuOJk2a0LhxY1q1alVeHwHQRWwildIet4drsq5h7Mdj+Xva37njD3f8/4vbtnlDo779NsyY4d3zLXKY9nNxlpRwMBexaQ9cpBKKsRjGdBlDwa4ChuYMJSk+ievPvR4KC71JSd56yxvbXMVbJGKpgItUUrExsUzoNoGCXQXcMO8GkmOOoM/f5nijq40ZA8XujxWRyKMCLlKJxcXGMe3yaXSe2JE9g66CT/Dm9r7mGr+jiUgZdBW6SCWXEFuVecsa0e8TeODiGBZ20a1iItFABVykshs+nPjnxrBjyI3MuuIsur3Sjbe+ecvvVCJSBhVwkcrsoYfg4Yfh2mtJeOxJFvZdxIlHnUjnSZ1Z/u1yv9OJyAGogItUVk8+CXffDb17wzPPgBnHJB5Ddt9salWrRcbLGXy66VO/U4qETHlMJ1qa8pg6tDQq4CKV0dixcMstcMklMG4cxPz/V0HdI+uyuN9iEqokkDY+ja82f+VbTJFQKo/p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\n", "text/plain": [ "
" ] @@ -613,7 +798,7 @@ }, { "cell_type": "code", - "execution_count": 68, + "execution_count": 386, "id": "879f64ec", "metadata": {}, "outputs": [ @@ -621,22 +806,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "(0.0, 1.0)\n", - "(0.0, 0.0)\n", - "(0.0, 1.0)\n", - "(0.0, 1.0)\n", - "(0.0, 1.0)\n", - "(0.0, 1.0)\n", - "(0.0, 1.0)\n", - "(0.0, 1.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n" + "[(0.0, 1.0), (0.0, 0.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0)]\n" ] } ], @@ -647,15 +817,19 @@ " return mini , hi\n", " \n", "i = 0\n", + "anggota_usia = []\n", "for usia in _data_usia:\n", " ini_dia = FungsiKeanggotaan(x_usia,lo_usia,hi_usia,usia)\n", - " print(ini_dia)\n", - " " + " \n", + " anggota_usia.append(ini_dia)\n", + " i = i+1\n", + "# print(ini_dia) \n", + "print(anggota_usia)" ] }, { "cell_type": "code", - "execution_count": 69, + "execution_count": 387, "id": "d6c3a52d", "metadata": {}, "outputs": [ @@ -663,36 +837,23 @@ "name": "stdout", "output_type": "stream", "text": [ - "(0.0, 1.0)\n", - "(0.0, 1.0)\n", - "(0.0, 1.0)\n", - "(0.0, 1.0)\n", - "(0.0, 1.0)\n", - "(0.0, 1.0)\n", - "(0.0, 1.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n", - "(0.0, 1.0)\n", - "(0.0, 0.0)\n", - "(1.0, 0.0)\n" + "[(1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (0.75, 0.25), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (1.0, 0.0), (0.0, 0.0), (0.0, 1.0)]\n" ] } ], "source": [ - "i = 0\n", + "anggota_berat = []\n", "for berat in _data_berat:\n", - " ini_dia = FungsiKeanggotaan(x_berat,hi_berat,lo_berat,berat)\n", - " print(ini_dia)\n", + " ini_dia = FungsiKeanggotaan(x_berat,lo_berat,hi_berat,berat)\n", + " anggota_berat.append(ini_dia)\n", + " \n", + "print(anggota_berat)\n", " " ] }, { "cell_type": "code", - "execution_count": 70, + "execution_count": 445, "id": "bd724cff", "metadata": {}, "outputs": [ @@ -715,21 +876,23 @@ "(1.0, 0.0)\n", "(1.0, 0.0)\n", "(1.0, 0.0)\n", - "(1.0, 0.0)\n" + "(1.0, 0.0)\n", + "[(0.0, 1.0), (1.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (1.0, 0.5), (1.0, 1.0), (0.0, 0.0), (0.0, 1.0), (1.0, 1.0), (1.0, 1.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0)]\n" ] } ], "source": [ - "i = 0\n", + "anggota_keliling = []\n", "for keliling in _data_keliling:\n", " ini_dia = FungsiKeanggotaan(x_keliling,lo_keliling,hi_keliling,keliling)\n", + " anggota_keliling.append(ini_dia)\n", " print(ini_dia)\n", - " " + "print(anggota_keliling) " ] }, { "cell_type": "code", - "execution_count": 71, + "execution_count": 444, "id": "0370f3ff", "metadata": {}, "outputs": [ @@ -752,20 +915,23 @@ "(1.0, 0.0)\n", "(0.6000000000000001, 0.3999999999999999)\n", "(0.7000000000000002, 0.2999999999999998)\n", - "(0.5, 0.5)\n" + "(0.5, 0.5)\n", + "[(0.0, 1.0), (0.5, 0.5), (1.0, 0.0), (0.0, 0.0), (0.2999999999999998, 0.7000000000000002), (0.0, 1.0), (1.0, 0.0), (0.5, 0.5), (0.0, 1.0), (0.2999999999999998, 0.7000000000000002), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (0.6000000000000001, 0.3999999999999999), (0.7000000000000002, 0.2999999999999998), (0.5, 0.5)]\n" ] } ], "source": [ - "i = 0\n", + "anggota_ukuran_batang = []\n", "for ukuran_batang in _data_ukuran_batang:\n", " ini_dia = FungsiKeanggotaan(x_ukuran_batang,lo_ukuran_batang,hi_ukuran_batang,ukuran_batang)\n", - " print(ini_dia)" + " print(ini_dia)\n", + " anggota_ukuran_batang.append(ini_dia)\n", + "print(anggota_ukuran_batang)" ] }, { "cell_type": "code", - "execution_count": 72, + "execution_count": 443, "id": "5e3c20cf", "metadata": {}, "outputs": [ @@ -774,34 +940,37 @@ "output_type": "stream", "text": [ "(0.0, 0.0)\n", - "(0.0, 0.0)\n", - "(0.0, 0.0)\n", - "(0.0, 0.0)\n", - "(0.0, 0.0)\n", - "(0.0, 0.0)\n", - "(0.0, 0.0)\n", - "(0.0, 0.0)\n", - "(0.0, 0.0)\n", - "(0.0, 0.0)\n", + "(0.0, 1.0)\n", + "(0.0, 1.0)\n", + "(0.0, 1.0)\n", + "(0.0, 1.0)\n", + "(0.0, 1.0)\n", + "(0.0, 1.0)\n", + "(0.0, 1.0)\n", + "(0.0, 1.0)\n", + "(0.0, 1.0)\n", "(1.0, 0.0)\n", "(1.0, 0.0)\n", "(1.0, 0.0)\n", "(0.5, 0.5)\n", "(1.0, 0.0)\n", - "(0.0, 1.0)\n" + "(0.0, 1.0)\n", + "[(0.0, 0.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (0.5, 0.5), (1.0, 0.0), (0.0, 1.0)]\n" ] } ], "source": [ - "i = 0\n", + "anggota_jarak_duri = []\n", "for jarak_duri in _data_jarak_duri:\n", " ini_dia = FungsiKeanggotaan(x_jarak_duri,lo_jarak_duri,hi_jarak_duri,jarak_duri)\n", - " print(ini_dia)" + " anggota_jarak_duri.append(ini_dia)\n", + " print(ini_dia)\n", + "print(anggota_jarak_duri)" ] }, { "cell_type": "code", - "execution_count": 122, + "execution_count": 403, "id": "aa25537e", "metadata": {}, "outputs": [ @@ -1233,77 +1402,438 @@ "# 'Jarak Duri' : 'Rendah', 'Keterangan' : 'Mentah'}, \n", "# ] \n", "\n", + "# df = data_rule\n", + "\n", + "# df.to_csv('out.csv')\n", "# Creates DataFrame. \n", "# df = pd.DataFrame(data_rule) \n", + "# df.to_csv('out.csv',index=False)\n", "# df.to_excel(\"output.xlsx\")\n", "df = pd.read_csv(\"dataset/rule.csv\")\n", + "# vals = df.values\n", + "rule_length = len(df.index)\n", + "# list_rule = vals.tolist()\n", + "list_rule = df\n", " \n", "# Print the data \n", "# df\n", - "from IPython.display import display, HTML\n", + "# from IPython.display import display, HTML\n", "display(HTML(\"

\"))\n", "display(HTML(df.to_html(index=False)))" ] }, { "cell_type": "code", - "execution_count": 86, - "id": "b4a51b4d", + "execution_count": 392, + "id": "0cc2f82f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "

" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
FungsiNama VariabelSemesta PembicaraanHimpunan FuzzyDomain
InputUsia[ 9 , 18 ]Rendah[ 9 , 14.0 ]
Tinggi[ 13.0 , 18 ]
Berat[ 505 , 950 ]Rendah[ 505 , 827.5 ]
Tinggi[ 807.5 , 950 ]
Keliling[ 30.0 , 46.0 ]Rendah[ 30.0 , 43.0 ]
Tinggi[ 41.0 , 46.0 ]
Ukurang Batang[ 2.5 , 5.0 ]Rendah[ 2.5 , 4.5 ]
Tinggi[ 3.5 , 5.0 ]
Jarak Duri[ 7.5 , 10.9 ]Rendah[ 7.5 , 9.95 ]
Tinggi[ 8.95 , 10.9 ]
OutputKeterangan[ 0 , 1 ]Rendah (Mentah)[ 0 , 0.5 ]
Tinggi (Masak)[ 0.5 , 1 ]
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# import itertools as it\n", + "\n", + "\n", + "# my_dict={'Usia':['R','T'],'Berat':['R','T'],'Keliling':['R','T'],'Ukuran Batang':['R','T'],'Jarak Duri':['R','T']}\n", + "# allNames = sorted(my_dict)\n", + "# combinations = it.product(*(my_dict[Name] for Name in allNames))\n", + "# counter = 0\n", + "# for combi in combinations:\n", + "# print(combi)\n", + "# counter = counter + 1\n", + "# print(counter)\n", + "from IPython.display import display, HTML\n", + "display(HTML(\"

\"))\n", + "display(HTML(himpunan_fuzzy.to_html(index=False)))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 455, + "id": "dc3379a4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "('R', 'R', 'R', 'R', 'R')\n", - "('R', 'R', 'R', 'R', 'T')\n", - "('R', 'R', 'R', 'T', 'R')\n", - "('R', 'R', 'R', 'T', 'T')\n", - "('R', 'R', 'T', 'R', 'R')\n", - "('R', 'R', 'T', 'R', 'T')\n", - "('R', 'R', 'T', 'T', 'R')\n", - "('R', 'R', 'T', 'T', 'T')\n", - "('R', 'T', 'R', 'R', 'R')\n", - "('R', 'T', 'R', 'R', 'T')\n", - "('R', 'T', 'R', 'T', 'R')\n", - "('R', 'T', 'R', 'T', 'T')\n", - "('R', 'T', 'T', 'R', 'R')\n", - "('R', 'T', 'T', 'R', 'T')\n", - "('R', 'T', 'T', 'T', 'R')\n", - "('R', 'T', 'T', 'T', 'T')\n", - "('T', 'R', 'R', 'R', 'R')\n", - "('T', 'R', 'R', 'R', 'T')\n", - "('T', 'R', 'R', 'T', 'R')\n", - "('T', 'R', 'R', 'T', 'T')\n", - "('T', 'R', 'T', 'R', 'R')\n", - "('T', 'R', 'T', 'R', 'T')\n", - "('T', 'R', 'T', 'T', 'R')\n", - "('T', 'R', 'T', 'T', 'T')\n", - "('T', 'T', 'R', 'R', 'R')\n", - "('T', 'T', 'R', 'R', 'T')\n", - "('T', 'T', 'R', 'T', 'R')\n", - "('T', 'T', 'R', 'T', 'T')\n", - "('T', 'T', 'T', 'R', 'R')\n", - "('T', 'T', 'T', 'R', 'T')\n", - "('T', 'T', 'T', 'T', 'R')\n", - "('T', 'T', 'T', 'T', 'T')\n", - "32\n" + "1\n", + "0\n", + "1\n", + "1\n", + "1\n", + "1\n", + "1\n", + "1\n", + "0\n", + "0\n", + "0\n", + "0\n", + "0\n", + "0\n", + "0\n", + "0\n" ] + }, + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NoUsiaBeratKelilingUkuran BatangJarak DuriVariable LinguisticFuzzy Tsukamoto
0TinggiRendahTinggiTinggiRendahMasak()
1RendahRendahTinggiTinggiTinggiMasak()
2TinggiRendahTinggiRendahTinggiMasak()
3TinggiRendahTinggiTinggiTinggiMasak()
4TinggiRendahTinggiTinggiTinggiMasak()
5TinggiRendahRendahTinggiTinggiMasak()
6TinggiRendahTinggiRendahTinggiMasak()
7TinggiRendahTinggiTinggiTinggiMasak()
8RendahTinggiTinggiTinggiTinggiMentah()
9RendahTinggiTinggiTinggiTinggiMentah()
10RendahTinggiTinggiRendahRendahMentah()
11RendahTinggiRendahRendahRendahMentah()
12RendahTinggiRendahRendahRendahMentah()
13RendahRendahRendahRendahRendahMentah()
14RendahRendahRendahRendahRendahMentah()
15RendahTinggiRendahTinggiTinggiMentah()
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "import itertools as it\n", - "\n", - "\n", - "my_dict={'Usia':['R','T'],'Berat':['R','T'],'Keliling':['R','T'],'Ukuran Batang':['R','T'],'Jarak Duri':['R','T']}\n", - "allNames = sorted(my_dict)\n", - "combinations = it.product(*(my_dict[Name] for Name in allNames))\n", - "counter = 0\n", - "for combi in combinations:\n", - " print(combi)\n", - " counter = counter + 1\n", - "print(counter)\n" + "# print(str(list_rule.iloc[[0]]['Usia']))\n", + "# print(list_rule.at[0,'Usia'])\n", + "# haha = \"ngam\" if str(list_rule.at[0,'Usia']) == 'Tinggi' else \"tidak\"\n", + "# print(haha)\n", + "hitungan_fuzzy_tsukamoto = []\n", + "# ii = 1\n", + "for e in range(i):\n", + " ket_usia = \"Tinggi\" if anggota_usia[e][0] < anggota_usia[e][1] else \"Rendah\"\n", + " ket_berat = \"Tinggi\" if anggota_berat[e][0] < anggota_berat[e][1] else \"Rendah\" \n", + " ket_keliling = \"Tinggi\" if anggota_keliling[e][0] <= anggota_keliling[e][1] else \"Rendah\"\n", + " ket_ukuran_batang = \"Tinggi\" if anggota_ukuran_batang[e][0] <= anggota_ukuran_batang[e][1] else \"Rendah\"\n", + " ket_jarak_duri = \"Tinggi\" if anggota_jarak_duri[e][0] < anggota_jarak_duri[e][1] else \"Rendah\"\n", + " \n", + " data_usia = 1 if anggota_usia[e][0] < anggota_usia[e][1] else 0\n", + " data_berat = 1 if anggota_berat[e][0] < anggota_berat[e][1] else 0\n", + " data_keliling = 1 if anggota_keliling[e][0] <= anggota_keliling[e][1] else 0\n", + " data_ukuran_batang = 1 if anggota_ukuran_batang[e][0] <= anggota_ukuran_batang[e][1] else 0\n", + " data_jarak_duri = 1 if anggota_jarak_duri[e][0] < anggota_jarak_duri[e][1] else 0\n", + " \n", + " print(data_usia)\n", + " \n", + " keterangan = None\n", + " for n in range(rule_length):\n", + " if str(list_rule.at[n,'Usia']) == ket_usia and str(list_rule.at[n,'Berat']) == ket_berat and str(list_rule.at[n,'Keliling']) == ket_keliling and str(list_rule.at[n,'Ukuran Batang']) == ket_ukuran_batang and str(list_rule.at[n,'Jarak Duri']) == ket_jarak_duri:\n", + " keterangan = str(list_rule.at[n,'Keterangan'])\n", + " \n", + "# print(keterangan)\n", + " \n", + "# res = next((sub for sub in test_list if sub['is'] == 7), None)\n", + " \n", + " \n", + " data = {\"No\" : e, \"Usia\" : ket_usia, \"Berat\" : ket_berat, \"Keliling\" : ket_keliling, \n", + " \"Ukuran Batang\" : ket_ukuran_batang, \"Jarak Duri\" : ket_jarak_duri ,\"Variable Linguistic\" : keterangan,\n", + " \"Fuzzy Tsukamoto\" : ()\n", + " }\n", + " hitungan_fuzzy_tsukamoto.append(data)\n", + " \n", + " \n", + "# ii = ii +1\n", + "# print(hitungan_fuzzy_tsukamoto)\n", + "df = pd.DataFrame(hitungan_fuzzy_tsukamoto) \n", + "display(HTML(df.to_html(index=False)))" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "25fc43bc", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/dataset/dataset.csv b/dataset/dataset.csv index ef938cc..fda7bb5 100644 --- a/dataset/dataset.csv +++ b/dataset/dataset.csv @@ -1,12 +1,12 @@ Usia,Berat,Keliling,Ukuran_batang,Jarak_duri,Keterangan -14,753,44,4.5,10,Matang -18,505,42,4,10,Matang -17,750,43,3,10,Matang -15,755,44,5,10,Matang -14,815,45,4.2,10,Matang -17,660,41.5,4.5,10,Matang -15,700,42,3,10,Matang -16,820,46,4,10,Matang +14,753,44,4.5,10.9,Masak +18,505,42,4,10,Masak +17,750,43,3,10,Masak +15,755,44,5,10,Masak +14,815,45,4.2,10,Masak +17,660,41.5,4.5,10,Masak +15,700,42,3,10,Masak +16,820,46,4,10,Masak 12,850,44,4.5,10,Mentah 11,830,42,4.2,10,Mentah 10,900,42,3,8.5,Mentah diff --git a/dataset/himpunan_fuzzy.csv b/dataset/himpunan_fuzzy.csv new file mode 100644 index 0000000..1bf3aa3 --- /dev/null +++ b/dataset/himpunan_fuzzy.csv @@ -0,0 +1,13 @@ +Fungsi,Nama Variabel,Semesta Pembicaraan, Himpunan Fuzzy,Domain +Input,Usia,Sini semesta usia,Rendah,domain rendah usia +Input,Usia,Sini semesta usia,Tinggi,domain tinggi usia +Input,Berat,Sini semesta berat,Rendah,domain rendah berat +Input,Berat,Sini semesta berat,Tinggi,domain tinggi berat +Input,Keliling,Sini semesta keliling,Rendah,domain rendah keliling +Input,Keliling,Sini semesta keliling,Tinggi,domain tinggi keliling +Input,Ukurang Batang,Sini semesta ukuran batang,Rendah,domain rendah ukuran batang +Input,Ukurang Batang,Sini semesta ukuran batang,Tinggi,domain tinggi ukuran batang +Input,Jarak Duri,Sini semesta jarak duri,Rendah,domain rendah jarak duri +Input,Jarak Duri,Sini semesta jarak duri,Tinggi,domain tinggi jarak duri +Output,Keterangan,Sini semesta keterangan,Rendah (Mentah),domain rendah keterangan +Output,Keterangan,Sini semesta keterangan,Tinggi (Masak),domain tinggi keterangan diff --git a/out.csv b/out.csv new file mode 100644 index 0000000..f1a5a13 --- /dev/null +++ b/out.csv @@ -0,0 +1,33 @@ +No,Rule,Usia,Berat,Keliling,Ukuran Batang,Jarak Duri,Keterangan +1,R1,Tinggi,Tinggi,Tinggi,Tinggi,Tinggi,Masak +2,R2,Tinggi,Tinggi,Tinggi,Tinggi,Rendah,Masak +3,R3,Tinggi,Tinggi,Tinggi,Rendah,Tinggi,Masak +4,R4,Tinggi,Tinggi,Tinggi,Rendah,Rendah,Masak +5,R5,Tinggi,Tinggi,Rendah,Tinggi,Tinggi,Masak +6,R6,Tinggi,Tinggi,Rendah,Tinggi,Rendah,Masak +7,R7,Tinggi,Tinggi,Rendah,Rendah,Tinggi,Masak +8,R8,Tinggi,Tinggi,Rendah,Rendah,Rendah,Mentah +9,R9,Tinggi,Rendah,Tinggi,Tinggi,Tinggi,Masak +10,R10,Tinggi,Rendah,Tinggi,Tinggi,Rendah,Masak +11,R11,Tinggi,Rendah,Tinggi,Rendah,Tinggi,Masak +12,R12,Tinggi,Rendah,Tinggi,Rendah,Rendah,Masak +13,R13,Tinggi,Rendah,Rendah,Tinggi,Tinggi,Masak +14,R14,Tinggi,Rendah,Rendah,Tinggi,Rendah,Masak +15,R15,Tinggi,Rendah,Rendah,Rendah,Tinggi,Masak +16,R16,Tinggi,Rendah,Rendah,Rendah,Rendah,Masak +17,R17,Rendah,Tinggi,Tinggi,Tinggi,Tinggi,Mentah +18,R18,Rendah,Tinggi,Tinggi,Tinggi,Rendah,Mentah +19,R19,Rendah,Tinggi,Tinggi,Rendah,Tinggi,Mentah +20,R20,Rendah,Tinggi,Tinggi,Rendah,Rendah,Mentah +21,R21,Rendah,Tinggi,Rendah,Tinggi,Tinggi,Mentah +22,R22,Rendah,Tinggi,Rendah,Tinggi,Rendah,Mentah +23,R23,Rendah,Tinggi,Rendah,Rendah,Tinggi,Mentah +24,R24,Rendah,Tinggi,Rendah,Rendah,Rendah,Mentah +25,R25,Rendah,Rendah,Tinggi,Tinggi,Tinggi,Masak +26,R26,Rendah,Rendah,Tinggi,Tinggi,Rendah,Mentah +27,R27,Rendah,Rendah,Tinggi,Rendah,Tinggi,Mentah +28,R28,Rendah,Rendah,Tinggi,Rendah,Rendah,Mentah +29,R29,Rendah,Rendah,Rendah,Tinggi,Tinggi,Mentah +30,R30,Rendah,Rendah,Rendah,Tinggi,Rendah,Mentah +31,R31,Rendah,Rendah,Rendah,Rendah,Tinggi,Mentah +32,R32,Rendah,Rendah,Rendah,Rendah,Rendah,Mentah diff --git a/pengujian_fuzzy.ipynb b/pengujian_fuzzy.ipynb index a937b0f..916843a 100644 --- a/pengujian_fuzzy.ipynb +++ b/pengujian_fuzzy.ipynb @@ -11,13 +11,14 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 462, "id": "721c3e36", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", - "import pandas as pd" + "import pandas as pd\n", + "import asyncio" ] }, { @@ -30,7 +31,7 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 463, "id": "e7835698", "metadata": {}, "outputs": [ @@ -70,8 +71,8 @@ " 753\n", " 44.0\n", " 4.5\n", - " 10.0\n", - " Matang\n", + " 10.9\n", + " Masak\n", " \n", " \n", " 1\n", @@ -80,7 +81,7 @@ " 42.0\n", " 4.0\n", " 10.0\n", - " Matang\n", + " Masak\n", " \n", " \n", " 2\n", @@ -89,7 +90,7 @@ " 43.0\n", " 3.0\n", " 10.0\n", - " Matang\n", + " Masak\n", " \n", " \n", " 3\n", @@ -98,7 +99,7 @@ " 44.0\n", " 5.0\n", " 10.0\n", - " Matang\n", + " Masak\n", " \n", " \n", " 4\n", @@ -107,7 +108,7 @@ " 45.0\n", " 4.2\n", " 10.0\n", - " Matang\n", + " Masak\n", " \n", " \n", " 5\n", @@ -116,7 +117,7 @@ " 41.5\n", " 4.5\n", " 10.0\n", - " Matang\n", + " Masak\n", " \n", " \n", " 6\n", @@ -125,7 +126,7 @@ " 42.0\n", " 3.0\n", " 10.0\n", - " Matang\n", + " Masak\n", " \n", " \n", " 7\n", @@ -134,7 +135,7 @@ " 46.0\n", " 4.0\n", " 10.0\n", - " Matang\n", + " Masak\n", " \n", " \n", " 8\n", @@ -214,14 +215,14 @@ ], "text/plain": [ " Usia Berat Keliling Ukuran_batang Jarak_duri Keterangan\n", - "0 14 753 44.0 4.5 10.0 Matang\n", - "1 18 505 42.0 4.0 10.0 Matang\n", - "2 17 750 43.0 3.0 10.0 Matang\n", - "3 15 755 44.0 5.0 10.0 Matang\n", - "4 14 815 45.0 4.2 10.0 Matang\n", - "5 17 660 41.5 4.5 10.0 Matang\n", - "6 15 700 42.0 3.0 10.0 Matang\n", - "7 16 820 46.0 4.0 10.0 Matang\n", + "0 14 753 44.0 4.5 10.9 Masak\n", + "1 18 505 42.0 4.0 10.0 Masak\n", + "2 17 750 43.0 3.0 10.0 Masak\n", + "3 15 755 44.0 5.0 10.0 Masak\n", + "4 14 815 45.0 4.2 10.0 Masak\n", + "5 17 660 41.5 4.5 10.0 Masak\n", + "6 15 700 42.0 3.0 10.0 Masak\n", + "7 16 820 46.0 4.0 10.0 Masak\n", "8 12 850 44.0 4.5 10.0 Mentah\n", "9 11 830 42.0 4.2 10.0 Mentah\n", "10 10 900 42.0 3.0 8.5 Mentah\n", @@ -232,7 +233,7 @@ "15 13 860 40.0 4.0 9.5 Mentah" ] }, - "execution_count": 55, + "execution_count": 463, "metadata": {}, "output_type": "execute_result" } @@ -254,7 +255,7 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 464, "id": "f0789ec2", "metadata": {}, "outputs": [], @@ -265,7 +266,7 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 465, "id": "f3f362e1", "metadata": {}, "outputs": [ @@ -292,7 +293,7 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 466, "id": "9290d188", "metadata": {}, "outputs": [ @@ -317,7 +318,7 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 467, "id": "16e441bc", "metadata": {}, "outputs": [ @@ -342,7 +343,7 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": 468, "id": "d51fab67", "metadata": {}, "outputs": [ @@ -367,7 +368,7 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": 469, "id": "54b442e1", "metadata": {}, "outputs": [ @@ -375,7 +376,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "10.0\n" + "10.9\n" ] } ], @@ -391,6 +392,190 @@ "print(max_jarak_duri)" ] }, + { + "cell_type": "code", + "execution_count": 470, + "id": "261f23e2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "

" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
FungsiNama VariabelSemesta PembicaraanHimpunan FuzzyDomain
InputUsia[ 9 , 18 ]Rendah[ 9 , 14.0 ]
Tinggi[ 13.0 , 18 ]
Berat[ 505 , 950 ]Rendah[ 505 , 827.5 ]
Tinggi[ 807.5 , 950 ]
Keliling[ 30.0 , 46.0 ]Rendah[ 30.0 , 43.0 ]
Tinggi[ 41.0 , 46.0 ]
Ukurang Batang[ 2.5 , 5.0 ]Rendah[ 2.5 , 4.5 ]
Tinggi[ 3.5 , 5.0 ]
Jarak Duri[ 7.5 , 10.9 ]Rendah[ 7.5 , 9.95 ]
Tinggi[ 8.95 , 10.9 ]
OutputKeterangan[ 0 , 1 ]Rendah (Mentah)[ 0 , 0.5 ]
Tinggi (Masak)[ 0.5 , 1 ]
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "himpunan_fuzzy = pd.read_csv(\"dataset/himpunan_fuzzy.csv\")\n", + "\n", + "# Fuzzykasi Usia\n", + "himpunan_fuzzy.loc[0, 'Semesta Pembicaraan'] = f\"[ {min_usia} , {max_usia} ]\" # Semesta pembicaraan (Rendah) Usia\n", + "himpunan_fuzzy.loc[1, 'Semesta Pembicaraan'] = f\"[ {min_usia} , {max_usia} ]\" # Semesta pembicaraan (Tinggi) Usia\n", + "himpunan_fuzzy.loc[0, 'Domain'] = f\"[ {min_usia} , {mid_usia + 0.5} ]\" # Domain (Rendah) Usia\n", + "himpunan_fuzzy.loc[1, 'Domain'] = f\"[ {mid_usia - 0.5} , {max_usia} ]\" # Domain pembicaraan (Tinggi) Usia\n", + "\n", + "# Fuzzykasi Berat\n", + "himpunan_fuzzy.loc[2, 'Semesta Pembicaraan'] = f\"[ {min_berat} , {max_berat} ]\" # Semesta pembicaraan (Rendah) Berat\n", + "himpunan_fuzzy.loc[3, 'Semesta Pembicaraan'] = f\"[ {min_berat} , {max_berat} ]\" # Semesta pembicaraan (Tinggi) Berat\n", + "himpunan_fuzzy.loc[2, 'Domain'] = f\"[ {min_berat} , {mid_berat + 10} ]\" # Domain (Rendah) Berat\n", + "himpunan_fuzzy.loc[3, 'Domain'] = f\"[ {mid_berat - 10} , {max_berat} ]\" # Domain pembicaraan (Tinggi) Berat\n", + "\n", + "# Fuzzykasi Keliling\n", + "himpunan_fuzzy.loc[4, 'Semesta Pembicaraan'] = f\"[ {min_keliling} , {max_keliling} ]\" # Semesta pembicaraan (Rendah) Keliling\n", + "himpunan_fuzzy.loc[5, 'Semesta Pembicaraan'] = f\"[ {min_keliling} , {max_keliling} ]\" # Semesta pembicaraan (Tinggi) Keliling\n", + "himpunan_fuzzy.loc[4, 'Domain'] = f\"[ {min_keliling} , {mid_keliling + 1} ]\" # Domain (Rendah) Keliling\n", + "himpunan_fuzzy.loc[5, 'Domain'] = f\"[ {mid_keliling - 1} , {max_keliling} ]\" # Domain pembicaraan (Tinggi) Keliling\n", + "\n", + "# Fuzzykasi Keliling\n", + "himpunan_fuzzy.loc[4, 'Semesta Pembicaraan'] = f\"[ {min_keliling} , {max_keliling} ]\" # Semesta pembicaraan (Rendah) Keliling\n", + "himpunan_fuzzy.loc[5, 'Semesta Pembicaraan'] = f\"[ {min_keliling} , {max_keliling} ]\" # Semesta pembicaraan (Tinggi) Keliling\n", + "himpunan_fuzzy.loc[4, 'Domain'] = f\"[ {min_keliling} , {mid_keliling + 1} ]\" # Domain (Rendah) Keliling\n", + "himpunan_fuzzy.loc[5, 'Domain'] = f\"[ {mid_keliling - 1} , {max_keliling} ]\" # Domain pembicaraan (Tinggi) Keliling\n", + "\n", + "# Fuzzykasi Ukuran Batang\n", + "himpunan_fuzzy.loc[6, 'Semesta Pembicaraan'] = f\"[ {min_ukuran_batang} , {max_ukuran_batang} ]\" # Semesta pembicaraan (Rendah) Ukuran Batang\n", + "himpunan_fuzzy.loc[7, 'Semesta Pembicaraan'] = f\"[ {min_ukuran_batang} , {max_ukuran_batang} ]\" # Semesta pembicaraan (Tinggi) Ukuran Batang\n", + "himpunan_fuzzy.loc[6, 'Domain'] = f\"[ {min_ukuran_batang} , {mid_ukuran_batang + 0.5} ]\" # Domain (Rendah) Ukuran Batang\n", + "himpunan_fuzzy.loc[7, 'Domain'] = f\"[ {mid_ukuran_batang - 0.5} , {max_ukuran_batang} ]\" # Domain pembicaraan (Tinggi) Ukuran Batang\n", + "\n", + "# Fuzzykasi Jarak Duri\n", + "himpunan_fuzzy.loc[8, 'Semesta Pembicaraan'] = f\"[ {min_jarak_duri} , {max_jarak_duri} ]\" # Semesta pembicaraan (Rendah) Jarak Duri\n", + "himpunan_fuzzy.loc[9, 'Semesta Pembicaraan'] = f\"[ {min_jarak_duri} , {max_jarak_duri} ]\" # Semesta pembicaraan (Tinggi) Jarak Duri\n", + "himpunan_fuzzy.loc[8, 'Domain'] = f\"[ {min_jarak_duri} , {mid_jarak_duri + 0.75} ]\" # Domain (Rendah) Jarak Duri\n", + "himpunan_fuzzy.loc[9, 'Domain'] = f\"[ {mid_jarak_duri - 0.25} , {max_jarak_duri} ]\" # Domain pembicaraan (Tinggi) Jarak Duri\n", + "\n", + "# Fuzzykasi Keterangan\n", + "himpunan_fuzzy.loc[10, 'Semesta Pembicaraan'] = f\"[ 0 , 1 ]\" # Semesta pembicaraan (Rendah) Keterangan\n", + "himpunan_fuzzy.loc[11, 'Semesta Pembicaraan'] = f\"[ 0 , 1 ]\" # Semesta pembicaraan (Tinggi) Keterangan\n", + "himpunan_fuzzy.loc[10, 'Domain'] = f\"[ 0 , 0.5 ]\" # Domain (Rendah) Keterangan\n", + "himpunan_fuzzy.loc[11, 'Domain'] = f\"[ 0.5 , 1 ]\" # Domain pembicaraan (Tinggi) Keterangan\n", + "\n", + "himpunan_fuzzy.loc[himpunan_fuzzy.duplicated(subset=['Fungsi']),['Fungsi']]=''\n", + "himpunan_fuzzy.loc[himpunan_fuzzy.duplicated(subset=['Nama Variabel']),['Nama Variabel']]=''\n", + "himpunan_fuzzy.loc[himpunan_fuzzy.duplicated(subset=['Semesta Pembicaraan']),['Semesta Pembicaraan']]=''\n", + "\n", + "\n", + "# himpunan_fuzzy.to_html(index=False)\n", + "\n", + "from IPython.display import display, HTML\n", + "display(HTML(\"

\"))\n", + "display(HTML(himpunan_fuzzy.to_html(index=False)))" + ] + }, { "cell_type": "markdown", "id": "e4ac8e31", @@ -402,7 +587,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 471, "id": "4d525445", "metadata": {}, "outputs": [], @@ -411,7 +596,7 @@ "import matplotlib.pyplot as plt\n", "\n", "def RangeSubjektif(_low, _high, _step):\n", - " subjektif = np.arange(_low, _high , _step)\n", + " subjektif = np.arange(_low, _high , _step)\n", " return subjektif\n", "\n", "def FuzzyShow(_rule, _range_subjektif, _title):\n", @@ -439,7 +624,7 @@ " lo = fuzz.trapmf(_range_subjektif, _rule[0])\n", " hi = fuzz.trapmf(_range_subjektif, _rule[1])\n", " \n", - " fig,ax = plt.subplots(nrows=1, figsize=(10,3))\n", + " fig,ax = plt.subplots(nrows=1, figsize=(16,3))\n", " ax.plot(_range_subjektif, lo, 'r' , linewidth = 1.5 , label= \"Masak\")\n", " ax.plot(_range_subjektif, hi, 'g' , linewidth = 1.5 , label= \"Mentah\")\n", " \n", @@ -468,7 +653,7 @@ }, { "cell_type": "code", - "execution_count": 63, + "execution_count": 472, "id": "aeab6802", "metadata": {}, "outputs": [ @@ -497,15 +682,15 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 473, "id": "1f123edb", "metadata": {}, "outputs": [ { "data": { - "image/png": "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oCRJcpGeDq6np4djjz2WU045xU9aHERmsmvXLnp6epg8eXJDX9OsRXqjgCnAXGAJcGNEHD9IgasyszszuydMmNCkU0uSdOTrdQRZB/HCCy8wfvx4w/FBRATjx49/RSPsjQTkJ4CT67a7irZ6PcDazNybmf8G/Au1wCxJkpqgL8IRZB2U4fjQXum/TyMB+QFgSkRMjogxwGJg7YA+f0tt9JiIeC21KRePvaJKJEnSQfV24CI9VVZEcNFFF/Vv79u3jwkTJrBgwYKmnueYY45p6vEOZsiAnJn7gEuAu4AtwM2ZuTkiVkTEwqLbXcCuiHgY+B7w3zNz13AVLUnSSOMiPVXZ0UcfzaZNm9izZw8Ad999NxMnTmxxVYevoTnImXlHZv5yZv5SZq4s2q7KzLXF68zM38vMaZl5RmbeNJxFS5I00vSFi/RUbfPnz+f2228HYM2aNSxZsqR/3/e//33OOussZs6cyTve8Q4effRRADZv3szs2bOZMWMG06dPZ+vWrQCce+65zJo1i9NOO41Vq1a97FxPP/00Z511Vv/5mq2Rp1hIkqQW6+0IOg3IGsrHPgYPPdTcY86YAV/60pDdFi9ezIoVK1iwYAEbN25k6dKl3HvvvQC85S1v4d5772XUqFHcc889fPKTn+TWW2/lK1/5CpdddhkXXnghL730Er29vQCsXr2aE088kT179vD2t7+d888/n/HjxwPw5JNPsnDhQj772c/yvve9r7nfa8GALElSG+hzDrIqbvr06Wzfvp01a9Ywf/78A/bt3r2biy++mK1btxIR7N27F4CzzjqLlStX0tPTw3nnnceUKbVnPFx77bXcdtttAOzYsYOtW7cyfvx49u7dy9lnn83111/Pu971rmH7XgzIkiS1gV6nWKgRDYz0DqeFCxdy+eWXs27dOnbt+vlytCuvvJJ3v/vd3HbbbWzfvp25c+cCcMEFF3DmmWdy++23M3/+fL761a/S0dHBPffcw3333ce4ceOYO3du/yPaRo0axaxZs7jrrruGNSA36znIkiRpGPU5xUJtYOnSpVx99dWcccYZB7Tv3r27f9He1772tf72xx57jDe96U1ceumlLFq0iI0bN7J7925OOOEExo0bxyOPPML69ev7+0cEq1ev5pFHHuHzn//8sH0fBmRJktqAI8hqB11dXVx66aUva7/iiiv4xCc+wcyZM9m3b19/+80338zpp5/OjBkz2LRpEx/60IeYN28e+/btY+rUqSxfvpw5c+YccKzOzk7WrFnDd7/7XW644YZh+T4iszV3W3d3d27YsKEl55Ykqd3850tO4KmxfTzwhd2tLkUVs2XLFqZOndrqMirvIP9Og07sdwRZkqQ24GPepPIYkCVJagO9HTgHWSqJAVmSpDbgCLJUHgOyJEltwEV6UnkMyJIktYG+cIqFVBYDsiRJbaAvoKOv1VVII4MBWZKkNtDrCLIqLCK46KKL+rf37dvHhAkTWLBgwWEf83Of+1xD/Y455pjDPsfBGJAlSWoDLtJTlR199NFs2rSJPXv2AHD33Xf3f3Le4Wo0IA8HA7IkSW2gN6Cjz4Ss6po/fz633347AGvWrGHJkiX9+5577jmWLl3K7NmzmTlzJt/61reA2sdOn3feecybN48pU6ZwxRVXALB8+XL27NnDjBkzuPDCCwE499xzmTVrFqeddhqrVq064Nyf+tSneOtb38qcOXN48sknX/X3MupVH0GSJA07F+mpER+782M89OOHmnrMGW+YwZfmfWnIfosXL2bFihUsWLCAjRs3snTpUu69914AVq5cyXve8x5Wr17Ns88+y+zZs3nve98LwEMPPcSDDz7IUUcdxamnnspHP/pRrrnmGq677joeeujn38vq1as58cQT2bNnD29/+9s5//zzGT9+PM899xxz5sxh5cqVXHHFFdx44418+tOfflXfsyPIkiS1gb5IF+mp0qZPn8727dtZs2YN8+fPP2Dft7/9ba655hpmzJjB3LlzeeGFF3j88ccBOPvssznuuOMYO3Ys06ZN44c//OGgx7/22mv7R4l37NjB1q1bARgzZkz/XOdZs2axffv2V/29OIIsSVIb6A3odIqFhtDISO9wWrhwIZdffjnr1q1j165d/e2Zya233sqpp556QP/777+fo446qn+7s7OTffv2vey469at45577uG+++5j3Lhx/SEbYPTo0UTEIb/+lXIEWZKkNuAiPbWDpUuXcvXVV3PGGWcc0P7+97+fL3/5y2TWLuIHH3xwyGONHj2avXv3ArB7925OOOEExo0bxyOPPML69eubX3wdA7IkSW2gl3SRniqvq6uLSy+99GXtV155JXv37mX69OmcdtppXHnllUMea9myZUyfPp0LL7yQefPmsW/fPqZOncry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\n", + "image/png": "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eFJK5JvzrJy6soqFSaqmlpYWGhsb2b9/f7VL6bWGDx/OlClTGDJkSEnjSwl4JgM72h03Am89asxMgIj4T6AG+EJK6e6jJ4qIVcAqgGnTppVUoCRJkqQ+rr4e7n7trwe/fem3vHzgZRssSwNYY2MjY8aMYfr06UREtcvpdVJKNDc309jYyIwZM0p6TVZNlgcDdcA5wMXAdyJiXAcFrk4pLUgpLZg0aVJGby1JkiSpV2togOeegz17gNcaLPuIljRw7d+/n9raWsOdY4gIamtru7TCqZSA5xlgarvjKcVz7TUC61JKLSmlp4AnKAQ+kiRJkga6oxot55uLW6TXuoJHGsgMd46vq38+pQQ8vwLqImJGRAwFVgDrjhrzIwqrd4iIiRQe2drapUokSZIk9U9tW6UXA55cU47RQ0fzpjFvqmJRkga6iODSSy89fNza2sqkSZNYunRppu8zevToTOc7lk4DnpRSK/Bx4B5gE3BrSumxiLgmIpYVh90DNEfE48DPgP+VUmquVNGSJEmS+pBTT4XBgw/vpJVvzlNfW++/3kuqqlGjRvHoo4+yb98+AO69914mT55c5aq6r6QePCmlu1JKM1NKp6aUri2e+3xKaV3x55RS+tOU0uyU0pkppVsqWbQkSZKkPmTIEDjllMMBj1ukS+otlixZwp133gnAmjVruPjiiw9f++Uvf8nZZ5/NvHnzeNvb3ka+uArxscceY+HChcydO5c5c+awefNmAC644ALmz5/P6aefzurVq1/3Xk1NTZx99tmH3y9rpeyiJUmSJEnlKW6VvvfAXrbv2W7/HUmv+dSn4JFHsp1z7lz42tc6HbZixQquueYali5dysaNG1m5ciXr168HoKGhgfXr1zN48GDuu+8+/uIv/oLbb7+db33rW3zyk5/kkksu4cCBAxw8eBCAm266iQkTJrBv3z7OOussPvjBD1JbWwvAzp07WbZsGV/84hd5z3vek+3vWmTAI0mSJKnyilulb97lDlqSeo85c+awbds21qxZw5IlS464tmfPHj760Y+yefNmIoKWlhYAzj77bK699loaGxu58MILqasr7DF1/fXXc8cddwCwY8cONm/eTG1tLS0tLZx33nnceOONvOtd76rY72LAI0mSJKnyGhrgwAFyuZ8XDg14JLUpYaVNJS1btoxPf/rT3H///TQ3v9ZO+KqrruLd7343d9xxB9u2beOcc84B4MMf/jBvfetbufPOO1myZAnf/va3GTRoEPfddx8PPPAAI0eO5Jxzzjm8xfngwYOZP38+99xzT0UDnpJ68EiSJElSWYpbpee3/pIgOG3CaVUuSJIKVq5cydVXX82ZZ555xPk9e/Ycbrp88803Hz6/detWTjnlFC6//HKWL1/Oxo0b2bNnD+PHj2fkyJHkcjkefPDBw+MjgptuuolcLseXv/zliv0eBjySJEmSKq+4VXrud48zfdx0RgwZUeWCJKlgypQpXH755a87f8UVV/CZz3yGefPm0draevj8rbfeyhlnnMHcuXN59NFH+chHPsLixYtpbW1l1qxZXHnllSxatOiIuWpqalizZg0//elP+eY3v1mR3yNSShWZuDMLFixIGzZsqMp7S5IkSaqCSZN4y6rEibPP4t8u+bdqVyOpijZt2sSsWbOqXUavd4w/p+horCt4JEmSJPWIQ/UzydfspqHW/juSlDUDHkmSJEk9ovH0qbxSc4j6iW6RLklZM+CRJEmS1CPyM8YA0DBscpUrkaT+x4BHkiRJUo/ITSr89aP++Q7bR0iSymDAI0mSJKlH5Efs5YT9cNLWXdUuRZL6HQMeSZIkST0i1/IsDc1BPPFEtUuRpH7HgEeSJElSj8g//wT1LSdALlftUiSJiODSSy89fNza2sqkSZNYunRpt+f80pe+VNK40aNHd/s9jsWAR5IkSVLFvfTqSzS+2EjD0DdBPl/tciSJUaNG8eijj7Jv3z4A7r33XiZPLq8JfKkBTyUY8EiSJEmquCeaC49l1U+shy1boKWlyhVJEixZsoQ777wTgDVr1nDxxRcfvrZ3715WrlzJwoULmTdvHmvXrgXg5ptv5sILL2Tx4sXU1dVxxRVXAHDllVeyb98+5s6dyyWXXALABRdcwPz58zn99NNZvXr1Ee/92c9+lje/+c0sWrSInTt3lv27DC57BkmSJEnqRL65sGqn4eQF0PIjeOopmDmzukVJ6hU+dfeneOS5RzKdc+5Jc/na4q91Om7FihVcc801LF26lI0bN7Jy5UrWr18PwLXXXsu5557LTTfdxAsvvMDChQs5//zzAXjkkUd4+OGHGTZsGPX19XziE5/guuuu44YbbuCRR177XW666SYmTJjAvn37OOuss/jgBz9IbW0te/fuZdGiRVx77bVcccUV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\n", "text/plain": [ - "
" + "
" ] }, "metadata": { @@ -517,8 +702,8 @@ "source": [ "x_berat = RangeSubjektif(min_berat , max_berat , 1)\n", "r_berat = np.array([\n", - " [min_berat,min_berat,mid_berat,mid_berat],\n", - " [mid_berat,mid_berat,max_berat,max_berat]\n", + " [min_berat,min_berat,mid_berat,mid_berat+10],\n", + " [mid_berat,mid_berat+10,max_berat,max_berat]\n", "])\n", "\n", "lo_berat , hi_berat = FuzzyShow1(r_berat , x_berat, 'Berat (kg)')" @@ -526,7 +711,7 @@ }, { "cell_type": "code", - "execution_count": 65, + "execution_count": 474, "id": "84aaee1a", "metadata": {}, "outputs": [ @@ -555,7 +740,7 @@ }, { "cell_type": "code", - "execution_count": 66, + "execution_count": 475, "id": "deeec0dc", "metadata": {}, "outputs": [ @@ -584,13 +769,13 @@ }, { "cell_type": "code", - "execution_count": 67, + "execution_count": 476, "id": "d3c1bed7", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfAAAADQCAYAAAD4dzNkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAA0CElEQVR4nO3dd3gUVffA8e8hIXRpgiBNUURKQkJCIMALCAihKzaa9Kr+sCEiiAXFVxQFRaSIEREEAUGa9N4hEJIAgiKCBKRKkZ6E+/tjVt41ErKBzc5ucj7Pk4edmbsz52bYnJ2ZW8QYg1JKKaV8Sza7A1BKKaVU+mkCV0oppXyQJnCllFLKB2kCV0oppXyQJnCllFLKB2kCV0oppXyQJnClfISI1BORBJtjGCgiE26yPYeI7BaR4h6I5S4R+UlEcmT0sZTyRprAlXIzEVklIt1tjqGziCSLyHnHz28i8pWIPHA7+zXGvGeMuVndegJrjDF/3M5xXIzlGLDScUylshxN4Ep5AbG4+/O40RiTF8gPNAQuAdtEpPKt7ExE/F0o1hv45lb2f4umAL08eDylvIYmcKUyiIgUFJH5InJCRE47Xpd02r5KRIaKyHrgIlBWRLo4bgv/JSL7RSTV5CQifR23q0umVgbAGJNsjPnVGPMMsBp4y/H+f92SF5EDItLQ8fotEZkpIpNF5BzQ2bFucirxlAbKApud1k0Ukc9FZKHjTsB6ESkmIiMdv5M9IhKS4viviEiciFwQkS8dt8oXOn4ny0SkoNNhNzt+b2Vu9jtQKjPSBK5UxskGfAWUAUpjXQF/lqLM01i3gPMBB4HjQHPgDqALMEJEqqbcsYi8AXQG6hpj0vNcfBbwn3SUbwXMBApgXe3eTCCw3xiTlGL9k8DrwJ3AFWAjsN2xPBP4OEX5x4CHgQeAFsBCYCBQBOt32vfvgo5j7QOqpKNOSmUKmsCVyiDGmFPGmO+NMReNMX8BQ4G6KYpNNMbsMsYkGWMSjTELHFfLxhizGljCPxOuiMjHQCPgIWPMiXSGdQQolI7yG40xPxhjrhljLqVRtgDw1w3WzzbGbDPGXAZmA5eNMZOMMcnAd0BIivKjjDHHjDGHgbXAZmNMjNP7U5b/y3FspbIUV55pKaVugYjkBkYAkcDft33ziYifI3kBHErxnibAm1hXn9mA3EC8U5ECWFfsTxljzt5CWCWAP9NR/lDaRa47jXUnIaVjTq8v3WA5722WzwecSUecSmUKegWuVMZ5GSgPVDfG3AHUcawXpzLXpwN0dIf6HhgO3GWMKQD8mKL8aaxb7F+JSK1biOlRrKtagAtYXxD+Pr4f1m1qZ+mZrjAOuNfFxm5u4TjW/UCsp46plLfQBK5UxsmHdcV4RkQKYV1Z30wAkAM4ASQ5rsYbpSxkjFkFtAdmiUh4WkGIiJ+I3Csio4B6wNuOTT8DOUWkmYhkx3pOfct9qh3P4vcBacbkRuHAAWPMQQ8eUymvoAlcqYxhgJFALuAksAlYdNM3WM/J+wLTsa602wFzUym7FOgKzLtRIzeHCBE5D5wDVmE1jKtmjIl37OMs8AwwATiMdUV+uwPFjMNqmOcp7YGxHjyeUl5DjEnPHTKlVFpEZDswxBjzg92xeJrjMUAM0CCjB3MRkaJY3eJCHA3clMpSNIEr5UYiUgmIBh7U27pKqYykt9CVchMRGYbV7etVTd5KqYymV+BKKaWUD9IrcKWUUsoH2TaQS2RkpFm06KaNcpVSSin1z7EgrrPtCvzkyZN2HVoppZTyeXoLXSmllPJBmsCVUkopH6QJXCmllPJBaSZwEYkSkeMisjOV7SIin4rIPhGJu8mwjkoppZRyE1daoU8EPgMmpbK9CVDO8VMdGOP416OSryWnXUgpdVN+2fzsDkEp33X0KBQpAn6e+RylmcCNMWtE5J6bFGkFTDLWiDCbRKSAiBTP6HGQU4r4MoKtR7Z68pBKZTrNyjXjixZfUDxfcbtDUcq3zJgBvXrBa6/BK6945JDu6AdeAjjktJzgWPevBC4iPYGeAKVLl3bDof+nV2gvWjzQwq37VCorOXvlLKO3jiZwTCBftPiCRys8andISnm/s2ehb1+YNAnCw+GRRzx2aI8O5GKMGQ+MBwgLC3PrGK7dqnZz5+6UypK6hXSjw+wOtJ7emm4h3RjReAT5cuSzOyylvNPatfD003DoELz5JgwaBNmze+zw7miFfhgo5bRc0rFOKeVjKhSpwMZuG3mt9mtExUQRPC6YjYc22h2WUt7l6lUYOBDq1gV/f1i3Dt56y6PJG9yTwOcCHR2t0WsAZz39/Fsp5T4BfgG81+A9VndeTfK1ZGp/VZs3V75JYnKi3aEpZb89eyAiAv77X+jaFWJirGUbuNKNbCqwESgvIgki0k1EeotIb0eRH4H9wD7gC+CZDItWKeUx/ynzH2J7x9I+sD1D1gyh9le1+eXUL3aHpZQ9jIHRo6FqVTh4EGbPhgkTIJ99j5hsm040LCzMREdH23JspVT6TN81nd7ze3Ml+QojG4+ke9XuiNxwfgWlMp+jR62r7YULITISoqKguEd7anjXZCZKKd/xZKUniesTR0TJCHrO78kj3z3C8QvH7Q5LqYw3Zw4EBsLKlfDZZ/Djj55O3qnSBK6UcknJO0qy5OklfNzoYxbtW0TgmEAW/LzA7rCUyhjnz0OPHla3sFKlYPt2ePZZ8KI7T5rAlVIuyybZeDHiRaJ7RHNXnrtoPrU5zyx4houJF+0OTSn32bQJgoPhyy9hwABruUIFu6P6F03gSql0C7wrkC09tvBSjZcYEz2GquOqEn1E27QoH5eUZHUHq13ber1qldXaPCDA7shuSBO4UuqW5PTPyUeNP2LZ08s4f/U8EV9G8N7a93ReAuWb9u2zEvfbb0O7dhAbC3Xq2B3VTWkCV0rdlgZlGxDXJ47WFVozaMUg6k6sy2+nf7M7LKVcY4zVHSw4GPbuhWnTrGFR8+e3O7I0aQJXSt22QrkKMe2xaXzz6DfEH4+nytgqfL3ja+zqpqqUS06cgEcftRqr1agB8fHw1FN2R+UyTeBKKbcQEToEdSCudxwhxUPoPKczT858klMXT9kdmlL/tnCh1T1s4UL4+GNYsgRKlrQ7qnTRBK6UcqsyBcqwouMK3m/wPnP2zCFobBBLf11qd1hKWS5etLqDNW0KRYvC1q3w4ouQzffSoe9FrJTyen7Z/Hi19qts6r6J/Dny02hyI15Y9AKXEi/ZHZrKyrZts4ZC/fxzeOkl2LIFgoLsjuqWaQJXSmWYqsWrsq3nNp6r9hyfbP6Eal9UI/ZorN1hqawmOdnqDlajhjVAy7Jl8NFHkDOn3ZHdFk3gSqkMlSt7LkY1HcWP7X7k1KVThE8IZ/iG4Vwz1+wOTWUFBw5AvXrW9J+tW0NcHDRoYHdUbqEJXCnlEU3KNSG+TzxNyzXllaWv0HBSQw6dPWR3WCqzMga++ca6RR4XZ72eNg0KFbI7MrfRBK6U8pg7c9/JrCdn8WXLL9lyeAuBYwKZtnOa3WGpzObPP63uYB07Wv27Y2OhQwevGsfcHTSBK6U8SkToGtKV2N6xVChSgbbft6X9rPacuXzG7tBUZrBsmdU9bPZs67n3ypVwzz12R5UhNIErpWxxX6H7WNtlLUPqDeG7nd8RNCaIVQdW2R2W8lWXL1styx9+GO64AzZvtiYi8fOzO7IMowlcKWUb/2z+DK47mPVd15PDPwf1v67Pq0tf5UrSFbtDU74kLg6qVYMRI+C55/7XXSyT0wSulLJd9ZLViekVQ4+qPfhgwwdUn1CdXcd32R2W8nbXrlndwapVg5Mn4ccfYdQoyJ3b7sg8QhO4Usor5A3Iy7gW45jTZg6H/zpM6PhQPt38qXY3Uzd26BA0bAj9+lmjqsXFQZMmdkflUZrAlVJepWX5lsT3iadB2QY8v+h5mkxpwpG/jtgdlvIm331ndQ/bssWaSWzWLChSxO6oPM6lBC4ikSKyV0T2iciAG2wvLSIrRSRGROJEpKn7Q1VKZRXF8hZjftv5jGk2hrUH1xI4JpBZP82yOyxlt7Nn4emnoU0bePBB2LEDunXLdN3DXJVmAhcRP2A00ASoCLQVkYopir0OTDfGhABtgM/dHahSKmsREXqH9SamVwz3FriXx6Y/Rpc5XTh35ZzdoSk7rF5tXXVPnQpvvw1r18L999sdla1cuQIPB/YZY/YbY64C04BWKcoY4A7H6/yA3u9SSrlF+TvLs7HbRgb9ZxCTYicRPDaY9b+vtzss5SlXr1rdwR56CAICYP16eOMN8Pe3OzLbuZLASwDO4x0mONY5ewvoICIJwI/A/91oRyLSU0SiRST6xIkTtxCuUioryu6XnXfrv8uazmsAqDOxDoNXDCYxOdHmyFSG2r0bqleHYcOge3eIibGWFeC+RmxtgYnGmJJAU+AbEfnXvo0x440xYcaYsCJZsMGBUur21Cpdix29d9CxSkfeXfsuNaNq8vOpn+0OS7mbMVZ3sNBQSEiAOXNg/HjIm9fuyLyKKwn8MFDKabmkY52zbsB0AGPMRiAncKc7AlRKKWd35LiDr1p9xYwnZvDrn78SMi6EcdHjMMbYHZpyhz/+sLqD9e0L9etDfDy0bGl3VF7JlQS+FSgnIveKSABWI7W5Kcr8DjQAEJEKWAlc75ErpTLM4xUfJ75PPLVK1aL3gt60nNaSY+eP2R2Wuh2zZ1vjmK9ZA59/DvPnQ7FidkfltdJM4MaYJOA5YDHwE1Zr810iMkRE/v5a9DLQQ0RigalAZ6Nfh5VSGazEHSVY1GERIxuPZOmvSwkcE8i8vfPsDkul119/Wd3BWre2Jh7Zvh369Mmy3cNcJXbl2bCwMBMdHW3LsZVSmc/O4zvpMKsDscdi6RXai48afUSegDx2h6XSsnGjNdXngQPw2mtWC/OAALuj8jY3/CajI7EppTKFykUrs7n7Zl6p+Qrjt40nZFwIWw9vtTsslZrERCtZ165tjWm+ejW8+64m73TQBK6UyjRy+Ofgg4c/YHnH5VxOukzElxG8s/odkq4l2R2acvbzz1CrFrzzjjWyWmyslchVumgCV0plOg/d+xBxfeJ4stKTvLHqDep8VYdf//zV7rCUMVZ3sJAQ2LcPZsyAiROt+btVumkCV0plSgVyFuDbx75lSusp7D6xm+BxwXwV85V2N7PL8ePQqhX06gU1a1rdwx5/3O6ofJomcKVUptYusB1xfeIILR5K17ldeXzG45y8eNLusLKWBQus7mFLlsDIkbB4MZRIOaCnSi9N4EqpTK90/tIs77icDxp+wLy98wgaE8TifYvtDivzu3DB6g7WvLnVnzs6Gp5/HrJp6nEH/S0qpbIEv2x+vFLrFbb02ELBXAWJnBJJ34V9uZR4ye7QMqfoaKhaFcaNg379rLm7K1e2O6pMRRO4UipLCS4WTHSPaJ6v/jyjtowidHwoMX/E2B1W5pGUBEOHQkQEXLwIy5fDhx9Cjhx2R5bpaAJXSmU5ubLnYmTkSBZ3WMyZy2eoPqE6w9YNI/last2h+bb9+6FuXXj9dauBWlycNQ2oyhCawJVSWVaj+xoR3yeeFuVbMGD5AOpPqs/BMwftDsv3GGN1B6tSBXbtgilTYOpUKFjQ7sgyNU3gSqksrXDuwsx8YiZftfqK7X9sJ2hsEFPiptgdlu84dQqeeAK6dLGm/4yNhXbt7I4qS9AErpTK8kSEzsGdie0dS+WilekwuwNtv2/L6Uun7Q7Nuy1ZYnUPmzsXhg2znneXKWN3VFmGJnCllHIoW7Asqzuv5t2H3mXm7pkEjQ1i5W8r7Q7L+1y6ZHUHa9zYuk2+eTP07w9+fnZHlqVoAldKKSf+2fwZVGcQG7puIHf23DSY1IB+S/pxJemK3aF5hx07ICwMPv0U+va1uouFhNgdVZakCVwppW6gWolqbO+53ZqadONHhE8IZ+fxnXaHZZ/kZKs7WHg4nD4NixbBJ59Arlx2R5ZlaQJXSqlU5AnIw5jmY5jXdh5Hzx8lbHwYIzeN5Jq5ZndonvX779CwoXWbvEULaxzzxo3tjirL0wSulFJpaP5Ac+L7xNPovka8uPhFGk9uzOFzh+0OyzOmToWgIOtWeVQUzJwJhQvbHZVCE7hSSrmkaJ6izGkzh3HNx7Hh0AYCxwQyc/dMu8PKOGfOWN3B2rWDSpWs7mFduoCI3ZEpB03gSinlIhGhZ2hPYnrFcH+h+3lixhN0+qET566cszs091q1yrrqnj4d3nkHVq+GsmXtjkqloAlcKaXS6YHCD7C+63oG1xnM5LjJVBlbhXW/r7M7rNt35Yr1nLt+fciZEzZssIZF9fe3OzJ1Ay4lcBGJFJG9IrJPRAakUuZJEdktIrtE5Fv3hqmUUt4lu192hjw0hLVd1pJNslF3Yl0GLR/E1eSrdod2a3btgurVrZbmvXpBTIzV4lx5rTQTuIj4AaOBJkBFoK2IVExRphzwGlDLGFMJeMH9oSqllPepWaomO3rtoHOVzry37j1qflmTPSf32B2W665ds7qDhYbCkSPWqGpjxkCePHZHptLgyn2RcGCfMWY/gIhMA1oBu53K9ABGG2NOAxhjjrs7UKWU8lb5cuTjy1Zf0uyBZvSc15Oq46oyvNFw+oT1Qby50deRI9C5MyxdCs2bw4QJcNddGXKoxMREEhISuHz5cobsPzPImTMnJUuWJHv27C6VdyWBlwAOOS0nANVTlHkAQETWA37AW8aYRSl3JCI9gZ4ApUuXdilApZTyFa0rtCaiZARd5nTh2R+fZf7P84lqFUWxvMXsDu3fvv8eevaEy5dh7FjrdQZ+2UhISCBfvnzcc8893v2lxibGGE6dOkVCQgL33nuvS+9xVyM2f6AcUA9oC3whIgVuEOB4Y0yYMSasSJEibjq0Ukp5j+L5irOw/UJGNRnFygMrCRwTyJw9c+wO63/OnbO6gz3+ONx3n/Wsu1evDO8edvnyZQoXLqzJOxUiQuHChdN1h8KVBH4YKOW0XNKxzlkCMNcYk2iM+Q34GSuhK6VUliMiPBf+HNt6bqPkHSV55LtH6DmvJ+evnrc3sPXrITgYJk2CwYOt5Qce8NjhNXnfXHp/P64k8K1AORG5V0QCgDbA3BRlfsC6+kZE7sS6pb4/XZEopVQmU7FIRTZ338yrtV5lwvYJhIwLYXPCZs8HkphodQerU8daXrsWhgwBF5+1ZhYiQocOHa4vJyUlUaRIEZo3b37L+3zvvfdcKpc3b95bPkZq0kzgxpgk4DlgMfATMN0Ys0tEhohIS0exxcApEdkNrAReMcaccnu0SinlYwL8Ani/4fus7LSSq8lXqRVVi7dXvU3StSTPBLB3L9SsCUOHQqdO1ohqNWt65theJk+ePOzcuZNLly4BsHTpUkqUKHFb+3Q1gWcEl56BG2N+NMY8YIy5zxgz1LHuDWPMXMdrY4x5yRhT0RgTaIyZlpFBK6WUr6l7T13iesfRNrAtb61+i9pRtdn3576MO6AxVnewkBDYv99qtBYVBfnyZdwxfUDTpk1ZsGABAFOnTqVt27bXt124cIGuXbsSHh5OSEgIc+ZYbRcmTpxI69atiYyMpFy5cvTv3x+AAQMGcOnSJYKDg2nfvj0AjzzyCKGhoVSqVInx48f/49iDBg2iSpUq1KhRg2PHjt12XcQYc9s7uRVhYWEmOjralmMrpZSdpu2cRp8FfUhMTuSTyE/oGtLVvc+Hjx2Dbt1gwQJo1Ai++gruvtt9+78FP/30ExUqVADghUUvsOPoDrfuP7hYMCMjR960TN68edmwYQNDhgxh8uTJ1KhRg5EjRzJ8+HDmz5/PwIEDqVixIh06dODMmTOEh4cTExPDjBkzGDJkCDExMeTIkYPy5cuzbt06SpUqRd68eTl//n9tG/78808KFSrEpUuXqFatGqtXr77eeG/u3Lm0aNGC/v37c8cdd/D666//K0bn35OTG/7n0KFUlVLKw9pUbkNc7zjCS4TTfV53Wk9vzYkLJ9yz83nzIDAQli+HTz+FhQttT97eJCgoiAMHDjB16lSaNm36j21Llizh/fffJzg4mHr16nH58mV+//13ABo0aED+/PnJmTMnFStW5ODBgzfc/6effnr9KvvQoUP88ssvAAQEBFx/1h4aGsqBAwduuy46wK1SStmgVP5SLOu4jBEbRzBwxUACxwTyVauvaFKuya3t8MIFeOklGD/eamk+ebI1i5gXSutKOaO1bNmSfv36sWrVKk6d+l9zLWMM33//PeXLl/9H+c2bN5MjR47ry35+fiQl/bsNw6pVq1i2bBkbN24kd+7c178EAGTPnv36XZbU3p9eegWulFI2ySbZeLnmy2ztsZUieYrQ9NumPPfjc1xMvJi+HW3ZYj3r/uILazKSTZu8Nnl7g65du/Lmm28SGBj4j/WNGzdm1KhR/P1oOSYmJs19Zc+encTERADOnj1LwYIFyZ07N3v27GHTpk3uD96JJnCllLJZ0F1BbO2xlRdrvMjoraMJHR/K9j+2p/3GpCSrO1jNmtZMYitXwrBh4HS1qP6tZMmS9O3b91/rBw8eTGJiIkFBQVSqVInBgwenua+ePXsSFBRE+/btiYyMJCkpiQoVKjBgwABq1KiREeFfp43YlFLKiyzbv4xOP3Ti+IXjDKk3hP61+uOXze/fBX/9FTp0sK6227eHzz6DAgU8Hq+rUmmcpVLQRmxKKeWjGpZtSHyfeB558BEGrhhIva/rceDMgf8VMMbqDhYcDD/9BN9+az3v9uLkrTKGJnCllPIyhXIVYvrj0/n6ka+JPRpL0Jggvon9BnPiBDz2mNVFrFo1iI8Hp37MKmvRBK6UUl5IROhYpSNxfeKoUqwKk4d35MwDpTHz58OHH8KyZVCqVNo7UpmWJnCllPJi9+S4i9XbqrB4MhwOuEyjvgVZ3joEsumf76xO/wcopZS3iomB0FCyjR4NL7zA1Y3rOXRPQRp+05CXFr/E5STXp55UmY8mcKWU8jbJyVZ3sOrV4exZWLIERoygatmabO+1nWerPcuITSOo9kU14o7F2R2tsokmcKWU8iYHD0L9+jBgALRqZTVUe/jh65tzZ8/NZ00/Y0G7BZy4cIJqX1Tj440fc81cszFo35AR04neSEZMHXojmsCVUsobGGN1BwsKsm6df/01TJ8OhQrdsHjTck2J7xNPk/ub8PKSl3n4m4dJOJfg4aB9S0ZMJ2onTeBKKWW306et7mBPP21NRBIbCx07QhozlBXJU4TZT83mixZfsDlhM4FjApm+a7qHgvZNN5tOdMuWLURERBASEkLNmjXZu3cvALt27SI8PJzg4GCCgoKuT1Bys6lDAU6ePElERMT147mbTmailFJ2WrECOnWCo0dh6FB49VXwu8HIa6kQEbpX7U69e+rRYVYHnpr5FPN+nsdnTT4jf878GRj4bXjhBdixw737DA6GkSPTLNamTRuGDBlC8+bNiYuLo2vXrqxduxaABx98kLVr1+Lv78+yZcsYOHAg33//PWPHjuX555+nffv2XL16leTkZACioqL+MXXoY489RuHChQE4duwYLVu25N133+Vhp0cg7qQJXCml7HDlCgwaBB99BOXLw8aNEBZ2y7u7v9D9rOu6jqFrhvLOmndYc3AN3zz6DXXK1HFj0L7vZtOJnj17lk6dOvHLL78gItcnKYmIiGDo0KEkJCTQunVrypUrB1hTh86ePRvg+tShhQsXJjExkQYNGjB69Gjq1q2bYXXRBK6UUp4WH2+NXx4fD888Yw3Mkjv3be/WP5s/b9Z7k8b3N6bDrA7Um1iPV2u9ytsPvU2AX4AbAncTF66UM1Jq04kOHjyYhx56iNmzZ3PgwAHq1asHQLt27ahevToLFiygadOmjBs3jmzZsqU6dai/vz+hoaEsXrw4QxO4PgNXSilPuXYNRoywhkE9dgzmz4fRo92SvJ3VKFmDHb130C2kG++vf58aE2rw04mf3HoMX5badKJnz5693qht4sSJ19fv37+fsmXL0rdvX1q1akVcXNxNpw4VEaKiotizZw/Dhg3LsHpoAldKKU9ISIBGjeCll6BxY+vqu1mzDDtc3oC8fNHyC3546gcOnTtE1fFV+WzLZ9g1A6U3SW060f79+/Paa68REhJCUlLS9fXTp0+ncuXKBAcHs3PnTjp27Jjm1KF+fn5MnTqVFStW8Pnnn2dIPXQ6UaWUymgzZkCvXtZz75EjoXv3NFuYu9PR80fpOqcrC/ctJPL+SKJaRlE8X3GPHR90OlFXuX06URGJFJG9IrJPRAbcpNxjImJE5NZbYiilVGZx9qzVwvzJJ6FcOavldY8eHk3eAMXyFmNBuwWMbjqaVQdWETgmkNk/zfZoDMr90kzgIuIHjAaaABWBtiJS8Qbl8gHPA5vdHaRSSvmctWuhShVrcJY334R166wkbhMR4Zlqz7C953bKFChD6+mt6T63O39d+cu2mNTtceUKPBzYZ4zZb4y5CkwDWt2g3DvAMEBH11dKZV1Xr8LAgVC3Lvj7W4n7rbcge3a7IwOgQpEKbOy2kddqv0ZUTBTB44LZeGij3WGpW+BKAi8BHHJaTnCsu05EqgKljDE3HW5GRHqKSLSIRJ84cSLdwSqllFfbswciIuC//4WuXa0hUSMi7I7qXwL8AnivwXus7rya5GvJ1P6qNm+ufJPE5MQMPa42oLu59P5+brsVuohkAz4GXk6rrDFmvDEmzBgTVqRIkds9tFJKeQdjrO5gVatak5HMng0TJkC+fHZHdlP/KfMfYnvH0iGoA0PWDKH2V7X55dQvGXKsnDlzcurUKU3iqTDGcOrUKXLmzOnye1wZyOUwUMppuaRj3d/yAZWBVWI1zCgGzBWRlsYYbWaulMrcjh61rrYXLoTISIiKguKebeF9O/LnzM/Xj3xNs3LN6D2/N8HjghnReAQ9qvZA3NjYrmTJkiQkJKB3X1OXM2dOSpYs6XL5NLuRiYg/8DPQACtxbwXaGWN2pVJ+FdAvreSt3ciUUj5vzhyrS9j58zB8uDWqmodbmLvT4XOH6TynM8v2L6PFAy2Y0HICRfMUtTssdavdyIwxScBzwGLgJ2C6MWaXiAwRkZbujVEppXzA+fNWd7BHHoHSpWH7dnj2WZ9O3gAl7ijB4g6LGdF4BEt+XULgmEAW/JwxM2mp26cDuSilVHps2gQdOsD+/dbMYW+/DQFeNM64m8Qfi6f9rPbEH4+nT1gfhjcaTu7s7h3yVbns1gdyUUqpLC8pyeoOVru29XrVKqu1eSZM3gCBdwWypccWXo54mTHRY6g6rirRR/Siy5toAldKqbTs22cl7rffhnbtIDYW6mT+aTpz+udkeKPhLO+4nPNXzxPxZQRD1wwl+Vqy3aEpNIErpVTqjLG6gwUHw969MG0aTJoE+fPbHZlH1b+3PvF94nmswmO8vvJ16k6sy2+nf7M7rCxPE7hSSt3IiRPw6KNWY7UaNazZw556yu6obFMwV0GmPjaVyY9OJv54PFXGVuHrHV9rv24baQJXSqmUFi6EwEDr348/hiVLIB39czMrEaF9UHviescRUjyEznM68+TMJzl18ZTdoWVJmsCVUupvFy9a3cGaNoWiRSE6Gl58EbLpn0pnZQqUYUXHFQxrOIw5e+YQNDaIpb8utTusLEf/VyqlFMC2bdZQqJ9/Di+9BFu2WFfh6ob8svnRv1Z/NnffTP4c+Wk0uREvLHqBS4mX7A4ty9AErpTK2pKTre5gNWpYA7QsWwYffQTpGJM6KwspHsK2ntv4v/D/45PNn1Dti2rEHo21O6wsQRO4UirrOnAA6tWzpv9s3Rri4qBBA7uj8jm5sufi0yafsrD9Qk5dOkX4hHCGbxjONXPN7tAyNU3gSqmsxxirO1hQkJW0v/nG6iJWqJDdkfm0yPsjie8TT7NyzXhl6Ss0mNSAQ2cPpf1GdUs0gSulspY//7S6g3XqZPXvjo21hkb18XHMvcWdue/k+ye/J6plFNFHogkcE8jU+Kl2h5UpaQJXSmUdy5ZZDdN++MF67r1yJdxzj91RZToiQpeQLuzotYOKRSrSblY72s9qz5nLZ+wOLVPRBK6UyvwuX7Zalj/8MNxxhzUhyYAB4Odnd2SZ2n2F7mNNlzUMqTeE73Z+R9CYIFYdWGV3WJmGJnClVOYWFwfVqsGIEfDcc//rLqY8wj+bP4PrDmZDtw3k8M9B/a/r8+rSV7mSdMXu0HyeJnClVOZ07ZrVHaxaNTh5En78EUaNgtw6JaYdwkuEE9Mrhh5Ve/DBhg+oPqE6u47vsjssn6YJXCmV+Rw6BA0bQr9+1qhqcXHQpIndUWV5eQPyMq7FOOa2mcuRv44QOj6UTzd/qt3NbpEmcKVU5jJtmtU9bMsWayaxWbOgSBG7o1JOWpRvQXyfeBqWbcjzi56nyZQmHPnriN1h+RxN4EqpzOHMGas7WNu28OCDVvewbt20e5iXuivvXcxrO48xzcaw9uBaAscE8v3u7+0Oy6doAldK+b7Vq6FKFevq++23Ye1auO8+u6NSaRAReof1JqZXDGULluXxGY/TZU4Xzl05Z3doPkETuFLKd129anUHe+ghCAiA9evhjTfA39/uyFQ6lL+zPBu6buD1/7zOpNhJBI8NZv3v6+0Oy+u5lMBFJFJE9orIPhEZcIPtL4nIbhGJE5HlIlLG/aEqpZST3buhenUYNgy6d4eYGGtZ+aTsftl5p/47rOm8BoA6E+sweMVgEpMTbY7Me6WZwEXEDxgNNAEqAm1FpGKKYjFAmDEmCJgJfODuQJVSCrDGMR81CkJDISEB5syB8eMhb167I1NuUKt0LXb03kGnKp14d+271Iyqyc+nfrY7LK/kyhV4OLDPGLPfGHMVmAa0ci5gjFlpjLnoWNwElHRvmEopBfzxh9UdrG9fqF8f4uOhZUu7o1JudkeOO4hqFcWMJ2aw//R+QsaFMDZ6LMYYu0PzKq4k8BKA83QyCY51qekGLLzRBhHpKSLRIhJ94sQJ16NUSqlZs6xxzNesgc8/h/nzoVgxu6NSGejxio8T3yeeWqVq0WdBH1pMbcGx88fsDstruLURm4h0AMKAD2+03Rgz3hgTZowJK6L9MpVSrvjrL6s72GOPWROPxMRAnz7aPSyLuDvf3SzqsIhPIj9h2f5lBI4JZN7eeXaH5RVcSeCHgVJOyyUd6/5BRBoCg4CWxhgd5FYpdfs2brSm/Jw4EQYNgg0boHx5u6NSHpZNstG3el+29dzG3fnupuW0lvSe35sLVy/YHZqtXEngW4FyInKviAQAbYC5zgVEJAQYh5W8j7s/TKVUlpKYaHUHq13bGtN89Wp4912rq5jKsioVrcTm7pvpX7M/47eNJ2RcCFsPb7U7LNukmcCNMUnAc8Bi4CdgujFml4gMEZG/W498COQFZojIDhGZm8rulFLq5n7+GWrVgnfegaeftkZUq13b7qiUl8jhn4NhDw9jRacVXE66TMSXEbyz+h2SriXZHZrHiV2t+sLCwkx0dLQtx1ZKeSFj4Isv4MUXIUcOq2vY44/bHZXyYmcun+HZH5/l2/hviSgZwTePfsN9hTLlCHw3bPChI7Eppex3/Di0agW9ekHNmlb3ME3eKg0FchZgSuspTGk9hd0ndhM8LpiomKgs091ME7hSyl4LFljdw5YsgZEjYfFiKHGznqpK/VO7wHbE9Ykj7O4wus3txuMzHufkxZN2h5XhNIErpexx4YLVHax5c6s/d3Q0PP88ZNM/Syr9SucvzfKOy/nw4Q+Zt3ceQWOCWLxvsd1hZSj9pCilPC86GqpWhXHjoF8/a+7uypXtjkr5uGySjX41+7GlxxYK5SpE5JRI+i7sy6XES3aHliE0gSulPCcpCYYOhYgIuHgRli+HDz+0Gq0p5SbBxYLZ2mMrz1d/nlFbRhE6PpSYP2LsDsvtNIErpTxj/36oWxdef91qoBYXZ00DqlQGyJU9FyMjR7KkwxLOXjlL9QnVGbZuGMnXku0OzW00gSulMpYx1khqVarArl0wZQpMnQoFC9odmcoCHr7vYeJ6x9GyfEsGLB9A/Un1OXjmoN1huYUmcKVUxjl1Cp54Arp0sab/jI2Fdu3sjkplMYVzF2bGEzOY2Goi2//YTtDYIKbETfH57maawJVSGWPJEqt72Ny5MGyY9by7TBm7o1JZlIjQKbgTsb1jCSwaSIfZHWg3qx2nL522O7RbpglcKeVely5Z3cEaN7Zuk2/ZAv37g5+f3ZEpRdmCZVnVeRXvPvQuM3fPJGhsECt/W2l3WLdEE7hSyn127ICwMPj0U+jb1+ouFhxsd1RK/YN/Nn8G1RnExm4byZ09Nw0mNaDfkn5cSfKtiTQ1gSulbl9ystUdLDwcTp+GRYvgk08gVy67I1MqVWF3h7G953Z6h/Xmo40fET4hnJ3Hd9odlss0gSulbs/vv0PDhtZt8hYtrHHMGze2OyqlXJInIA+fN/uc+W3nc/T8UcLGhzFy00iumWt2h5YmTeBKqVv37bcQFGTdKo+KgpkzoXBhu6NSKt2aPdCM+D7xNLqvES8ufpHGkxtz+Nxhu8O6KU3gSqn0O3PG6g7Wvj1UqmR1D+vSBeSGsx4q5ROK5inKnDZzGN98PBsObSBwTCAzds2wO6xUaQJXSqXPqlXWVfeMGfDOO7B6NZQta3dUSrmFiNAjtAc7eu2gXOFyPDnzSTr90IlzV87ZHdq/aAJXSrnmyhXrOXf9+lbjtA0brGFR/f3tjkwptytXuBzruqzjjTpvMDluMlXGVmHd7+vsDusfNIErpdK2axdUr261NO/VC7Zvh2rV7I5KqQyV3S87bz/0Nuu6rCObZKPuxLoMWj6Iq8lX7Q4N0ASulLqZa9es7mChoXDkiDWq2pgxkCeP3ZEp5TERpSLY0WsHXYK78N6696j5ZU32nNxjd1iawJVSqThyBCIj4YUX4OGHre5hLVrYHZVStsiXIx8TWk5g1pOzOHDmAFXHVeXzrZ/bOp66SwlcRCJFZK+I7BORATfYnkNEvnNs3ywi97g9UqWU58ycaY1jvn49jB1rXXnfdZfdUSllu0crPEp8n3jqlKnDsz8+S7Nvm3H0/FFbYkkzgYuIHzAaaAJUBNqKSMUUxboBp40x9wMjgGHuDlQp5QHnzlndwZ54Au67D2JirGfe2j1MqeuK5yvOwvYLGdVkFCsPrCRwTCBz9szxeByS1uW/iEQAbxljGjuWXwMwxvzXqcxiR5mNIuIPHAWKmJvsPCwszERHR7uhCg4bNsDZs+7bn1JZzdmzMHAgHDwIgwbB4MGQPbvdUSnl1X468RPtZ7Un5mgM3UO6MyJyBHkD8rr7MDf8Bu1K/48SwCGn5QSgempljDFJInIWKAyc/EcEIj2BngClS5d2KWqXvfACbN3q3n0qldXcey+sXQs1a9odiVI+oUKRCmzqvok3V77JsPXDKJqnKEMbDPXIsT3agdMYMx4YD9YVuFt3HhUFFy64dZdKZSkiULky5M5tdyRK+ZQAvwD+2/C/NH+gOVWKVfHYcV1J4IeBUk7LJR3rblQmwXELPT9wyi0RuqpyZY8eTimllHJWq3Qtjx7PlVboW4FyInKviAQAbYC5KcrMBTo5Xj8OrLjZ82+llFJK3Z40r8Adz7SfAxYDfkCUMWaXiAwBoo0xc4EvgW9EZB/wJ1aSV0oppVQGSbMVekZxeyt0pZRSKnO6YSt0HYlNKaWU8kGawJVSSikfZNstdBE5ARx0827vJEXfcx+n9fF+ma1OWh/vpvXxfhlRp5PGmMiUK21L4BlBRKKNMWF2x+EuWh/vl9nqpPXxblof7+fJOuktdKWUUsoHaQJXSimlfFBmS+Dj7Q7AzbQ+3i+z1Unr4920Pt7PY3XKVM/AlVJKqawis12BK6WUUlmCJnCllFLKB/lEAheR8iKyw+nnnIi8kKJMPRE561TmDadtkSKyV0T2icgAj1cgBRfr84rT9p0ikiwihRzbDohIvGObV4xHKyIvisguR6xTRSRniu05ROQ7xznYLCL3OG17zbF+r4g09njwN+BCfV4Skd0iEiciy0WkjNO2ZKdzl3LiH1u4UJ/OInLCKe7uTts6icgvjp9O/967PVyo0win+vwsImectnnjOXreUZddKf8eOLaLiHzq+KzEiUhVp21ed45cqE97Rz3iRWSDiFRx2uaNf+PSqo/nc5Axxqd+sCZUOQqUSbG+HjA/lfK/AmWBACAWqGh3PdKqT4oyLbBmePt7+QBwp92xO8VTAvgNyOVYng50TlHmGWCs43Ub4DvH64qOc5IDuNdxrvx8oD4PAbkdr/v8XR/H8nm7z8kt1Kcz8NkN3lsI2O/4t6DjdUFfqFOK8v+HNRGTt56jysBOIDfWJFPLgPtTlGkKLMQaF7sGsNlbz5GL9an5d5xAk7/r41j2tr9xrtSnHh7OQT5xBZ5CA+BXY4yro7iFA/uMMfuNMVeBaUCrDIsu/VypT1tgqofiuVX+QC6x5oPPDRxJsb0V8LXj9UyggYiIY/00Y8wVY8xvwD6sc2a3m9bHGLPSGHPRsbgJKOnh+NIrrfOTmsbAUmPMn8aY08BS4F8jQtkkPXXy9s9QBawEdtEYkwSsBlqnKNMKmGQsm4ACIlIc7zxHadbHGLPBES94/2fIlfOTmgzLQb6YwNuQ+gcxQkRiRWShiFRyrCsBHHIqk+BY5y1uVh9EJDfWh/F7p9UGWCIi20SkZwbHlyZjzGFgOPA78Adw1hizJEWx6+fB8QE4CxTGC8+Pi/Vx1g3ryuhvOUUkWkQ2icgjGRepa9JRn8cctzRnikgpxzqvOz+QvnPkeLxxL7DCabVXnSOsq7v/iEhhx2e+KVAqRZnUzoU3niNX6uMs5WfIq/7G4Xp9PJqDfCqBi0gA0BKYcYPN27FuQ1cBRgE/eDC0W5JGff7WAlhvjPnTaV1tY0xVrNtOz4pInQwMM00iUhDrG+W9wN1AHhHpYGdMtyM99XGsDwM+dFpdxlhDKbYDRorIfRkc8k25WJ95wD3GmCCsK7iv8WLp/D/XBphpjEl2WudV58gY8xMwDFgCLAJ2AMk3e483S099ROQhrAT+qtNqr/ob52J9PJ6DfCqBY53M7caYYyk3GGPOGWPOO17/CGQXkTuBw/zzm1JJxzpvkGp9nPzrCt1x9YEx5jgwG/tvOTcEfjPGnDDGJAKzsJ5vObt+Hhy3PPMDp/DO8+NKfRCRhsAgoKUx5srf653Oz35gFRDiiaBvIs36GGNOOdVhAhDqeO2N5wdcPEcON/sMecs5whjzpTEm1BhTBzgN/JyiSGrnwivPkQv1QUSCsP6/tTLGnHJ6r7f9jUuzPrbkIHc8SPfUD9azgy6pbCvG/wamCce6tSZYz8n2Y31T/7sBQSW765JWfRzb8wN/Anmc1uUB8jm93gBE2lyP6sAurOeQgnX19n8pyjzLPxuxTXe8rsQ/G7Htx/5GbK7UJwSrYUq5FOsLAjkcr+8EfsHmRpMu1qe40+tHgU2O14WwGosVdPz8BhSysz6u1slR7kGsBlHizefIEUtRx7+lgT1AgRTbm/HPRmxbvPwcpVWf0lhtXmqmWO91f+NcrI/Hc5Ctv5B0/vLyYF2x5Xda1xvo7Xj9nOMDHYvVIKKmU7mmWN+WfgUG2V0XV+rjWO6M1cDL+X1lHXWMddTXW+rztuM/9U7gG6yEPATr6hQgJ9ajgn3AFqCs03sHOc7NXqCJ3XVxsT7LgGNYt9J2AHMd62sC8Y7zEw90s7suLtbnv06fn5XAg07v7eo4b/u4yRdOb6uTo8xbwPsp3uet52gtsNsRVwPHOue/cQKMdnxW4oEwbz5HLtRnAtaV7N+foWjHem/9G5dWfTyeg3QoVaWUUsoH+dozcKWUUkqhCVwppZTySZrAlVJKKR+kCVwppZTyQZrAlVJKKR+kCVwppZTyQZrAlVJKKR/0/yQywIIP5e5zAAAAAElFTkSuQmCC\n", + "image/png": "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0rhxY95++23q1atHUlIS+fn5e7fx888/U7NmTbZv3865557Lm2++uffivaysLLp06cLQoUM58sgjueeee/bJWLyfiin15Lhu2BSpBPo368/THZ/mtS9fo9+sfuzeszv4N2/YAKmp3gxjOTkq3hLVzj77bNatW8fkyZPp2LHj715btGgRDz/8MM2aNeOiiy5ix44drF+/HoDU1FSqV69OQkICp59+Ot98802p63/yySf37mVv2LCBr776CoD4+Pi959pbtGjBunXrDvuz6KZNkUrihnNvIG9nHsMWDyMpLokxXcaUfdXrxo2QlgZbtsAbb8Dppx+4vUgQytpTLm9du3bl9ttvZ8mSJWze/P+XaznnmDFjBo0bN/5d+2XLllG1atW9z2NjYykqKtpnvUuWLCEnJ4f33nuPatWq7f0jACAuLm7v79v+3n+wtAcuUoncef6d3N32bl746AX+vPDPHPAU2s8/Q3o65ObCvHlwzjnhCypSjgYOHMh9993HWWed9bvl7du356mnntr7e/HRRx+Vua64uDh27doFwNatW6lRowbVqlXjiy++4P33y3duAu2Bi1Qyf734r+TtzGP0stEkV01mxMUj9m2UlwcdOsDq1TB3LvzhD+EPKlJO6taty80337zP8nvvvZchQ4Zw9tlns2fPHho0aMCcOQeeqnfw4MGcffbZnHPOOYwdO5bnnnuOJk2a0LhxY1q1alVeHwHQRWwildIet4drsq5h7Mdj+Xva37njD3f8/4vbtnlDo779NsyY4d3zLXKY9nNxlpRwMBexaQ9cpBKKsRjGdBlDwa4ChuYMJSk+ievPvR4KC71JSd56yxvbXMVbJGKpgItUUrExsUzoNoGCXQXcMO8GkmOOoM/f5nijq40ZA8XujxWRyKMCLlKJxcXGMe3yaXSe2JE9g66CT/Dm9r7mGr+jiUgZdBW6SCWXEFuVecsa0e8TeODiGBZ20a1iItFABVykshs+nPjnxrBjyI3MuuIsur3Sjbe+ecvvVCJSBhVwkcrsoYfg4Yfh2mtJeOxJFvZdxIlHnUjnSZ1Z/u1yv9OJyAGogItUVk8+CXffDb17wzPPgBnHJB5Ddt9salWrRcbLGXy66VO/U4qETHlMJ1qa8pg6tDQq4CKV0dixcMstcMklMG4cxPz/V0HdI+uyuN9iEqokkDY+ja82f+VbTJFQKo/p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\n", "text/plain": [ "
" ] @@ -613,7 +798,7 @@ }, { "cell_type": "code", - "execution_count": 68, + "execution_count": 477, "id": "879f64ec", "metadata": {}, "outputs": [ @@ -621,22 +806,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "(0.0, 1.0)\n", - "(0.0, 0.0)\n", - "(0.0, 1.0)\n", - "(0.0, 1.0)\n", - "(0.0, 1.0)\n", - "(0.0, 1.0)\n", - "(0.0, 1.0)\n", - "(0.0, 1.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n" + "[(0.0, 1.0), (0.0, 0.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0)]\n" ] } ], @@ -647,15 +817,19 @@ " return mini , hi\n", " \n", "i = 0\n", + "anggota_usia = []\n", "for usia in _data_usia:\n", " ini_dia = FungsiKeanggotaan(x_usia,lo_usia,hi_usia,usia)\n", - " print(ini_dia)\n", - " " + " \n", + " anggota_usia.append(ini_dia)\n", + " i = i+1\n", + "# print(ini_dia) \n", + "print(anggota_usia)" ] }, { "cell_type": "code", - "execution_count": 69, + "execution_count": 478, "id": "d6c3a52d", "metadata": {}, "outputs": [ @@ -663,36 +837,23 @@ "name": "stdout", "output_type": "stream", "text": [ - "(0.0, 1.0)\n", - "(0.0, 1.0)\n", - "(0.0, 1.0)\n", - "(0.0, 1.0)\n", - "(0.0, 1.0)\n", - "(0.0, 1.0)\n", - "(0.0, 1.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n", - "(1.0, 0.0)\n", - "(0.0, 1.0)\n", - "(0.0, 0.0)\n", - "(1.0, 0.0)\n" + "[(1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (0.75, 0.25), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (1.0, 0.0), (0.0, 0.0), (0.0, 1.0)]\n" ] } ], "source": [ - "i = 0\n", + "anggota_berat = []\n", "for berat in _data_berat:\n", - " ini_dia = FungsiKeanggotaan(x_berat,hi_berat,lo_berat,berat)\n", - " print(ini_dia)\n", + " ini_dia = FungsiKeanggotaan(x_berat,lo_berat,hi_berat,berat)\n", + " anggota_berat.append(ini_dia)\n", + " \n", + "print(anggota_berat)\n", " " ] }, { "cell_type": "code", - "execution_count": 70, + "execution_count": 479, "id": "bd724cff", "metadata": {}, "outputs": [ @@ -715,21 +876,23 @@ "(1.0, 0.0)\n", "(1.0, 0.0)\n", "(1.0, 0.0)\n", - "(1.0, 0.0)\n" + "(1.0, 0.0)\n", + "[(0.0, 1.0), (1.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (1.0, 0.5), (1.0, 1.0), (0.0, 0.0), (0.0, 1.0), (1.0, 1.0), (1.0, 1.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0)]\n" ] } ], "source": [ - "i = 0\n", + "anggota_keliling = []\n", "for keliling in _data_keliling:\n", " ini_dia = FungsiKeanggotaan(x_keliling,lo_keliling,hi_keliling,keliling)\n", + " anggota_keliling.append(ini_dia)\n", " print(ini_dia)\n", - " " + "print(anggota_keliling) " ] }, { "cell_type": "code", - "execution_count": 71, + "execution_count": 480, "id": "0370f3ff", "metadata": {}, "outputs": [ @@ -752,20 +915,23 @@ "(1.0, 0.0)\n", "(0.6000000000000001, 0.3999999999999999)\n", "(0.7000000000000002, 0.2999999999999998)\n", - "(0.5, 0.5)\n" + "(0.5, 0.5)\n", + "[(0.0, 1.0), (0.5, 0.5), (1.0, 0.0), (0.0, 0.0), (0.2999999999999998, 0.7000000000000002), (0.0, 1.0), (1.0, 0.0), (0.5, 0.5), (0.0, 1.0), (0.2999999999999998, 0.7000000000000002), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (0.6000000000000001, 0.3999999999999999), (0.7000000000000002, 0.2999999999999998), (0.5, 0.5)]\n" ] } ], "source": [ - "i = 0\n", + "anggota_ukuran_batang = []\n", "for ukuran_batang in _data_ukuran_batang:\n", " ini_dia = FungsiKeanggotaan(x_ukuran_batang,lo_ukuran_batang,hi_ukuran_batang,ukuran_batang)\n", - " print(ini_dia)" + " print(ini_dia)\n", + " anggota_ukuran_batang.append(ini_dia)\n", + "print(anggota_ukuran_batang)" ] }, { "cell_type": "code", - "execution_count": 72, + "execution_count": 481, "id": "5e3c20cf", "metadata": {}, "outputs": [ @@ -774,34 +940,37 @@ "output_type": "stream", "text": [ "(0.0, 0.0)\n", - "(0.0, 0.0)\n", - "(0.0, 0.0)\n", - "(0.0, 0.0)\n", - "(0.0, 0.0)\n", - "(0.0, 0.0)\n", - "(0.0, 0.0)\n", - "(0.0, 0.0)\n", - "(0.0, 0.0)\n", - "(0.0, 0.0)\n", + "(0.0, 1.0)\n", + "(0.0, 1.0)\n", + "(0.0, 1.0)\n", + "(0.0, 1.0)\n", + "(0.0, 1.0)\n", + "(0.0, 1.0)\n", + "(0.0, 1.0)\n", + "(0.0, 1.0)\n", + "(0.0, 1.0)\n", "(1.0, 0.0)\n", "(1.0, 0.0)\n", "(1.0, 0.0)\n", "(0.5, 0.5)\n", "(1.0, 0.0)\n", - "(0.0, 1.0)\n" + "(0.0, 1.0)\n", + "[(0.0, 0.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (0.0, 1.0), (1.0, 0.0), (1.0, 0.0), (1.0, 0.0), (0.5, 0.5), (1.0, 0.0), (0.0, 1.0)]\n" ] } ], "source": [ - "i = 0\n", + "anggota_jarak_duri = []\n", "for jarak_duri in _data_jarak_duri:\n", " ini_dia = FungsiKeanggotaan(x_jarak_duri,lo_jarak_duri,hi_jarak_duri,jarak_duri)\n", - " print(ini_dia)" + " anggota_jarak_duri.append(ini_dia)\n", + " print(ini_dia)\n", + "print(anggota_jarak_duri)" ] }, { "cell_type": "code", - "execution_count": 123, + "execution_count": 482, "id": "aa25537e", "metadata": {}, "outputs": [ @@ -1233,76 +1402,424 @@ "# 'Jarak Duri' : 'Rendah', 'Keterangan' : 'Mentah'}, \n", "# ] \n", "\n", + "# df = data_rule\n", + "\n", + "# df.to_csv('out.csv')\n", "# Creates DataFrame. \n", "# df = pd.DataFrame(data_rule) \n", + "# df.to_csv('out.csv',index=False)\n", "# df.to_excel(\"output.xlsx\")\n", "df = pd.read_csv(\"dataset/rule.csv\")\n", + "# vals = df.values\n", + "rule_length = len(df.index)\n", + "# list_rule = vals.tolist()\n", + "list_rule = df\n", " \n", "# Print the data \n", "# df\n", - "from IPython.display import display, HTML\n", + "# from IPython.display import display, HTML\n", "display(HTML(\"

\"))\n", "display(HTML(df.to_html(index=False)))" ] }, { "cell_type": "code", - "execution_count": 86, + "execution_count": 483, "id": "0cc2f82f", "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "('R', 'R', 'R', 'R', 'R')\n", - "('R', 'R', 'R', 'R', 'T')\n", - "('R', 'R', 'R', 'T', 'R')\n", - "('R', 'R', 'R', 'T', 'T')\n", - "('R', 'R', 'T', 'R', 'R')\n", - "('R', 'R', 'T', 'R', 'T')\n", - "('R', 'R', 'T', 'T', 'R')\n", - "('R', 'R', 'T', 'T', 'T')\n", - "('R', 'T', 'R', 'R', 'R')\n", - "('R', 'T', 'R', 'R', 'T')\n", - "('R', 'T', 'R', 'T', 'R')\n", - "('R', 'T', 'R', 'T', 'T')\n", - "('R', 'T', 'T', 'R', 'R')\n", - "('R', 'T', 'T', 'R', 'T')\n", - "('R', 'T', 'T', 'T', 'R')\n", - "('R', 'T', 'T', 'T', 'T')\n", - "('T', 'R', 'R', 'R', 'R')\n", - "('T', 'R', 'R', 'R', 'T')\n", - "('T', 'R', 'R', 'T', 'R')\n", - "('T', 'R', 'R', 'T', 'T')\n", - "('T', 'R', 'T', 'R', 'R')\n", - "('T', 'R', 'T', 'R', 'T')\n", - "('T', 'R', 'T', 'T', 'R')\n", - "('T', 'R', 'T', 'T', 'T')\n", - "('T', 'T', 'R', 'R', 'R')\n", - "('T', 'T', 'R', 'R', 'T')\n", - "('T', 'T', 'R', 'T', 'R')\n", - "('T', 'T', 'R', 'T', 'T')\n", - "('T', 'T', 'T', 'R', 'R')\n", - "('T', 'T', 'T', 'R', 'T')\n", - "('T', 'T', 'T', 'T', 'R')\n", - "('T', 'T', 'T', 'T', 'T')\n", - "32\n" - ] + "data": { + "text/html": [ + "

" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
FungsiNama VariabelSemesta PembicaraanHimpunan FuzzyDomain
InputUsia[ 9 , 18 ]Rendah[ 9 , 14.0 ]
Tinggi[ 13.0 , 18 ]
Berat[ 505 , 950 ]Rendah[ 505 , 827.5 ]
Tinggi[ 807.5 , 950 ]
Keliling[ 30.0 , 46.0 ]Rendah[ 30.0 , 43.0 ]
Tinggi[ 41.0 , 46.0 ]
Ukurang Batang[ 2.5 , 5.0 ]Rendah[ 2.5 , 4.5 ]
Tinggi[ 3.5 , 5.0 ]
Jarak Duri[ 7.5 , 10.9 ]Rendah[ 7.5 , 9.95 ]
Tinggi[ 8.95 , 10.9 ]
OutputKeterangan[ 0 , 1 ]Rendah (Mentah)[ 0 , 0.5 ]
Tinggi (Masak)[ 0.5 , 1 ]
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "import itertools as it\n", + "# import itertools as it\n", "\n", "\n", - "my_dict={'Usia':['R','T'],'Berat':['R','T'],'Keliling':['R','T'],'Ukuran Batang':['R','T'],'Jarak Duri':['R','T']}\n", - "allNames = sorted(my_dict)\n", - "combinations = it.product(*(my_dict[Name] for Name in allNames))\n", - "counter = 0\n", - "for combi in combinations:\n", - " print(combi)\n", - " counter = counter + 1\n", - "print(counter)\n" + "# my_dict={'Usia':['R','T'],'Berat':['R','T'],'Keliling':['R','T'],'Ukuran Batang':['R','T'],'Jarak Duri':['R','T']}\n", + "# allNames = sorted(my_dict)\n", + "# combinations = it.product(*(my_dict[Name] for Name in allNames))\n", + "# counter = 0\n", + "# for combi in combinations:\n", + "# print(combi)\n", + "# counter = counter + 1\n", + "# print(counter)\n", + "from IPython.display import display, HTML\n", + "display(HTML(\"

\"))\n", + "display(HTML(himpunan_fuzzy.to_html(index=False)))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 486, + "id": "f2aab147", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NoUsiaBeratKelilingUkuran BatangJarak DuriVariable LinguisticKeteranganMSE
0TinggiRendahTinggiTinggiRendahMasakMasak0
1RendahRendahTinggiTinggiTinggiMasakMasak0
2TinggiRendahTinggiRendahTinggiMasakMasak0
3TinggiRendahTinggiTinggiTinggiMasakMasak0
4TinggiRendahTinggiTinggiTinggiMasakMasak0
5TinggiRendahRendahTinggiTinggiMasakMasak0
6TinggiRendahTinggiRendahTinggiMasakMasak0
7TinggiRendahTinggiTinggiTinggiMasakMasak0
8RendahTinggiTinggiTinggiTinggiMentahMentah0
9RendahTinggiTinggiTinggiTinggiMentahMentah0
10RendahTinggiTinggiRendahRendahMentahMentah0
11RendahTinggiRendahRendahRendahMentahMentah0
12RendahTinggiRendahRendahRendahMentahMentah0
13RendahRendahRendahRendahRendahMentahMentah0
14RendahRendahRendahRendahRendahMentahMentah0
15RendahTinggiRendahTinggiTinggiMentahMentah0
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# print(str(list_rule.iloc[[0]]['Usia']))\n", + "# print(list_rule.at[0,'Usia'])\n", + "# haha = \"ngam\" if str(list_rule.at[0,'Usia']) == 'Tinggi' else \"tidak\"\n", + "# print(haha)\n", + "hitungan_fuzzy_tsukamoto = []\n", + "# ii = 1\n", + "for e in range(i):\n", + " ket_usia = \"Tinggi\" if anggota_usia[e][0] < anggota_usia[e][1] else \"Rendah\"\n", + " ket_berat = \"Tinggi\" if anggota_berat[e][0] < anggota_berat[e][1] else \"Rendah\" \n", + " ket_keliling = \"Tinggi\" if anggota_keliling[e][0] <= anggota_keliling[e][1] else \"Rendah\"\n", + " ket_ukuran_batang = \"Tinggi\" if anggota_ukuran_batang[e][0] <= anggota_ukuran_batang[e][1] else \"Rendah\"\n", + " ket_jarak_duri = \"Tinggi\" if anggota_jarak_duri[e][0] < anggota_jarak_duri[e][1] else \"Rendah\"\n", + " \n", + " data_usia = 1 if ket_usia == \"Tinggi\" else 0\n", + " data_berat = 1 if anggota_berat[e][0] < anggota_berat[e][1] else 0\n", + " data_keliling = 1 if anggota_keliling[e][0] <= anggota_keliling[e][1] else 0\n", + " data_ukuran_batang = 1 if anggota_ukuran_batang[e][0] <= anggota_ukuran_batang[e][1] else 0\n", + " data_jarak_duri = 1 if anggota_jarak_duri[e][0] < anggota_jarak_duri[e][1] else 0\n", + " \n", + "# print(data_usia)\n", + " \n", + " keterangan = None\n", + " for n in range(rule_length):\n", + " if str(list_rule.at[n,'Usia']) == ket_usia and str(list_rule.at[n,'Berat']) == ket_berat and str(list_rule.at[n,'Keliling']) == ket_keliling and str(list_rule.at[n,'Ukuran Batang']) == ket_ukuran_batang and str(list_rule.at[n,'Jarak Duri']) == ket_jarak_duri:\n", + " keterangan = str(list_rule.at[n,'Keterangan'])\n", + " \n", + "# print(keterangan)\n", + " \n", + "# res = next((sub for sub in test_list if sub['is'] == 7), None)\n", + " \n", + " \n", + " data = {\"No\" : e, \"Usia\" : ket_usia, \"Berat\" : ket_berat, \"Keliling\" : ket_keliling, \n", + " \"Ukuran Batang\" : ket_ukuran_batang, \"Jarak Duri\" : ket_jarak_duri ,\"Variable Linguistic\" : keterangan,\n", + " \"Keterangan\" : data_durian.at[e,'Keterangan'], \"MSE\" : 0 if keterangan == data_durian.at[e,'Keterangan'] else 1\n", + " }\n", + " hitungan_fuzzy_tsukamoto.append(data)\n", + " \n", + " \n", + "# ii = ii +1\n", + "# print(hitungan_fuzzy_tsukamoto)\n", + "df = pd.DataFrame(hitungan_fuzzy_tsukamoto) \n", + "display(HTML(df.to_html(index=False)))" ] } ],