$api_key_thingspeak, 'results' => 1, // Ambil 1 hasil terbaru ]); $tinggi_air_thingspeak = null; if ($response->ok()) { $data = $response->json(); if (!empty($data['feeds'])) { $tinggi_air_thingspeak = $data['feeds'][0]['field5']; // Mengambil nilai tinggi air dari 'field5' } } // Gunakan nilai tinggi air dari ThingSpeak sebagai input if ($tinggi_air_thingspeak !== null) { $tinggi_air = $tinggi_air_thingspeak; } // $tinggi_air = self::round_float($tinggi_air); $tinggi_air = self::round_float2($tinggi_air); return view('pages.fuzzy', [ 'tinggi_air' => $tinggi_air, // Kirim nilai tinggi air ke view ]); } public function calculateFuzzyLogic(Request $request) { // Salin seluruh kode dari fungsi-fungsi dan logika yang ingin Anda pindahkan ke sini // Pastikan untuk mengubah variabel-variabel yang digunakan dalam fungsi-fungsi Anda menjadi input dari request // Contoh: $usia_tanaman = $request->input('usia_tanaman'); $tinggi_air = $request->input('tinggi_air'); $luas_lahan = $request->input('luas_lahan'); $tinggi_air_rounded = self::round_float($tinggi_air); // Fuzzifikasi $usia_tanaman_membership = FuzzyLogicService::fuzzifikasi_usia_tanaman($usia_tanaman); $tinggi_air_membership = FuzzyLogicService::fuzzifikasi_tinggi_air($tinggi_air_rounded); $luas_lahan_membership = FuzzyLogicService::fuzzifikasi_luas_lahan($luas_lahan); // Rule Evaluation $rule_activations = FuzzyLogicService::rule_evaluation($usia_tanaman_membership, $tinggi_air_membership, $luas_lahan_membership); // Aggregation $aggregated_output = FuzzyLogicService::aggregation($rule_activations); // Ambil nilai agregasi maksimum $max_activations = $aggregated_output['max_activations']; // Ambil aturan dengan nilai aktivasi maksimum $max_activation_rules = $aggregated_output['max_activation_rules']; $data = [ 'rule_activations' => $rule_activations, 'max_activations' => $max_activations, 'aggregated_output' => $aggregated_output['aggregated_output'], 'max_activation_rules' => $max_activation_rules // Pastikan ini ditambahkan ]; $intersection_points = FuzzyLogicService::calculate_intersection_points($aggregated_output); // Hitung integral $integral_result = FuzzyLogicService::integrate($rule_activations); $integral_result2 = FuzzyLogicService::integrate2($rule_activations); $integral_result3 = FuzzyLogicService::integrate3($rule_activations); $integral_result4 = FuzzyLogicService::integrate4($rule_activations); $integral_result5 = FuzzyLogicService::integrate5($rule_activations); $integral_result6 = FuzzyLogicService::integrate6($rule_activations); // Menambahkan hasil integral ke dalam array data $dataFiks['integral_result'] = $integral_result; $dataFiks2['integral_result2'] = $integral_result2; $dataFiks3['integral_result3'] = $integral_result3; $dataFiks4['integral_result4'] = $integral_result4; $dataFiks5['integral_result5'] = $integral_result5; $dataFiks6['integral_result6'] = $integral_result6; // Cara menggunakan display dan menampilkan hasilnya // Hitung total M dan total A $total_M = $dataFiks + $dataFiks2 + $dataFiks3; $total_A = $dataFiks4 + $dataFiks5 + $dataFiks6; $total_M_sum = array_sum($total_M); $total_A_sum = array_sum($total_A); // Check if $total_A_sum is not zero to avoid division by zero error if ($total_A_sum != 0) { // Calculate the final result $result = $total_M_sum / $total_A_sum; $result = self::round_float($result); } else { // Handle division by zero error $result = "Division by zero error!"; } // $max_activation_rules_json = json_encode($max_activation_rules); // Simpan data ke database menggunakan model Calculation $calculation = new Calculation(); $calculation->usia_tanaman = $usia_tanaman; $calculation->tinggi_air = $tinggi_air; $calculation->luas_lahan = $luas_lahan; $calculation->usia_tanaman_muda = $usia_tanaman_membership['muda']; $calculation->usia_tanaman_dewasa = $usia_tanaman_membership['dewasa']; $calculation->usia_tanaman_tua = $usia_tanaman_membership['tua']; $calculation->luas_lahan_kecil = $luas_lahan_membership['kecil']; $calculation->luas_lahan_sedang = $luas_lahan_membership['sedang']; $calculation->luas_lahan_besar = $luas_lahan_membership['besar']; $calculation->tinggi_air_rendah = $tinggi_air_membership['rendah']; $calculation->tinggi_air_sedang = $tinggi_air_membership['sedang']; $calculation->tinggi_air_tinggi = $tinggi_air_membership['tinggi']; $calculation->rule_rendah = $max_activation_rules['rendah']['rule']; $calculation->value_rule_rendah = $max_activation_rules['rendah']['activation']; $calculation->rule_tinggi = $max_activation_rules['tinggi']['rule']; $calculation->value_rule_tinggi = $max_activation_rules['tinggi']['activation']; $calculation->titik_perpotongan1 = $intersection_points['t1']; $calculation->titik_perpotongan2 = $intersection_points['t2']; $calculation->momen_1 = $dataFiks['integral_result']; $calculation->momen_2 = $dataFiks2['integral_result2']; $calculation->momen_3 = $dataFiks3['integral_result3']; $calculation->luas_1 = $dataFiks4['integral_result4']; $calculation->luas_2 = $dataFiks5['integral_result5']; $calculation->luas_3 = $dataFiks6['integral_result6']; $calculation->jumlah_momen = $total_M_sum; $calculation->jumlah_luas = $total_A_sum; $calculation->hasil_perhitungan = $result; $calculation->save(); // Data yang ingin Anda kirim ke ThingSpeak $hasil_perhitungan = $result; // Ganti dengan nilai hasil perhitungan Anda $api_key = '84DPP86EQWKYKI1X'; // Ganti dengan API Key ThingSpeak Anda // URL untuk mengirim data ke ThingSpeak $url = 'https://api.thingspeak.com/update?api_key=' . $api_key . '&field1=' . $hasil_perhitungan; // Buat permintaan HTTP POST $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); // // Periksa respon // if ($response === false) { // echo 'Gagal mengirim data ke ThingSpeak'; // } else { // echo 'Data berhasil dikirim ke ThingSpeak'; // } // Display results return view('pages.result', [ 'usia_tanaman_membership' => $usia_tanaman_membership, 'tinggi_air_membership' => $tinggi_air_membership, 'luas_lahan_membership' => $luas_lahan_membership, 'rule_activations' => $rule_activations, 'aggregated_output' => $aggregated_output, 'usia_tanaman' => $usia_tanaman, 'tinggi_air' => $tinggi_air, 'luas_lahan' => $luas_lahan, 'max_activations' => $max_activations, 'max_activation_rules' => $max_activation_rules, 'data' => $data, 'intersection_points' => $intersection_points, 'dataFiks' => $dataFiks, 'dataFiks2' => $dataFiks2, 'dataFiks3' => $dataFiks3, 'dataFiks4' => $dataFiks4, 'dataFiks5' => $dataFiks5, 'dataFiks6' => $dataFiks6, 'total_M' => $total_M, 'total_A' => $total_A, 'total_M_sum' => $total_M_sum, // Pass the sum of $total_M to the view 'total_A_sum' => $total_A_sum, // Pass the sum of $total_A to the view 'result' => $result, ]); } }