Powered by Blogger.
facebook twitter instagram pinterest bloglovin Email

Yasya Indra Blog

Éclairage et ingénierie

 


Saat kalian menghitung rumus menggunakan kalkulus, integral, persamaan linear. Kira kira pernah gak kepikiran, "ini tuh fungsinya buat apa sih?"

Tentu semua orang yang belajar matematika pasti pernah berfikir demikian. Tapi tau kah, jika sebenarnya ada alat yang bisa menjadikan rumus rumus matematika tadi menjadi model sehingga bisa kita terapkan ke dalam masalah masalah sehari hari?

Nama alat atau software tersebut adalah MATLAB

Baca Juga: Membuat Program Fuzzy Dengan Python. Studi Kasus: Prediksi Penyakit Demam

Apa Itu MATLAB?

MATLAB merupakan software yang berfungsi memberikan simulasi pada perhitungan matematis. Kalian sebenarnya bisa saja tidak perlu menghitung rumus rumus matematika dari 0, karena kalian cukup menggunakan library dan tool bawaan yang sudah disediakan oleh MATLAB sendiri

Cara Menggunakan MATLAB

Menggunakan MATLAB sungguh sederhana. Caranya dengan memasukkan perintah perintah khusus yang tertera pada dokumentasi (sesuai dengan kebutuhan) lalu MATLAB akan menjalan aplikasi GUI yang diinginkan

Install MATLAB

Kalian bisa mendownload MATLAB disini 

Studi Kasus: Prediksi Persediaan dan Permintaan

Diketahui sebuah peternakan kambing mempunyai laporan permintaan dan persediaan seperti ini


Dengan variabel banyak jumlah kambing seperti berikut


 Dari data diatas, bisa ditentukan sedikit, sedang, dan banyak ekor kambing lewat tabel berikut


Analisis Masalah

Jika kita melihat data data di atas, kita harus menentukan prediksi apakah penjualan itu banyak atau sedikit dengan skala 0 sampai 1.

Kita akan menggunakan jumlah persediaan dan penjualan untuk menentukan banyaknya penjualan. Dan ini juga akan menjadi prediksi sebagai gambaran untuk meningkatkan jumlah penjualan

Penyelesaian

Langkah Langkah

Buka aplikasi MATLAB dan tulis perintah fuzzy. Maka akan muncul tampilan seperti ini

Berdasarkan tabel kita mempunyai dua inputan yaitu Persediaan dan Permintaan. Maka dari itu kita harus menambah input dengan klik Edit, lalu Add Variable, lalu Input

Setelah itu. Kalian ubah nama input1 dan input2 menjadi Persediaan, Permintaan beserta output1 menjadi  Penjualan dengan cara ubah nama pada kolom berikut

Selanjutnya, kalian klik dua kali grafik dengan background kuning dengan tulisan Persediaan dibawahnya. Maka tampilan berikut akan muncul

Kita akan mengatur range dan masukkan berdasarkan tabel yang diatas. Ikuti gambar dibawah ini

Persediaan

 Permintaan



 

Penjualan 

Tidak hanya input, namun output Penjualan juga kita atur range & params

 
Kalo berdasarkan gambar diatas ada beberapa hal yang harus kita ubah.
  • Range. rentan data parameter yang dimasukkan
  • Name. label aja sebenarnya buat tanda (biar ga bingung)
  • Params. Masukkan data yang diinginkan

Baca Juga: Lengkap!, Cara Membuka File CSV Menggunakan Panda

Jika langkah langkah diatas sudah dikerjakan dengan baik. Maka kini kita akan mengatur beberapa rule

Berikut adalah beberapa rule yang harus diberikan

  1. If (Permintaan is Sedikit) and (Persediaan is Sedikit) then (Penjualan is Sedikit) (1)
  2. If (Permintaan is Sedikit) and (Persediaan is Sedikit) then (Penjualan is Sedang) (1)
  3. If (Permintaan is Sedikit) and (Persediaan is Sedang) then (Penjualan is Sedikit) (1)
  4. If (Permintaan is Sedikit) and (Persediaan is Sedang) then (Penjualan is Sedang) (1)
  5. If (Permintaan is Sedikit) and (Persediaan is Sedang) then (Penjualan is Banyak) (1)
  6. If (Permintaan is Sedikit) and (Persediaan is Banyak) then (Penjualan is Sedikit) (1) 
  7. If (Permintaan is Sedikit) and (Persediaan is Banyak) then (Penjualan is Sedang) (1)
  8. If (Permintaan is Sedang) and (Persediaan is Sedikit) then (Penjualan is Sedikit) (1)
  9. If (Permintaan is Sedang) and (Persediaan is Sedikit) then (Penjualan is Sedang) (1)
  10. If (Permintaan is Sedang) and (Persediaan is Sedikit) then (Penjualan is Banyak) (1)
  11. If (Permintaan is Sedang) and (Persediaan is Sedang) then (Penjualan is Sedikit) (1)
  12. If (Permintaan is Sedang) and (Persediaan is Sedang) then (Penjualan is Sedang) (1)
  13. If (Permintaan is Sedang) and (Persediaan is Sedang) then (Penjualan is Banyak) (1)
  14. If (Permintaan is Sedang) and (Persediaan is Banyak) then (Penjualan is Sedikit) (1)
  15. If (Permintaan is Sedang) and (Persediaan is Banyak) then (Penjualan is Sedang) (1)
  16. If (Permintaan is Sedang) and (Persediaan is Banyak) then (Penjualan is Banyak) (1)
  17. If (Permintaan is Banyak) and (Persediaan is Sedikit) then (Penjualan is Sedang) (1)
  18. If (Permintaan is Banyak) and (Persediaan is Sedikit) then (Penjualan is Banyak) (1)
  19. If (Permintaan is Banyak) and (Persediaan is Sedang) then (Penjualan is Sedang) (1)
  20. If (Permintaan is Banyak) and (Persediaan is Banyak) then (Penjualan is Sedang) (1)
  21. If (Permintaan is Banyak) and (Persediaan is Banyak) then (Penjualan is Banyak) (1)

Cara memasukkanya adalah dengan mengklik kotak putih ditengah tengah input dan output.

Masukkan dengan memilih column box Persedaan, Penjualan dan output Penjualan sesuai dengan Rule diatas. Dan jangan lupa centak and di combo box pojok kiri


Untuk menambahkan. Klik tombol Add Rule

Sehingga akan hasil akhir akan menjadi gambar dibawah ini

Setelah semua itu dilakukan kita akan mendesign GUI agar bisa memasukkan nilai input dengan mudah

Caranya dengan menuliskan perintah guide. 

lalu kalian design GUI aplikasi seperti ini

Jangan lupa untuk memberikan tag pada editText dan button

editText

  • txtPermintaan
  • txtPersediaan

button

  • btnProcess

Sehingga hasil akhirnya akan seperti ini


 Setelah itu kita save dan klik kanan, lalu pilih Editor


Maka kita akan diminta untuk memasukkan function dan kodingan lainnya di dalamnya

Cari function btnProcess_Callback(), lalu tuliskan kode dibawah ini

function btnProses_Callback(~, ~, ~)
% hObject handle to btnProses (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
fis = readfis('penjualan.fis');
permintaan = str2double(get(findobj(gcf, 'Tag', 'txtPermintaan'),'String'));
persediaan = str2double(get(findobj(gcf, 'Tag', 'txtPersediaan'),'String'));
output = evalfis([permintaan; persediaan], fis);
set(findobj(gcf,'Tag', 'txtproduksi'), 'String', output);
disp(output);

maka hasilnya akan menjadi seperti ini


Lalu kita coba jalankan dengan mengclick tombol Run di tab di atas


Kalian juga bisa mendownload file Matlab dari cara diatas dengan klik link dibawah

File

 
 

Share
Tweet
Pin
Share
No comments

 

Ketika kalian menggunakan aplikasi Laragon, biasanya saat Php muncul versi terbaru, atau apache atau mysql juga muncul versi terbaru, Laragon tidak mau mengupdate secara otomatis. Alih alih kita harus menambahkan sendiri versi PHP yang diinginkan dengan mendownloadnya dari situs resminya

Kali ini semua masalah tersebut tidak akan menjadi halangan, karena saya sudah pernah mencoba sendiri dan mengatur sendiri Laragon agar bisa menjalankan PHP 8 (versi PHP terbaru), MySQl dan Apache dengan versi terbaru

Biasanya hal ini dibutuhkan ketika kita ingin menjalankan Laravel 9 yang hanya support untuk PHP 8

Bagaimana caranya? Kita ikuti langkah langkah dibawah

Peralatan

php-8.1.13-nts-Win32-vs16-x64

mysql-8.0.x.-winx64

phpMyAdmin-5.2.0-all-languages

Langkah Langkah

Download PHP 8 lewat link ini

Setelah itu ekstrak di folder ini

C:\laragon\bin\php

Lalu buka Laragon kalian dan jalankan

Setelah itu klik kanan. Lalu pilih PHP, Version dan pilih php-8.xxxxxx

Lebih lengkapnya bisa lihat gambar berikut

Jika kalian juga ingin mengganti versi MySQL menjadi versi terbaru. Kalian harus mendownload filenya disini

Lalu ekstrak, lalu pindahkan foldernya ke dalam folder berikut

C:\laragon\bin\mysql

Setelah itu kita juga membutuhkan phpmyadmin untuk mencocokan versi MySQL yang kita gunakan

Caranya dengan mendownload phpMyAdmin, dan memindahkan hasil ekstraknya di dalam folder berikut

C:\laragon\etc\apps

Berbeda dengan MySQL dan Php 8, untuk phpmyadmin kita perlu mereplace phpmyadmin versi lama dengan versi terbaru yang sudah kita download

Setelah semua langkah langkah di atas ayo kita coba untuk menginstall Laravel 9

Dan hasilnya


Share
Tweet
Pin
Share
No comments

 

Ketika kita ingin mengetahui jenis kelamin seseorang, kita dengan cukup mudah mengenalinya dengan seksama. Mulai dari bentuk tubuhnya, suara, atau pakainnya. 

"Oh kalo pake rok, sudah pasti perempuan!"

"Di lehernya ada jakun. Orang itu sudah pastu laki laki!"

Ini merupakan prediksi sederhana ketika kita ingin mengenali gender seseorang. Dan kita 'lumrah'-nya mengenali ada dua gender, yaitu laki laki dan perempuan. 

Pilihannya pun mudah. Hanya ada dua. Laki laki atau perempuan. 0 atau 1

Untuk case yang lain contohnya adalah ketika kita melihat daftar nilai nilai teman teman kita. Ada status lulus dan tidak lulus. Status tersebut memiliki dua nilai yang memberikan keterangan apakah orang tersebut lulus atau tidak lulus. Biasanya nilai ini diwakilkan sebagai nilai 

Pertanyaannya. Bagaimana jika kita ingin menentukan sesuatu yang jelas berada antara lulus dan tidak lulus. Atau banjir dan tidak banjir. atau demam dan tidak demam? Tentu sulit bukan

Apakah disebut banjir itu? Apakah jika air setinggi mata kaki sudah berarti banjir? Atau kah banjir disebut banjir jika air sudah melebihi perut orang dewasa?

Nahhh, di saat seperti itu lah kita membutuhkan sebuah teknologi bernama Logika Fuzzy

Apa Itu Logika Fuzzy?

Menurut Binus University School Of Computer Science, Logika Fuzzy adalah suatu cara yang tepat untuk memetakan suatu ruang input ke dalam ruang output. Untuk sistem yang sangat rumit, penggunaan logika fuzzy (fuzzy logic) adalah salah satu pemecahannya. Sistem tradisional dirancang untuk mengontrol keluaran tunggal yang berasal dari beberapa masukan yang tidak saling berhubungan

Intinya adalah kita diminta untuk memberikan output yang menjelaskan seberapa jauh sebuah diagnosis yang tak bisa digambarkan hanya 'ya' dan 'tidak' namun ia harus memiliki nilai rentang antar 0 dan 1

Dengan mengetahu rentan nilai tersebut, kita bisa menginterpretasikannya lebih lanjut

Baca Juga: GuntingKertasAI, Model Machine Learning Untuk Memprediksi Gambar Gunting-Kertas-Batu

Misal:

Menurut program fuzzy, prediksi ia mengidap demam menurut suhu tubuh yang diketahui adalah 0.4. Apakah ia terkena demam? Nah disinilah interpretasi kita bekerja. Ohhh, ternyata ia terkena demam, namun masih bisa diatasi/diobati/ditangani dengan cara cara khusus, tidak separah dengan orang yang memiiki hasil prediksi demam hingga 0.9/0.83 

Rumus Yang Digunakan

Ada tiga jenis logika fuzzy. Yaitu, 

  • Linear
  • Segitiga
  • Trapesium

Namun pada case kali ini kita akan menggunakan logika Fuzzy tipe Linear. Karena menurut saya ini yang paling mudah.

Tapi tenang kalo kalian udah faham logika fuzzy tipe linear, harusnya kalian juga bisa dengan tipe tipe yang lain

Rumus Logika Fuzzy: Linear

kurva fuzzy linear

Ketika kalian liat kurva diatas, plis jangan pusing dulu ya. Kita akan mencoba memahaminya satu persatu

u(x) merupakan fungsi output yang berada pada sumbu y. Ia akan mengeluarkan nilai prediksi berdasarkan nilai masukkan a dan b pada sumbu x

a merupakan nilai masukkan yang menjadi parameter untuk memutuskan prediksi

sedangkan b merupakan nilai tertinggi yang menjadi rentan dari nilai a untuk menjadikan acuan prediksi

Intinya a dan b merupakan sebuah rentan nilai. a hingga b, 3 hingga 5. Tergantung soal cerita yang diberikan nanti

 

fungsi keanggotaan

Gambar di atas lebih tepatnya adalah sebuah pengkondisian. Jika nilai x dibawah atau sama dengan nilai a, maka kita akan memberikan output APA

Sedangkan jika nilai x lebih besar atau lebih kecil dan sama dengan a atau b maka x dikurangi a dibagi dengan b dikurangi a

Jika, nilai x lebih besar dan sama dengan nilai b makan akan memberikan nilai APA

Baca Juga: Cara Mengubah Isi Teks Menjadi Dictionary Dengan Python

Soal: 

Diana memiliki suhu tubuh 37.2 derajat celcius. Ia memutuskan untuk berobat kepada dokter. Sesuai dengan petunjuk dokter, suhu tubuh seseorang dengan 36 derajat celcius adalah normal. Sedangkan suhu tubuh 38 derajat celcius merupakan demam tinggi. Kira kira, apakah Diana terkena demam?

Diketahui:

  • Suhu Demam Diana: 37.2 (x)
  • Suhu Tubuh Normal: 36 (a)
  • Suhu Tubuh Demam: 38 (b)

Suhu demam Diana merupakan nilai x, apakah suhu tubuh diana kurang dari a? Tidak. Apakah lebih dari b? Tidak. Suhu tubuh Diana berada di antara nilai a dan b. Sehingga kita harus menghitungnya sesuai dengan rumus diatas

37.2 - 36 / 38 - 36

Hasilnya: 0.6

Setelah kita mengetahui cara kerja dari rumus ini. Mari kita terjemahkan menjadi code berbahasa python

Code

Requiredments:

  • Pastikan kalian sudah menginstall Python 3.9.7
    Pastikan kalian sudah memiliki pip

Install tkinter

tkinter merupakan library python yang berfungsi memberikan tampilan GUI pada aplikasi kita. Penggunaannya pun relatif mudah jika kalian berpengalaman menulis html. Cara menggunakannya adalah dengan kalian menulis perintah di bawah ini untuk menginstallnya

pip install tkinter

Lalu masukkan kode dibawah ini untuk mengimport tkinter ke dalam aplikasi kalian

from tkinter import *
from tkinter import ttk

Buat Fungsi untuk menghitung logika fuzzy

Mungkin kalian mengalami error mengapa meters tidak terdefinisi. Kita akan membuatnya di dalam program tkinter kita dibawah

Buat program GUI dari library tkinter


Atau kalian bisa melihat sourcecode dari Github saya (jangan lupa untuk memberikan Star)

Jalankan Aplikasi

Kalian bisa masukkan perintah py nama-file-kalian.py atau klik Run di VSCode

Sumber/Referensi

https://www.kitainformatika.com/2020/11/fungsi-keanggotaan-fuzzy-kurva-linear.html 

Sourcecode: https://github.com/yasyaindra/fuzzy-fever-py

Share
Tweet
Pin
Share
No comments
Newer Posts
Older Posts

About me

About Me

Techbros Writer. Educactor, you name it

Follow Us

  • instagram
  • youtube

Categories

Materi Kuliah Buku Internet Stuff

recent posts

Sponsor

Blog Archive

  • March 2025 (4)
  • February 2025 (1)
  • November 2024 (3)
  • October 2024 (1)
  • January 2024 (1)
  • December 2023 (12)
  • November 2023 (9)
  • October 2023 (1)
  • September 2023 (3)
  • August 2023 (14)
  • July 2023 (3)
  • June 2023 (11)
  • May 2023 (3)
  • April 2023 (1)
  • March 2023 (1)
  • February 2023 (8)
  • January 2023 (6)
  • December 2022 (3)
  • November 2022 (2)
  • October 2022 (3)
  • September 2022 (3)
  • August 2022 (1)
  • July 2022 (1)
  • June 2022 (1)
  • May 2022 (1)
  • March 2022 (4)
  • February 2022 (8)
  • January 2022 (8)
  • December 2021 (4)
  • November 2021 (11)
  • October 2021 (6)
  • August 2021 (9)
  • July 2021 (5)
  • June 2021 (5)
  • May 2021 (4)
  • April 2021 (4)
  • March 2021 (6)
  • February 2021 (2)
  • January 2021 (7)
  • December 2020 (5)
  • November 2020 (2)
  • October 2020 (5)
  • September 2020 (6)
  • July 2020 (1)
  • June 2020 (1)
  • May 2020 (6)
  • March 2020 (1)
  • January 2020 (3)
  • December 2019 (3)
  • November 2019 (12)
  • October 2019 (8)
  • September 2019 (6)
  • August 2019 (8)
  • July 2019 (6)
  • June 2019 (3)
  • May 2019 (8)
  • April 2019 (2)

Report Abuse

Created with by ThemeXpose