Artificial Intelligence Research : Analisis Sistem Logika Fuzzy untuk Memprediksi Kelembapan Menggunakan MATLAB

Tentu, saya bisa bantu! Ini adalah project yang sangat menarik. Anda telah membuat sistem logika fuzzy Mamdani menggunakan MATLAB untuk memprediksi kelembapan (humidity) berdasarkan kondisi siang dan intensitas hujan.

Berikut adalah analisis mendalam tentang sistem prediksi kelembapan yang telah Anda bangun. Artikel ini akan membedah setiap komponen, mulai dari logika fuzzy, antarmuka pengguna (GUI), hingga kode yang menghubungkan keduanya.


1. Tujuan Utama Project

Project ini bertujuan untuk membuat sebuah sistem cerdas sederhana yang dapat memprediksi tingkat kelembapan (Humidity) berdasarkan dua variabel masukan (input):

  1. Kondisi Siang: Merepresentasikan kondisi cuaca di siang hari.
  2. Intensitas Hujan: Merepresentasikan seberapa deras hujan yang turun.

Sistem ini dibangun menggunakan Fuzzy Logic Toolbox dan GUIDE (GUI Development Environment) di MATLAB.


2. Membedah Komponen Sistem

Project Anda terdiri dari tiga file utama yang bekerja sama. Mari kita anggap ini seperti membangun sebuah robot:

  • 🧠 fuzzysianghujan.fis (Otak Sistem): Ini adalah file Fuzzy Inference System (FIS). Di sinilah semua kecerdasan dan logika “berpikir” dari sistem didefinisikan, seperti variabel, fungsinya, dan aturan-aturan “jika-maka”.
  • 👨‍💻 formfuzzysianghujan.fig (Wajah/Antarmuka): Ini adalah file antarmuka grafis (GUI). File ini mendefinisikan tampilan visual dari aplikasi Anda—di mana pengguna memasukkan data dan di mana hasilnya ditampilkan.
  • 🔗 formfuzzysianghujan.m (Sistem Saraf/Penghubung): Ini adalah file kode MATLAB (.m). Tugasnya adalah menjadi penghubung antara “wajah” (.fig) dan “otak” (.fis). Kode ini mengambil input dari pengguna, mengirimkannya ke otak fuzzy untuk diproses, dan kemudian menampilkan hasilnya kembali ke antarmuka.

3. Analisis Logika Fuzzy (fuzzysianghujan.fis)

Ini adalah inti dari project Anda. Mari kita lihat lebih dalam isinya.

a. Variabel Input dan Output

Sistem Anda memiliki:

  • 2 Variabel Input:
    1. Siang: Dengan rentang nilai [0, 1].
    2. Hujan: Dengan rentang nilai [0, 1].
  • 1 Variabel Output:
    1. Humidity: Dengan rentang nilai [0, 1].

b. Himpunan Fuzzy (Membership Functions)

Setiap variabel dipecah menjadi beberapa himpunan fuzzy linguistik menggunakan fungsi keanggotaan segitiga (trimf).

  • Input Siang:
    • TidakNormal: Merepresentasikan kondisi siang yang tidak biasa/mendung (nilai mendekati 0).
    • mf2: Himpunan di tengah (nilai sekitar 0.5). Saran: Anda bisa menamainya Sedang atau Normal untuk kejelasan.
    • Normal: Merepresentasikan kondisi siang yang cerah/terik (nilai mendekati 1).
  • Input Hujan:
    • Gerimis: Hujan dengan intensitas rendah (nilai mendekati 0).
    • mf2: Himpunan di tengah (nilai sekitar 0.5). Saran: Anda bisa menamainya Sedang untuk kejelasan.
    • Lebat: Hujan dengan intensitas tinggi (nilai mendekati 1).
  • Output Humidity:
    • Rendah: Kelembapan rendah (nilai mendekati 0).
    • mf2: Himpunan di tengah (nilai sekitar 0.5). Saran: Anda bisa menamainya Sedang atau Normal untuk kejelasan.
    • Tinggi: Kelembapan tinggi (nilai mendekati 1).

c. Aturan Logika Fuzzy (Rules)

Ini adalah “pengetahuan” yang Anda tanamkan ke dalam sistem. Anda memiliki 4 aturan utama:

  1. Aturan 1: JIKA Siang 'TidakNormal' DAN Hujan 'Gerimis' MAKA Humidity 'Rendah'.
    • Logika: Masuk akal. Jika cuaca tidak normal (misalnya, mendung) dan hanya gerimis, kelembapan mungkin belum terlalu tinggi.
  2. Aturan 2: JIKA Siang 'TidakNormal' DAN Hujan 'Lebat' MAKA Humidity 'Rendah'.
    • Analisis: Aturan ini sedikit unik. Secara umum, hujan lebat cenderung meningkatkan kelembapan. Mungkin ada konteks spesifik di sini, tetapi jika tujuannya adalah simulasi umum, aturan ini mungkin perlu ditinjau kembali. Biasanya, hujan lebat akan menghasilkan kelembapan Tinggi.
  3. Aturan 3: JIKA Siang 'Normal' DAN Hujan 'Gerimis' MAKA Humidity 'Tinggi'.
    • Logika: Masuk akal. Siang yang normal (mungkin panas) ditambah dengan gerimis akan menciptakan suasana yang sangat lembap atau “pengap”.
  4. Aturan 4: JIKA Siang 'Normal' DAN Hujan 'Lebat' MAKA Humidity 'Tinggi'.
    • Logika: Sangat masuk akal. Kombinasi siang normal/panas dan hujan lebat pasti akan menghasilkan kelembapan yang tinggi.

4. Cara Kerja Kode (formfuzzysianghujan.m)

Kode di file .m Anda sangat efisien. Fokus utamanya ada pada fungsi pushbutton1_Callback, yang dieksekusi saat tombol ditekan.

Berikut adalah alur kerjanya, langkah demi langkah:

Langkah 1: Mengambil Input dari Pengguna

Kode ini mengambil teks dari dua kotak input (edit1 dan edit2) dan mengubahnya menjadi angka.

Matlab

siang = str2num(get(handles.edit1,'String'));
hujan = str2num(get(handles.edit2,'String'));

Langkah 2: Memuat “Otak” Fuzzy

Selanjutnya, kode memuat file fuzzysianghujan.fis yang berisi semua logika yang sudah kita bahas.

Matlab

fis = readfis('fuzzysianghujan');

Langkah 3: Mengevaluasi Input dengan Logika Fuzzy

Ini adalah langkah paling krusial. Fungsi evalfis mengambil nilai siang dan hujan dari pengguna, lalu memprosesnya melalui semua aturan fuzzy untuk menghasilkan satu nilai output yang jernih (crisp).

Matlab

result = evalfis([siang hujan], fis);

Proses di balik layar ini melibatkan:

  1. Fuzzifikasi: Mengubah input angka (misal: siang = 0.8) menjadi derajat keanggotaan fuzzy (misal: 70% Normal dan 30% Sedang).
  2. Inferensi (Evaluasi Aturan): Menerapkan aturan “jika-maka” berdasarkan derajat keanggotaan input.
  3. Defuzzifikasi: Mengubah hasil fuzzy kembali menjadi satu angka keluaran yang dapat dibaca (misal: result = 0.75). Metode yang Anda gunakan adalah centroid, yang merupakan metode yang sangat umum dan andal.

Langkah 4: Menampilkan Hasil

Terakhir, nilai hasil perhitungan ditampilkan di kotak output (edit3).

Matlab

set(handles.edit3,'String',result);

5. Kesimpulan dan Saran Pengembangan

Kesimpulan

Anda telah berhasil membuat aplikasi fungsional berbasis logika fuzzy dengan antarmuka yang mudah digunakan. Sistem ini mampu mengambil dua input numerik, memprosesnya melalui serangkaian aturan linguistik, dan menghasilkan output prediksi kelembapan secara real-time. Ini adalah implementasi yang bagus dari konsep sistem inferensi fuzzy Mamdani.

Saran untuk Pengembangan Lanjutan

Untuk membuat project ini lebih baik lagi, pertimbangkan beberapa hal berikut:

  1. Perjelas Nama Himpunan Fuzzy: Ganti nama mf2 di semua variabel menjadi nama yang lebih deskriptif seperti Sedang atau Normal agar logikanya lebih mudah dibaca.
  2. Tinjau Ulang Aturan Logika: Pertimbangkan kembali Aturan #2. Apakah dalam kasus Anda Siang TidakNormal dan Hujan Lebat memang seharusnya menghasilkan Humidity Rendah? Jika tidak, Anda bisa mengubahnya menjadi Tinggi.
  3. Lengkapi Aturan: Sistem Anda saat ini hanya mencakup 4 dari 9 kemungkinan kombinasi aturan (3 himpunan Siang x 3 himpunan Hujan). Anda bisa menambahkan aturan untuk kombinasi yang melibatkan mf2 (misalnya, JIKA Siang 'Sedang' DAN Hujan 'Sedang' ...) untuk membuat sistem lebih akurat.
  4. Validasi Input: Tambahkan kode untuk memeriksa apakah input yang dimasukkan pengguna adalah angka. Ini akan mencegah error jika pengguna tidak sengaja mengetik huruf.

Semoga artikel analisis ini bermanfaat untuk pemahaman dan pengembangan project Anda selanjutnya. Kerja bagus! 👍

 

{ORDER}
CS1 : 085786310890
CS2 : 085786310891
CS3 : 0895350190100
CS4 : 0895395299216
CS5 : 0895386028271
CS6 : 08991625171
{LINE, TELEGRAM, DISCORD}

{KRITIK, SARAN DAN INFORMASI}
CRM2 : 085169436295
CRM3 : 085878354001

.

Kontak: Email: whitecyberinfo@gmail.com
WhatsApp: (+62) 895-3960-61030 / (+62) 851-2929-4020

Leave a Reply

Your email address will not be published. Required fields are marked *