ccitonline.com

CCIT – Cara Cerdas Ingat Tuhan

| AI-DAI5 | DAI5 AI Agents | NIC | ZWI | | CCITEdu | DAI5 eBook | CFDSOF | Donation | Download | CCIT Corporation | DAI5 | 33 Kriteria Evaluasi Penerapan DAI5 | Search |

Pendekatan 33 Kriteria Evaluasi Framework DAI5 sebagai Integrasi Metode Numerik dalam Memahami Curve Fitting – Gandi Pramudya Pramadhani Herlambang (2306218036)

Assalamualaikum, pada blog kali ini saya akan membahas masalah grafik curve fitting plot serta integrasi numerik menggunakan 33 kriteria evaluasi penerapan DAI5. DAI5 merupakan suatu framework yang mengintegrasikan pemahaman akan sains dan kesadaran terhadap iman. Kondisi ini membawa kita tetap berada di fase consiousness, dimana pemaknaan terhadap fenomena sains di sekitar kita tetap dilandasi kesadaran bahwa semua itu adalah anugerah dari Allah SWT. Evaluasi ini mencakup lima tahapan utama : Deep Awareness of I, Initial Thinking, Idealization, dan Instruction Set.

  1. Deep Awareness of I
    Tahapan ini menekankan kesadaran penuh antara manusia dan Allah SWT sebagai landasan dalam memecahkan masalah keteknikan.

    1. Consiousness of Purpose. Konteks integrasi numerik yang akan dibawakan merupakan sebaran panas pada plat baja. Masalah tersebut merupakan ketentuan dan ketetapan yang telah dibuat oleh Allah SWT.

    2. Self-awareness. Memahami bahwa penyelesaian secara analitis memungkinkan terjadinya kesalahan perhitungan serta miskonsepsi, maka dari itu diperlukan bantuan metode numerik untuk penyelesaian yang akurat.

    3. Ethical Consideration. Nilai-nilai etika dan moral diikutsertakan dalam konteks penyelesaian masalah, dimana tujuan memahami distribusi temperature pada plat adalah semata-mata untuk kebermanfaatan manusia tanpa maksud atau tujuan yang buruk.

    4. Integration of CCIT (Cara Cerdas Ingat Tuhan). Selalu sadar terhadap Allah SWT dalam setiap langkah penyelesaian masalah.

    5. Critical Reflection. Mengintegrasikan solusi numerikal terhadap permasalahan distrubusi temperature pada plat dengan dampak spritual dan sosial. Dampak spiritual mencakup segala hal yang mempengaruhi keimanan manusia, misalnya dengan memahami sebaran temperatur maka dapat meningkatkan keimanan kepada Allah SWT sebagai pencipta fenomena sains tersebut. Selain itu, dampak sosial juga mencakup pengaruh distrubusi panas pada plat yang merupakan sistem terhadap lingkungannya. Artinya memahami kaitan antara sistem dinamik dengan lingkungan yang rigid.

    6. Continuum of Awareness. Selalu menjaga kesadaran mulai dari proses set-up simulasi, proses simulasi, sampai pengolahan data hasil simulasi menggunakan curve fititng plot dan intepretasi hasil simulasi pada grafik.
  2. Intention

    7. Clarity of Intent. Proses simulasi diterjemahkan sebagai usaha kita untuk lebih memahami ketetapan Allah SWT yang diwujudkan dalam fenomena sains, yaitu distribusi sebaran temperature pada plat.

    8. Alignment of Objectives. Hasil proses simulasi diolah menggunakan curve fitting plot untuk lebih memahami sebaran temperature pada setiap baris, khususnya pada baris J2 – J10. Hasil pengolahan curve fitting plot akan diproses menjadi heatmap, sehingga kita dapat memahami sebaran temperature dengan lebih baik. Selain itu dapat dilihat juga energi panas pada plat sebagai representasi heat flux pada plat.

    9. Relevance of Intent. Dari hasil evaluasi sebelumnya, maka output dari perhitungan numerik ini adalah curve fitting plot dan heatmap. Kedua visualisasi ini sejalan dengan tujuan proses simulasi yaitu untuk mempermudah kita dalam mengintepretasikan data yang didapat.

    10. Sustainability Focus. Solusi numerikal ini dapat dipastikan memiliki tujuan positif bagi lingkungan, masyarakat, dan ekonomi. Dampak lingkungan, kita tidak memerlukan uji coba fisik yang memungkinkan terlepasnya waste ke lingkungan. Dampak masyrakat adalah implikasi dari dampak lingkungan, seperti waste hasil percobaan yang mungkin memberikan dampak buruk bagi lingkungan sehingga kegiatan masyarakat terganggu. Yang terkahir, dampak ekonomi mencakup penghematan biaya karena uji coba fisik tidak perlu dilakukan. Ketiga dampak tersebut dapat diminimalisir dengan uji coba secara numerik di komputer, dimana hasil simulasi tersebut tidak menghasilkan waste serta murah.

    11. Focus on Quality. Solusi numerikal dipastikan cukup akurat karena memenuhi persamaan curve fitting plotย :

Serta beberapa persamaan yang digunakan untuk mendapatkan heatmap:

  • Hukum Fourier Konduksi Panas

Pemodelan heatmap dapat mempermudah visualisasi terhadap perilaku energi di dalam plat yang memenuhi hukum kesetimbangan energi.

3. Initial Thinking

12. Problem Understanding. Masalah yang sedang dihadapi adalah bagaimana distribusi temperature pada plat stainless steel 304 dengan ukuran 1 x 1 m. Pada kasus ini, diberikan sumber panas sebesar 303 K pada ujung plat.

13. Stakeholder Awareness. Pada kasus ini, kita perlu mengidentifikasi thermal properties dari plat. Plat memiliki thermal conductivity sebesar 16,2 W/mK kemungkinan menggunakan Stainless steel 304 (SS 304). SS 304 memiliki sifat seperti konduktivitas panas yang baik, serta memiliki toleransi yang baik terhadap thermal shock. Apabila diberikan suhu sebesar 303 K, SS 304 masih mampu mempertahankan homogenitasnya maka kecil kemungkinan propertiesnya berubah saat menerima panas.

14. Contextual Analysis. Relevansi dari masalah ini adalah perpindahan panas, secara garis besar akan masuk ke dalam pembahasan termodinamika pada bagian perpindahan panas.

15. Root Cause Analysis. Apabila berbicara terkait perpindahan panas, maka akan masuk ke suatu kuantitas energi bernama kalor. Kalor ini yang akan membawa sejumlah energi panas ke seluruh plat, dimana pergerakan kalor akan memenuhi Hukum Fourier Perpindahan Panas yang telah dinyatakan sebelumnya.

16. Relevance of Analysis. Secara numerik, kasus tersebut akan diselesaikan oleh CFDSOF dengan output data-data temperature pada plat. Untuk menciptakan analisis masalah yang relevan dan aplikatif, maka perlu dibuat visualisasi yang informatif. Visualisasi tersebut dapat dibentuk menggunakan bantuan curve fitting plot. Sebelumnya, persamaan curve fitting plot sudah dinyatakan di atas. Maka masih perlu mencari koefisien a, b , dan c yang optimum.

Selain itu, dapat digunakan visualisasi menggunakan heatmap untuk mengetahui sebaran temperature secara detail. Persamaan yang akan melandasi visualisasi heatmap, yaitu:

17. Use of Data and Evidence. Kebutuhan akan data yang akurat menentukan akurasi dari hasil simulasi. Akan tetapi pada proses simulasi ini, hanya dibutuhkan satu data yaitu thermal coductivity yang nilainya 16,2 W/mK.

4. Idealization

18. Assumption Clarity. Pada proses simulasi diperlukan beberapa asumsi sebagai boundary condition dari plat:
– Mikrostruktur material homogen di sepanjang plat
– Thermal properties homogen di sepanjang plat
– Plat bersifat adiabatik, tidak ada panas yang keluar ke lingkungan.

19. Creativity and Innovation. Proses simulasi akan dilakukan pada cell dengan ukuran 12 x 12. Pada setup ini, baris ditandai dengan J, sedangkan kolom ditandai dengan I. Baris J1 dan J12 merupakan sumber panas. Kolom I1 dan I12 juga merupakan sumber panas. Baris dan kolom lainnya merupakan conducting wall dengan thermal conductivity 16,2 W/mK.

20. Physical Realism. Solusi yang diusulkan sangat masuk akal apabila dikaitkan dengan Hukum Fourier Perpindahan Panas. Maka hasil simulasi dapat mendekati kondisi aktual di dunia nyata.

21. Alignment with Intent. Tujuan awalnya adalah untuk mengetahui sebaran temperatur pada plat. Kemudian setup simulasi juga sudah sejalan dengan tujuan awal dan hukum-hukum fisika yang berlaku. Kemudian visualisasi yang dilakukan juga cukup informatif dan membantu dalam memberikan gambaran terkait peristiwa yang terjadi pada plat.

22. Scalability and Adaptability. Solusi ini dapat diterapkan pada berbagai macam temperatur dengan batas tertentu. Batasan yang dapat kita terapkan adalah selama tidak menyentuh temperatur ekstrim yang dapat menyebabkan SS 304 masuk ke fase heat treatment karena properties materialnya dapat berubah sangat drastis.

23. Simplicity and Elegance. Solusi ini sangat ringkas dan kompak, tidak memerlukan kapabilitas komputasi yang tinggi dan mahal.

5. Instruction Set

24. Clarity of Steps. Data-data yang didapatkan dari hasil simulasi merupakan XY Plot baris J2-J11. Data tersebut akan diproses terlebih dahulu menggunakan curve fitting plot.

Langkah – langkah melakukan curve fitting plot:Sebelumnya sudah disebutkan bahwa curve fitting plot akan memenuhi persamaan:


25. Comprehensiveness. Semua aspek yang perlu diperhatikan sudah diikutsertkan ke dalam perhitungan, seperti kalor dan temperature gradient.

26. Physical Interpretation. Penjelasan hasil simulasi divisualisasikan dalam curve fitting plot dan heatmap. Sebelumnya sudah dijelaskan langkah-langkah melakukan curve fitting plot, maka berikut ini adalah koding dari metode tersebut yang ditulis dalam javascript dan di-packaging dalam HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Curve Fitting</title>
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/11.3.1/math.min.js"></script>
</head>
<body>
    <h1>Curve Fitting for CSV 10 and 11</h1>
    <div id="chartsContainer"></div>


    <script>
        const datasets = [
            [
                { x: 0.0, y: 285 },
                { x: 0.1, y: 315 },
                { x: 0.2, y: 335 },
                { x: 0.3, y: 350 },
                { x: 0.4, y: 360 },
                { x: 0.5, y: 365 },
                { x: 0.6, y: 360 },
                { x: 0.7, y: 350 },
                { x: 0.8, y: 335 },
                { x: 0.9, y: 315 },
                { x: 1.0, y: 285 }
            ],
            [
                { x: 0.0, y: 280 },
                { x: 0.1, y: 310 },
                { x: 0.2, y: 330 },
                { x: 0.3, y: 345 },
                { x: 0.4, y: 355 },
                { x: 0.5, y: 360 },
                { x: 0.6, y: 355 },
                { x: 0.7, y: 345 },
                { x: 0.8, y: 330 },
                { x: 0.9, y: 310 },
                { x: 1.0, y: 280 }
            ]
        ];


        function polynomialRegression(x, y, order = 2) {
            const matrixX = x.map(val => Array.from({ length: order + 1 }, (_, j) => Math.pow(val, j)));
            const matrixY = y.map(value => [value]);
            const X = math.matrix(matrixX);
            const Y = math.matrix(matrixY);
            const XT = math.transpose(X);
            const XTX = math.multiply(XT, X);
            const XTY = math.multiply(XT, Y);
            const coefficients = math.lusolve(XTX, XTY).valueOf().flat();
            return coefficients;
        }


        function plotData(dataPoints, datasetIndex) {
            const xValues = dataPoints.map(p => p.x);
            const yValues = dataPoints.map(p => p.y);
            const coeffs = polynomialRegression(xValues, yValues);
            const equation = `y = ${coeffs.map((c, i) => `${c.toFixed(2)}x^${i}`).join(' + ')}`;


            const container = document.getElementById('chartsContainer');
            const title = document.createElement('h2');
            title.innerText = `Dataset ${datasetIndex}: ${equation}`;
            container.appendChild(title);


            const table = document.createElement('table');
            table.border = "1";
            let tableContent = `<tr><th>X</th><th>Y</th></tr>`;
            dataPoints.forEach(p => tableContent += `<tr><td>${p.x}</td><td>${p.y}</td></tr>`);
            table.innerHTML = tableContent;
            container.appendChild(table);


            const canvas = document.createElement('canvas');
            container.appendChild(canvas);


            new Chart(canvas.getContext('2d'), {
                type: 'scatter',
                data: {
                    datasets: [
                        { label: `Data ${datasetIndex}`, data: dataPoints, backgroundColor: 'blue', showLine: false },
                        { label: `Fit ${datasetIndex}`, data: Array.from({ length: 100 }, (_, i) => {
                            const x = i / 100;
                            return { x, y: coeffs.reduce((sum, c, j) => sum + c * Math.pow(x, j), 0) };
                        }), borderColor: 'red', borderWidth: 2, showLine: true, fill: false }
                    ]
                },
                options: {
                    scales: { x: { type: 'linear', position: 'bottom' }, y: { type: 'linear' } }
                }
            });
        }


        datasets.forEach((data, index) => plotData(data, index + 10));
    </script>
</body>
</html>

Serta berikut ini adalah kodingan untuk heatmap dalam Javascript:

import numpy as np
import matplotlib.pyplot as plt

# Full temperature data (J1 to J12)
temp_data = [
    [303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303],  # J1 (hidden)
    [303, 337.778, 351.284, 357.243, 359.911, 360.687, 359.911, 357.243, 351.284, 337.778, 303, 303],  # J2
    [303, 323.828, 337.116, 344.778, 348.713, 349.926, 348.713, 344.778, 337.116, 323.828, 303, 303],  # J3
    [303, 317.419, 328.575, 336.038, 340.24, 341.59, 340.24, 336.038, 328.575, 317.419, 303, 303],  # J4
    [303, 314.273, 323.728, 330.561, 334.617, 335.955, 334.617, 330.561, 323.728, 314.273, 303, 303],  # J5
    [303, 312.945, 321.503, 327.861, 331.713, 332.997, 331.713, 327.861, 321.503, 312.945, 303, 303],  # J6
    [303, 313.006, 321.477, 327.668, 331.377, 332.607, 331.378, 327.668, 321.477, 313.006, 303, 303],  # J7
    [303, 314.603, 323.73, 329.958, 333.522, 334.678, 333.522, 329.958, 323.73, 314.603, 303, 303],  # J8
    [303, 318.676, 328.881, 334.911, 338.075, 339.062, 338.075, 334.911, 328.881, 318.676, 303, 303],  # J9
    [303, 328.221, 338.208, 342.732, 344.806, 345.419, 344.806, 342.732, 338.208, 328.221, 303, 303],  # J10
    [328, 353, 353, 353, 353, 353, 353, 353, 353, 353, 328, 328],  # J11
    [303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303]   # J12 (hidden)
]

# Extract inner rows (J2 to J11) for visualization
temp_inner = np.array(temp_data[1:-1])  # Exclude J1 and J12

# Create heatmap
plt.figure(figsize=(10, 8))
plt.imshow(temp_inner, cmap='RdYlBu_r', interpolation='bicubic', vmin=303, vmax=360.687, extent=[0, 1, 0.0833, 0.9167])
plt.colorbar(label='Temperature (K)', ticks=np.arange(310, 361, 10))
plt.title('Energi Panas (W)', pad=20)
plt.xlabel('X (m)')
plt.ylabel('Y (m)')
plt.xticks(np.arange(0, 1.1, 0.2))
plt.yticks(np.arange(0.1, 1.0, 0.2))

# Overlay values (temperature differences from 303 K)
for i in range(0, 10, 2):
    for j in range(0, 12, 2):
        value = temp_inner[i, j] - 303 if temp_inner[i, j] > 303 else 0.0
        plt.text(j * 0.0833, (i + 1) * 0.0833, f'{value:.1f}', ha='center', va='center', 
                 color='white', fontsize=10, bbox=dict(facecolor='black', alpha=0.5))

# Add table at the bottom
table_data = [
    ['Sisi Atas', '-241.43 W'],
    ['Sisi Bawah', '191.20 W'],
    ['Sisi Kiri', '-0.08 W'],
    ['Sisi Kanan', '-50.06 W'],
    ['Total (harus = 0)', '-100.28 W']
]
table = plt.table(cellText=table_data, loc='bottom', cellLoc='center', bbox=[0, -0.25, 1, 0.2])
table.auto_set_font_size(False)
table.set_fontsize(12)
table.scale(1.2, 1.2)

plt.tight_layout()
plt.savefig('heatmap_heat_energy_distribution_matched.png')  # Save the image
plt.show()

27. Error Minimazation. Kemungkinan kesalahan dapat dikurangi dengan menambahkan jumlah data karena sifat dari visualisasi hanyalah aproksimasi dari datasets yang ada. Semakin banyak baris dalam datasets, maka akan semakin akurat visualisasinya.

28. Verification and Validation. Validasi dari hasil simulasi mengandalkan pengetahuan dan pemahaman manusia yang telah diberikan karunia oleh Allah SWT berupa akal sehat.

29. Iterative Approach. Iterative approach dapat digunakan untuk pendekatan dengan parameter simulasi yang berbeda atau dengan pengulangan proses simulasi. Hal ini memastikan semua hal telah sesuai dan dapat digunakan secara universal dengan batasan-batasan tertentu.

30. Sustainability Integration. Berdasarkan langkah evaluasi sebelumnya, hasil dari solusi ini dipastikan memenuhi semua aspek keberlanjutan. Secara umum, simulasi merupakan proses yang murah dan dalam kasus ini tidak memerlukan kemampuan komputasi yang tinggi. Selain itu, dengan simulasi, kita tidak perlu melakukan uji coba secara fisik yang umumnya mahal dan menghasilkan limbah.

31. Communication Effectiveness. Solusi hasil simulasi disampaikan dalam curve fitting plot dan heatmap. Akan tetapi, dapat dilihat bahwa heatmap tampak lebih informatif ketimbang curve fitting plot karena domainnya langsung menampilkan keseluruhan plat ketimbang per section baris plat.

32. Alignment with DAI5 Framework. Proses penyelesaian kasus distribusi temperature pada plat telah diselesaikan menggunakan prinsip dan langkah framework DAI5

33. Documentation Quality. Curve fitting plot gabungan:

Merah (J2), Biru (J3), Hijau (J4)

Merah (J5), Kuning (J6), Coklat (J7)

Merah (J8), Hijau (J9), Biru Tua (J10), Ungu (J11)

Visualisasi Heatmap:

Distribusi temperature menunjukkan energi panas menyebar dari sumber panas di ujung plat menuju ke tengah plat, sehingga energi panas cenderung lebih rendah pada bagian yang jauh dari sumber panas.

Sekian blog mengenai Integrasi Numerik 33 Kritertia Evaluasi Framework DAI5. Wassalamualaikum Warahmatullahi Wabarakatuh