Dosen Pengampu :
AUSE LABELLAPANSA, S.T, [Link], [Link]
Asisten Laboratorium
1. Ahmad Rizqi Cahyadi, S.T
2. Rahma Yan
LAPORAN PRAKTIKUM
PENGENALAN KECERDASAN BUATAN
“UJIAN AKHIR PRAKTIKUM KECEREDASAN BUATAN”
DISUSUN OLEH :
RICO FRANJES_223510685
KELAS 5C
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS ISLAM RIAU
2024
SOAL 1
1. POINT 1
A. CODING
B. HASIL RUNNING
C. PENJELASAN
1. Daftar aturan fuzzy dibuat berdasarkan tabel di soal.
2. Setiap aturan merepresentasikan hubungan antara input (kelembapan tanah dan suhu
udara) dengan output (status pompa).
3. Contoh aturan pertama:
• Input: Kelembapan rendah, suhu dingin.
• Output: Status pompa aktif cepat.
2. POINT 2
A. CODING
B. HASIL RUNNING
C. PENJELASAN
1. Tabel ini menjelaskan bahwa semua himpunan fuzzy menggunakan kurva linear.
2. Setiap parameter seperti kelembapan tanah dan suhu udara memiliki beberapa
himpunan dengan range berbeda.
3. Contoh:
• Kelembapan rendah memiliki range [0, 50], dengan kurva linear.
• Suhu dingin memiliki range [10, 15], juga dengan kurva linear.
3. POINT 3
A. CODING
B. HASIL RUNNING
C. PENJELASAN
Fungsi Keanggotaan Fuzzy
• Fungsi ini menghitung derajat keanggotaan untuk kelembapan tanah rendah.
• Jika kelembapan tanah ≤ 50, keanggotaan = 1.
• Jika kelembapan tanah di antara 50-60, nilai keanggotaan dihitung secara linear dengan
rumus (60−x)/10(60 - x) / 10(60−x)/10.
• Jika kelembapan tanah > 60, keanggotaan = 0.
• Pola ini diulang untuk kelembapan sedang, tinggi, dan suhu udara (dingin, hangat, dll).
Fungsi Inferensi dan Defuzzifikasi
• Inferensi:
• Menggunakan aturan fuzzy untuk menentukan derajat keanggotaan output:
o "Aktif Cepat" dihitung dari
min(kelembapan rendah,suhu panas)\text{min}(\text{kelembapan rendah},
\text{suhu panas})min(kelembapan rendah,suhu panas).
o "Aktif Lambat" dihitung dari
min(kelembapan tinggi,suhu panas)\text{min}(\text{kelembapan tinggi},
\text{suhu panas})min(kelembapan tinggi,suhu panas).
• Defuzzifikasi:
• Nilai zzz untuk setiap output dihitung:
o zcepat=75×μcepatz_{\text{cepat}} = 75 \times \mu_{\text{cepat}}zcepat
=75×μcepat.
o zlambat=50×μlambatz_{\text{lambat}} = 50 \times \mu_{\text{lambat}}zlambat
=50×μlambat.
• Rata-rata tertimbang dihitung dengan rumus: ztotal=∑(μ⋅z)∑μz_{\text{total}} =
\frac{\sum (\mu \cdot z)}{\sum \mu}ztotal=∑μ∑(μ⋅z)
Input dan Output
• Input: Masukkan nilai suhu (35°C) dan kelembapan tanah (73%).
• Proses: Fungsi inferensi_dan_defuzzifikasi menentukan nilai defuzzifikasi
berdasarkan input.
• Output: Status pompa dalam bentuk angka (contoh: z=50.23z = 50.23z=50.23).
SOAL 2
Point 1
A. CODIN
[Link] RUNNING
Jika hanya menjalankan kode di atas (tanpa memanggil fungsi learning_function()),
tidak akan ada hasil yang ditampilkan atau dihasilkan.
[Link]
1. Persiapan Data:
• Terdapat enam pola data pelatihan, masing-masing mewakili huruf "F". Pola ini
direpresentasikan dalam matriks 5x5, dengan angka 1 menunjukkan bagian aktif
dan -1 menunjukkan bagian tidak aktif.
• Target output untuk semua pola adalah 1, yang berarti fungsi diharapkan
mengenali setiap pola sebagai huruf "F".
2. Inisialisasi Parameter:
• Bobot dan bias dimulai dengan nilai nol, menunjukkan bahwa model belum
memiliki preferensi awal.
• Parameter pembelajaran seperti learning rate (seberapa besar pembaruan
dilakukan) dan threshold (ambang batas untuk aktivasi) juga ditentukan.
3. Proses Pembelajaran:
• Model melewati setiap data pelatihan dan menghitung hasil (output)
berdasarkan bobot dan bias saat ini.
• Jika hasil tidak sesuai dengan target, terjadi kesalahan (error), dan model
memperbarui bobot dan bias untuk memperbaiki kesalahan tersebut.
• Proses ini dilakukan berulang kali untuk semua data pelatihan hingga tidak ada
kesalahan yang tersisa.
4. Kondisi Akhir:
• Pembelajaran berhenti ketika semua pola dikenali tanpa error.
• Model memberikan bobot dan bias akhir, yang mencerminkan bagaimana pola
Point 2
A. CODING
[Link] RUNNING
tidak ada hasil yang ditampilkan atau dihasilkan.
[Link]
1. Input Fungsi
1. weight: Daftar bobot hasil dari fungsi pelatihan
(learning_function).
2. bias: Bias hasil dari fungsi pelatihan.
3. Data testing: Data masukan baru yang belum digunakan dalam
pelatihan, terdiri dari 4 matriks 5×55 \times 55×5 yang
direpresentasikan sebagai list 1D.
2. Data Testing
testing_data:
1. Berisi 4 data masukan yang mewakili pola huruf berbeda (beberapa
mirip dengan "F" dan beberapa tidak).
2. Nilai tiap elemen dalam matriks adalah 1 (aktif) atau -1 (non-aktif
3. Proses Pengujian
Pengujian dilakukan untuk setiap data dalam testing_data:
1. Hitung Net Input (net):
▪ Menggunakan rumus:
net=bias+∑(input[i]×weight[i])
Nilai net dihitung berdasarkan produk antara setiap piksel input dengan
bobot
yang sesuai, lalu ditambahkan dengan bias.
2. Fungsi Aktivasi:
• Jika net ≥ theta (7 dalam kode), maka keluaran (output) adalah 1,
yang berarti
data dikenali sebagai huruf "F".
• Jika net < theta, maka keluaran (output) adalah -1, yang berarti data
tidak
dikenali sebagai huruf "F".
3. Simpan Hasil:
• Hasil prediksi (output) untuk setiap data disimpan dalam daftar
results
Point 3
[Link]
[Link] RUNNING
[Link]
1. Fungsi Aktivasi:
• Net input dihitung sebagai hasil perkalian antara data input (pixel) dengan bobot yang telah
dilatih, kemudian ditambah dengan bias.
• Jika nilai net input lebih besar atau sama dengan threshold (7 dalam hal ini), maka hasil
output adalah 1 (menandakan bahwa data tersebut termasuk kategori "P").
• Jika nilai net input kurang dari threshold, maka outputnya 0 (menandakan bahwa data tersebut
termasuk kategori "F").
def activation_function(net_input, threshold=7):
return 1 if net_input >= threshold else 0
2. Fungsi Pengujian (Testing):
• Menghitung Net Input: Menghitung nilai net input untuk setiap data dengan rumus:
Net Input=∑(xi×wi)+b\text{Net Input} = \sum (x_i \times w_i) + bNet Input=∑(xi×wi)+b Di mana
xix_ixi adalah nilai input (pixel) dan wiw_iwi adalah bobot yang sesuai. Bias bbb ditambahkan ke
hasil penjumlahan ini.
• Aplikasikan Fungsi Aktivasi: Setelah menghitung nilai net input, hasilnya diberikan ke fungsi
aktivasi untuk menentukan output (1 atau 0).
• Prediksi: Output yang dihasilkan adalah prediksi apakah gambar tersebut termasuk kategori "P"
atau "F".
def perceptron_testing(data, weights, bias, threshold=7):
predictions = []
for sample in data:
# Menghitung net input
net_input = [Link](sample, weights) + bias
# Menerapkan fungsi aktivasi untuk mendapatkan output
output = activation_function(net_input, threshold)
[Link](output)
return predictions
3. Bobot dan Bias:
• Bobot (Weights) dan Bias yang digunakan untuk pengujian adalah hasil dari pelatihan (training)
yang telah dilakukan sebelumnya. Dalam hal ini, bobot yang digunakan adalah
[1.5,0.5,1.3,1.1,0.8][1.5, 0.5, 1.3, 1.1, 0.8][1.5,0.5,1.3,1.1,0.8] dan biasnya adalah 1.
• Bobot adalah parameter yang menghubungkan setiap fitur input (pixel) dengan output
klasifikasi (huruf "P" atau "F"). Bias adalah parameter yang memungkinkan model untuk lebih
fleksibel dalam menentukan keputusan klasifikasi.
4. Data Uji (Testing Data):
• Data uji yang diberikan berupa tiga gambar yang diwakili oleh array berisi nilai-nilai pixel.
• Setiap data uji terdiri dari 5 parameter pixel, yang mewakili gambar yang akan diklasifikasikan.
test_data = [Link]([
[1, 1, 1, 1, 1], # Contoh Data 1
[1, 0, 1, 1, 0], # Contoh Data 2
[1, 1, 0, 1, 1] # Contoh Data 3
])
5. Proses Pengujian:
• Menjalankan Proses Pengujian: Program menguji setiap data uji satu per satu dengan
menghitung net input dan menggunakan fungsi aktivasi untuk menentukan apakah data
tersebut adalah "P" atau "F".
• Prediksi Output: Setelah proses pengujian selesai, hasilnya adalah prediksi untuk setiap data
yang diuji. Output yang diprediksi adalah 1 (huruf "P") atau 0 (huruf "F").
python
Salin kode
predictions = perceptron_testing(test_data, weights, bias)
# Menampilkan Hasil Prediksi
print("Hasil Prediksi:")
for i, prediction in enumerate(predictions):
print(f"Data {i+1}: Prediksi = {'P' if prediction == 1 else 'F'}")