You are on page 1of 12

IMPLEMENTASI METODE FUZZY TSUKAMOTO DALAM MENGHITUNG

KECEPATAN PUTARAN KIPAS CPU

Mata Kuliah
Kecerdasan Buatan

Disusun Oleh
Fajar Wahyuardha Putra (2113020079)
Rachmad Abadi (2113020236)
Nur Kholiq Yoga W. (2113020251)

PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS NUSANTARA KEDIRI
2023
ANALISA DAN PENYELESAIAN MASALAH
Kipas CPU adalah perangkat yang dirancang untuk menarik panas dari CPU sistem
dan komponen lain dalam enklosur. Menggunakan pendingin CPU untuk menurunkan suhu
CPU akan dapat meningkatkan efisiensi dan stabilitas sistem. Sistem pendingin ini umumnya
disebut sebagai pendingin udara dan sering digunakan bersama dengan sistem yang dirancang
untuk meningkatkan aliran udara. Kecepatan bisa disesuaikan tergantung suhu dan
penggunaan performa CPU.
Dalam menentukan kecepatan putaran kipas yang dibutuhkan dapat diperoleh dari
data berapa suhu CPU dan berapa tingkat performa CPU yang digunakan. Untuk dapat
mengetahui kecepatan putaran kipas CPU saya menggunakan metode Fuzzy Tsukamoto,
karena metode tersebut mudah untuk dipahami bagi orang yang baru mempelajari
pemrograman seperti saya ini, dan saya rasa metode Fuzzy Tsukamoto ini sudah sesuai
diimplementasikan dalam studi kasus menentukan kecepatan putaran kipas CPU.
Perangkat yang umumnya ada pada setiap laptop atau PC adalah fan/kipas CPU yang
berguna sebagai perangkat pendingin prosesor, tidak hanya sebagai pendingin, kipas CPU
juga berfungsi untuk meminimalisir debu untuk bersarang didalam laptop atau PC. Saat ini
kecepatan putaran kipas bisa disesuaikan dengan penggunaannya. Suhu dan tingkat performa
adalah penentu seberapa cepat putaran kipas yang dihasilkan. Spesifikasi pada contoh studi
kasus ini sebagai berikut :
1. Kecepatan kipas ≤ 2000 rpm termasuk lambat, dan diatas ≥5000 rpm termasuk cepat.
2. Suhu CPU dibawah 35° C (rendah), suhu diatas 70° C (tinggi)
3. Penggunaan performa CPU yaitu 1 sampai dengan 10, dibawah 4 bisa dikatakan lambat,
dan diatas 8 dikatakan cepat.

RULES :
4. Jika Suhu CPU rendah dan Performa CPU lambat maka kecepatan kipas lambat.
5. Jika Suhu CPU rendah dan Performa CPU cepat maka kecepatan kipas tinggi.
6. Jika Suhu CPU tinggi dan Performa CPU lambat maka kecepatan kipas lambat.
7. Jika Suhu CPU tinggi dan Performa CPU cepat maka kecepatan kipas cepat.

HASIL DAN PEMBAHASAN


Dalam pengujian metode fuzzy tsukamoto kali ini saya mencoba menentukan berapa
putaran kipas CPU yang dihasilkan jika suhu CPU 58 ° C dan tingkat performa 6. Dari data
yang didapat nantinya bisa diketahui berapa kecepatan putaran kipas CPU dengan bahasa
pemrograman C++ yang menggunakan metode Fuzzy Tsukamoto.

A. Variabel Linguistik
1. Suhu CPU
{
0 ; x>70
70−x
μRendah(x) = ; 35< x<70
70−35
1; x <35

{
0 ; x<35
x−35
μTinggi(x) = ; 35< x<70
70−35
1; x >70

2. Tingkat Performa CPU

{
0;x>8
8−x
μLambat(x) = ; 4< x <8
8−4
1 ; x <4

{
0; x < 4
x−4
μCepat(x) = ; 4 < x< 8
8−4
1;x>8

3. Kecepatan Putaran Kipas CPU


{
0 ; x ≥ 5000
5000−z
μLambat(z) = ; 2000< x<5000
5000−2000
1 ; x ≤ 2000

{
0 ; z ≤ 2000
z −2000
μCepat(z) = ; 2000< z<5000
5000−2000
1 ; z ≥ 5000

B. Penyelesaian
1. Diketahui atau yang akan diinputkan pada program sebagai berikut :
- Tingkat Performa CPU : 6
- Suhu CPU : 58° C
2. Fuzzifikasi
Tingkat performa CPU = 6
8−6 6−4
μLambat ( 6 )= =0.5 μCepat ( 6 ) = =0.5
8−4 8−4
Suhu CPU = 58°C
70−58 58−35
μRendah (58 )= =0.342857 μTinggi ( 58 )= =0.657143
70−35 70−35
3. Inferensi
- Jika Suhu CPU rendah dan Performa CPU lambat maka kecepatan kipas lambat.
a-predikat1 = μrendah(x)∩ μlambat(x)
= min( μrendah ( 58 ) ; μlambat ( 6 ))
= min(0.342857 ; 0.5 )
= 0.342857
5000−z 1
μ(z ) =
5000−2000
5000−z 1
0.342857 =
3000
Z1 = 3971.43
- Jika Suhu CPU rendah dan Performa CPU cepat maka kecepatan kipas tinggi.
a-predikat2 = μrendah(x)∩ μcepat(x)
= min( μrendah ( 58 ) ; μcepat (6 ))
= min(0.342857 ; 0.5 )
= 0.342857
z 2−2000
μ(z ) =
5000−2000
z 2−2000
0.342857 =
3000
Z2 = 3028.57
- Jika Suhu CPU tinggi dan Performa CPU lambat maka kecepatan kipas lambat.
a-predikat3 = μtinggi(x)∩ μlambat(x)
= min( μrendah ( 58 ) ; μlambat ( 6 ))
= min(0.657143 ; 0.5)
= 0.5
5000−z 3
μ(z ) =
5000−2000
5000−z 3
0.5 =
3000
Z3 = 3500
- Jika Suhu CPU tinggi dan Performa CPU cepat maka kecepatan kipas cepat.
a-predikat4 = μtinggi(x)∩ μcepat(x)
= min( μtinggi ( 58 ) ; μcepat ( 6 ))
= min(0.657143 ; 0.5)
= 0.5
z 4−2000
μ(z ) =
5000−2000
z 4−2000
0.5 =
3000
Z4 = 3500

4. Defuzzifikasi
( a 1∗z 1 )+ ( a 2∗z 2 ) + ( a 3∗z 3 ) + ( a 4∗z 4 )
Z=
a 1+ a2+ a 3+a 4
( 0.342857∗3971.43 ) + ( 0.342857∗3028.57 ) + ( 0.5∗3500 ) +(0.5∗3500)
Z= = 3500
0.342857+0.342857 +0.5+0.5
Jadi kecepatan putaran kipas CPU yang ditentukan dari suhu = 58°C dan tingkat performa = 6
adalah 3500 rpm

C. Tampilan Program dan Hasil Running Program


Berikut ini adalah hasil program dan running program yang sudah dibuat. Pada hasil
running akan diarahkan untuk menginputkan performa CPU dan suhu CPU. Untuk input bisa
disesuaikan dengan contoh studi kasus diatas yaitu performa CPU bernilai 6, dan suhu CPU
bernilai 58.

Gambar 1. Coding Input Performa CPU dan Suhu CPU


Gambar 2. Coding Fuzzifikasi
Gambar 3. Coding Inferensi

Gambar 4. Coding Defuzzifikasi

Gambar 5. Coding Hasil/Output

Gambar 6. Input Performa dan Suhu

Gambar 7. Hasil Kecepatan Putaran Kipas CPU


#include <iostream>
#include <stdio.h>

float per, suhu, lambat, cepat, rendah, tinggi;


void ulambat()
{
if (per<4)
{
lambat=1;
}else if (per>=4&&per<8)
{
lambat=(8-per)/(8-4);
}else if (per>=8)
{
lambat=0;
}
}
void ucepat()
{
if (per>=8)
{
cepat=1;
}else if (per>=4&&per<8)
{
cepat=(per-4)/(8-4);
}else if(per<4)
{
cepat=0;
}
}
void urendah()
{
if (suhu<35)
{
rendah=1;
}else if (suhu>=35&&suhu<70)
{
rendah=(70-suhu)/(70-35);
}else if (suhu>=70)
{
rendah=0;
}
}
void utinggi()
{
if (suhu>=70)
{
tinggi=1;
}else if (suhu>=35&&suhu<70)
{
tinggi=(suhu-35)/(70-35);
}else if(suhu<35)
{
tinggi=0;
}
}
void fuzzyfikasi()
{
ulambat();
ucepat();
urendah();
utinggi();
}
using namespace std;
main()
{
float a1, a2, a3, a4, z1, z2, z3, z4, hasil;
cout<<"Performa CPU : "; cin>>per;
cout<<"Suhu CPU : "; cin>>suhu;
cout<<endl;
fuzzyfikasi();
cout<<"Nilai Suhu Rendah : "<<rendah<<endl;
cout<<"Nilai Suhu Tinggi : "<<tinggi<<endl;
cout<<"Nilai Performa Lambat : "<<lambat<<endl;
cout<<"Nilai Performa Cepat : "<<cepat<<endl;
if (rendah<lambat)
{
a1=rendah;
}else
{
a1=lambat;
}
if (rendah<cepat)
{
a2=rendah;
}else
{
a2=cepat;
}
if (tinggi<lambat)
{
a3=tinggi;
}else
{
a3=lambat;
}
if (tinggi<cepat)
{
a4=tinggi;
}else
{
a4=cepat;
}
z1=5000-a1*(5000-2000);
z2=a2*(5000-2000)+2000;
z3=5000-a3*(5000-2000);
z4=a4*(5000-2000)+2000;
hasil=(a1*z1+a2*z2+a3*z3+a4*z4)/(a1+a2+a3+a4);
cout<<"\nNilai Z1 : "<<z1<<endl;
cout<<"Nilai Z2 : "<<z2<<endl;
cout<<"Nilai Z3 : "<<z3<<endl;
cout<<"Nilai Z4 : "<<z4<<endl;
cout<<"\nNilai a1 : "<<a1<<endl;
cout<<"Nilai a2 : "<<a2<<endl;
cout<<"Nilai a3 : "<<a3<<endl;
cout<<"Nilai a4 : "<<a4<<endl;
cout<<"\n=============\tKecepatan Putaran Kipas CPU : "<<hasil<<" RPM"<<"\
t============="<<endl;

return 0;
}

You might also like