Kelas A2
FAKULTAS TEKNIK
2022
A. Tujuan
Setelah melakukan praktikum mahasiswa diharapkan :
1. Memahami proses fuzzyfikasi serta aplikasinya pada mikrokontroller Arduino
Nano.
2. Memahami perhitungan derajat keanggotaan.
B. Teori Dasar
Fuzzyfikasi
Fuzzyfikasi yaitu suatu proses untuk mengubah suatu masukan dari bentuk tegas (crisp)
menjadi fuzzy (variabel linguistik) yang biasanya disajikan dalam bentuk
himpunan-himpunan fuzzy dengan suatu fungsi keanggotaannya masing-masing. Fungsi
keanggotaan merupakan suatu kurva yang menunjukkan pemetaan titik-titik input data
kedalam nilai keanggotaanya (disebut juga dengan derajat keanggotaan) yang memiliki
interval antara 0 sampai 1. Untuk mendapatkan nilai keanggotaan dapat menggunakan
cara pendekatan fungsi. Fungsi keanggotaan yang digunakan dalam praktikum kali ini
adalah Representasi Kurva Segitiga dan Representasi Kurva Trapesium.
Pada percobaan kali ini akan dibahas tahapan proses fuzzyfikasi dengan dua variabel
Input yang diperoleh dari 2 buah potensiometer. Pada bagian Input terdapat 2 variabel
yaitu variabel Error dan variabel Perubahan Error. Linguistik Variabel Error
mempunyai 3 buah linguistik value yaitu ErrorNeg, ErrorZero dan ErrorPos
sedangkan untuk Linguistik Variabel Perubahan Error mempunyai 3 buah
linguistik value yaitu DerrorNeg, DerrorZero dan DerrorPos. Data ADC dari
potensiometer bernilai 0-255, karena data tersebut terlalu lebar sehingga perlu
dilakukan pembatasan atau range agar nilai variabel error dapat bernilai -8 sampai 8
dan nilai variabel perubahan error bernilai 16 sampai 16.
1. Variabel Error
Variabel Error dibuat range pengukuran yaitu mulai -8 sampai dengan 8. Nilai ini
diperoleh dari pembacaan perubahan tegangan dari potensiometer yang menghasilkan
nilai error. Selanjutnya menentukan nilai untuk masing-masing domain seperti pada
gambar 25.
Setelah diketahui nilai errornya, bisa dilihat nilai error tersebut masuk anggota
mana saja beserta mencari nilai derajat keanggotaanya dengan memperhatikan
gambar 26 dan penjelasan di bawah ini.
Sehingga berdasarkan perhitungan di atas dapat dilihat bahwa nilai perubahan error 2
merupakan anggota himpunan DerrorZero dengan nilai keanggotaan 0,75 dan juga
nilai perubahan error 2 merupakan anggota himpunan DerrorPos dengan nilai
keanggotaan 0,25.
D. Keselamatan Kerja
1. Awali praktikum dengan berdoa.
2. Gunakanlah pakaian praktik pada saat praktikum.
3. Jauhkan peralatan yang tidak diperlukan dari meja kerja.
4. Bekerjalah dengan keadaan tanpa tegangan pada saat membuat dan mengubah
rangkaian.
5. Tanyakan kepada dosen pengampu atau staff pengajar ketika ada hal-hal yang masih
kurang paham.
E. Flowchart
Flowchart atau diagram alir adalah suatu bagan dengan simbol-simbol tertentu yang
menggambarkan urutan proses secara mendetail dan hubungan antara suatu proses
(instruksi) dengan proses lainnya dalam suatu program. Tujuannya agar praktikan dapat
dengan mudah memahami alur atau algoritma program dan juga dapat menyelaraskan
pikiran dengan rangkaian hardware yang hendak dirancang. Maka dari itu, flowchart
fuzzyfikasi variabel error pada gambar 29 dan flowchart fuzzyfikasi variabel perubahan
error pada gambar 30 adalah sebagai berikut.
Gambar 29. Flowchart Fuzzyfikasi Variabel Error
G. Langkah Kerja
1. Siapkan alat dan bahan yang dibutuhkan.
2. Buatlah rangkaian sesuai pada gambar 31 dan Tabel 8 di atas dengan
mengbungkan pin Arduino nano dengan pin potensiometer dan pin LCD
menggunakan kabel jumper.
3. Hidupkan PC/Laptop dan kemudian buka software Arduino IDE.
4. Siapkan library I2C LCD dapat di download di link http://unyku.ga/o8CQm
cari file “LiquidCrystal_I2C.rar” kemudian klik download.
5. Masukan library I2C LCD ke Arduino IDE dengan cara klik menu bar
Sketch → include library → add .ZIP Library → pilih file library →
open. Lebih jelas lihat gambar 32.
Gambar 32. Cara Memasukan Library ke Arduino
//----------I2C LCD------------
//A4:SDA -- A5:SCL (pin configurasi)
#include <Wire.h> // Menyertakan Library Komunikasi
#include <LiquidCrystal_I2C.h> // Menyertakan Library I2C
LiquidCrystal_I2C lcd(0x20,20,4); // set I2C address ke 0x27
//variabel global
int a,b,i,j,sensorA,sensorB; float x, y, error, d_error;
float u_error[3],u_d_error[3],u[3][3], errorneg, errorzero, errorpos,
d_errorneg, d_errorzero,d_errorpos;
void setup() {
lcd.init(); // inisialisasi LCD
lcd.backlight(); // nyalakan backlight
pinMode(8, INPUT_PULLUP); //Set pin 8 sebagai input set high
pinMode(9, INPUT_PULLUP); //Set pin 9 sebagai input set high
}
void loop() {
void baca_sensor()
{ sensorA = analogRead(A0); //baca data analog di pin A0 dari
potensiometer untuk dikirim ke variabel sensorA
sensorB = analogRead(A1); //baca data analog di pin A1 dari
potensiometer untuk dikirim ke variabel sensorA
a = map(sensorA, 0, 1023, 0, 255); //merubah resolusi data SensorA dari
10 bit(1023) menjadi 8 bit (255) kemudian disimpan di variabel a
b = map(sensorB, 0, 1023, 0, 255); //merubah resolusi data SensorB dari
10 bit(1023) menjadi 8 bit (255) kemudian disimpan di variabel b
//range variabel a=(-8)~(8) untuk nilai error
if(a>=241) {error=8;} else if(a>=227) {error=7;} else if(a>=213)
{error=6;} else if(a>=199) {error=5;} else if(a>=185) {error=4;} else
if(a>=171) {error=3;} else if(a>=157) {error=2;} else if(a>=143)
{error=1;} else if(a>=129) {error=0;}
else if(a>=115) {error=-1;} else if(a>=101) {error=-2;} else if(a>=87)
{error=-3;} else if(a>=73) {error=-4;} else if(a>=59) {error=-5;} else
if(a>=45) {error=-6;} else if(a>=31) {error=-7;}
else if((a<31)&&(a>=0)) {error=-8;}
7. Setelah program ditulis dan pastikan tidak ada program yang salah lakukan
upload program ke arduino dengan menghubungkan kabel data dari laptop ke
arduino nano kemudian mengatur menu bar Tools → Board : ”Arduino
Nano” → Processor : ”Atmega328” → Port : ”Com (Menyesuaikan
silahkan di cek di device manager)” atau dapat dilihat melalui gambar 33 di
bawah ini.
Gambar 33. Setting Konfigurasi Arduino
11. Ubahlah nilai error menjadi 0 dengan memutar potensiometer error dan amati
nilai error_negatif, error_zero dan error_positif pada display LCD.
12. Ulangi langkah kerja 10 untuk data error sesuai tabel 9 dan catat hasilnya.
13. Ulangi langkah kerja 10 dan 11 untuk variabel D_error atau perubahan error
dan catat hasilnya pada Tabel 10.
F. Hasil Percobaan
G. Tugas
1. Bandingkan data hasil percobaan dengan perhitungan secara langsung masing-masing
nilai derajat keanggotaan dari anggota variabel error dan D_error menggunakan
formula yang terdapat pada dasar teori.
Jawab :
a. Error
● sample 1 : nilai error = 3
Hasil perhitungan :
Error Zero = (5-3)/(5-0) = 0.4
Error Pos = (3-0)/(5-0) = 0.6
Hasil pengamatan :
Error Zero = 0.4
Error Pos = 0.6
2. Buatlah sistem fuzzyfikasi logika fuzzy dengan tiga buah input dan lima buah
membership function dengan kriteria dan range bebas.
H. Kesimpulan
Kesimpulan yang dapat diambil dari praktikum diatas adalah dapat merangkai dengan baik
rangkaian fuzzyfikasi dengan menggunakan rangkaian arduino nano, dapat juga mengamati
dan membedakan hasil erorr negatif, erorr zero dan erorr positif.dan dapat mengetahui dan
mengamati hasil fuzzyfikasi perubahan erorr dan D_erorr.Pada praktikum diatas juga dapat
diketaui cara menghitung dan membandingkan antara variabel erorr dan D_erorr.