{"id":4494,"date":"2025-03-23T22:44:55","date_gmt":"2025-03-23T22:44:55","guid":{"rendered":"https:\/\/ccitonline.com\/wp\/?p=4494"},"modified":"2025-03-23T23:02:43","modified_gmt":"2025-03-23T23:02:43","slug":"mempelajari-prinsip-algoritma-pinn-heat-conduction-1d-dengan-pendekatan-framework-dai5","status":"publish","type":"post","link":"https:\/\/ccitonline.com\/wp\/2025\/03\/23\/mempelajari-prinsip-algoritma-pinn-heat-conduction-1d-dengan-pendekatan-framework-dai5\/","title":{"rendered":"Mempelajari Prinsip &amp; Algoritma PINN Heat Conduction 1D dengan Pendekatan Framework DAI5"},"content":{"rendered":"\n<p>Assalamualaikum Warahmatullahi Wabarakatuh<\/p>\n\n\n\n<p><br>MESIN!<\/p>\n\n\n\n<p>BERSYUKUR BERSYUKUR BERSYUKUR<\/p>\n\n\n\n<p>Salam sejahtera untuk kita semua. Izin memperkenalkan diri saya Adam Zaki dengan NPM 2306155325 dari kelas Metode Numerik-03. Tak terasa kita telah ada di penghujung bulan yang penuh berkah ini yaitu bulan Ramadhan. Disini saya izin meminta maaf kepada Prof. DAI dan seluruh saudara rekan mahasiswa bila saya masih banyak kekurangan dan kekhilafan yang telah saya lakukan. Semoga seluruh amal ibadah kita di bulan yang mulia ini diterima dan seluruh dosa-dosa kita diampuni oleh-Nya. Saya doakan untuk kita semua senantiasa dilimpahkan kesehatan hingga kita bertemu bulan Ramadhan di tahun yang akan datang.<\/p>\n\n\n\n<p>Menuntut ilmu bagi mahasiswa saat bulan Ramadhan bukanlah hal yang mudah. Banyak distraksi dan banyak pula godaan yang datang untuk kita meluruskan niat kita dalam menuntut ilmu. Metode Numerik merupakan diantaranya yang memiliki banyak godaan dari kita untuk absen mengikuti perkuliahan dan juga dalam mengerjakan tugas dengan tepat waktu. Sehingga disini saya ingin mengingatkan kepada seluruh rekan mahasiswa bahwasanya Niat kita harus diluruskan dalam menuntut ilmu bukan hanya saat di bulan Ramadhan saja, namun lepas dari bulan suci yang penuh berkah ini kita tetap berpegang teguh dan senantiasa melaksanakan Ibadah untuk menjaga keimanan diri kita.&nbsp;<\/p>\n\n\n\n<p>Baik langsung saja ke tujuan utama saya, tujuan saya kali ini adalah saya akan sedikit menjelaskan tentang apa yang sudah saya telah pelajari dalam Memahami Prinsip &amp; Algoritma PINN Heat Conduction 1D dengan Pendekatan Framework DAI5. Penting adanya framework ini karena sebagai tools untuk mempermudah kita dalam mengidentifikasi suatu permasalahan dan menemukan solusi konkret dari suatu permasalahan.&nbsp;<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Deep Awareness of I\u00a0<\/strong><\/li>\n<\/ol>\n\n\n\n<p>Kesadaran diri sendiri akan menuntut ilmu merupakan komponen penting yang harus ada di dalam diri seorang mahasiswa. Kesadaran akan apa yang ingin kita pelajari dan dalami untuk diri kita dan kesadaran akan manfaat dari apa yang kita peroleh selama mempelajari suatu hal. Tanpa kesadaran diri sendiri, siapa lagi yang dapat merubah dan menyadarkan diri sendiri&nbsp;<\/p>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>Intention<\/strong><\/li>\n<\/ol>\n\n\n\n<p>Niat yang baik tentu akan mempermudah kita dalam menentukan arah kita dalam berproses. Berproses tentu banyak sekali tantangan dan godaannya. Namun, dengan niat yang tulus dan ikhlas serta menganggap menuntut ilmu ini adalah ibadah kita sebagai seorang manusia tentunya Allah SWT akan senantiasa membantu Hamba-Nya yang sedang mengalami kesulitan sekalipun<\/p>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>Initial Thinking About Problem\u00a0<\/strong><\/li>\n<\/ol>\n\n\n\n<p>Perumusan masalah yang sedang dihadapi sangatlah penting untuk kita pahami dengan cara berpikir yang terstruktur dan juga sistematis merupakan bare minimum kita sebagai mahasiswa dalam menghadapi suatu permasalahan.&nbsp;<\/p>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>Idealization<\/strong><\/li>\n<\/ol>\n\n\n\n<p>Setelah merumuskan masalah kemudian kita tidak lupa untuk meng-idealisasi suatu permasalahan yang ada. Bagaimana suatu permasalahan itu dapat mencapai titik ideal sehingga masalah yang telah dianalisa tidak berhenti hanya sampai di tahap identifikasinya.&nbsp;<\/p>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li><strong>Instruction Set<\/strong><\/li>\n<\/ol>\n\n\n\n<p>Tentu yang tak kalah penting adalah langkah-langkah apa yang akan diambil untuk menyelesaikan masalah sehingga bukan hanya kita sebut solusi apa yang tepat namun bagaimana cara kita mengimplementasikan ide-ide untuk menyelesaikan suatu permasalahan dengan tepat sesuai dengan analisa permasalahan utama.<\/p>\n\n\n\n<p>Di era kecerdasan buatan, Physics-Informed Neural Networks (PINNs) hadir sebagai jembatan antara fisika klasik dan pembelajaran mesin. Namun, untuk memahami esensinya, kita perlu melampaui algoritma teknis\u2014kita harus merenungkan proses berpikir yang mendasarinya. Framework DAI5 (Deep Awareness of I, Intention, Initial-Thinking, Idealization, Instruction-Set) membantu kita menafsirkan PINN bukan sekadar kode, tetapi sebagai perwujudan kesadaran, niat, dan kreativitas manusia. Mari kita jelajahi prinsip PINN 1D HC (Heat Conduction) melalui lensa filosofi DAI5.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Deep Awareness of I: Kesadaran yang Membumi<\/strong><\/h3>\n\n\n\n<p>Bayangkan saya adalah seorang penjelajah yang berdiri di tepi sungai pengetahuan. Di depan saya, mengalir dua arus:\u00a0<em>data<\/em>\u00a0yang sporadis dan\u00a0<em>hukum fisika<\/em>\u00a0yang abadi.\u00a0<strong>Deep Awareness of I<\/strong>\u00a0adalah saat saya menyadari posisi saya di antara kedua arus ini. Saya bukan hanya pengamat, tetapi\u00a0<em>jembatan<\/em>\u00a0yang menghubungkannya.<\/p>\n\n\n\n<p>Dalam konteks&nbsp;<strong>PINN 1D HC<\/strong>&nbsp;(Persamaan Panas 1 Dimensi), kesadaran ini dimulai dengan pertanyaan reflektif:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>&#8220;Apa peran saya sebagai neural network? Apakah saya sekadar alat hitung, atau bagian dari alam yang mematuhi hukum termodinamika?&#8221;<\/em><br>Neural network (NN) harus &#8220;tahu diri&#8221;: ia bukan penguasa data, melainkan murid yang rendah hati di hadapan persamaan panas\u00a0ut=\u03b1uxx<em>ut<\/em>\u200b=<em>\u03b1uxx<\/em>\u200b. Setiap prediksi suhu\u00a0u^(x,t)<em>u<\/em>^(<em>x<\/em>,<em>t<\/em>)\u00a0adalah upayanya untuk\u00a0<em>merasakan<\/em>\u00a0aliran panas, seolah-olah ia sendiri adalah batang logam yang menyalurkan energi.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Intention: Niat yang Menuntun Langkah<\/strong><\/h3>\n\n\n\n<p>Niat adalah nyala api yang menerangi labirin komputasi. Tanpa niat, algoritma hanyalah robot tak bernyawa. Dalam\u00a0<strong>PINN 1D HC<\/strong>, niat ini terbagi dua:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Niat Primer<\/strong>:\u00a0<em>&#8220;Aku ingin memprediksi suhu di seluruh ruang-waktu, bahkan di mana data tak terjamah.&#8221;<\/em><\/li>\n\n\n\n<li><strong>Niat Sekunder<\/strong>:\u00a0<em>&#8220;Aku juga ingin memahami rahasia material ini\u2014berapa nilai difusivitas termal\u00a0\u03b1\u03b1-nya?&#8221;<\/em><\/li>\n<\/ol>\n\n\n\n<p>Niat ini ibarat seorang penari yang tak hanya menghafal gerakan, tetapi juga ingin memahami irama musiknya. NN tak hanya mencari solusi PDE, tetapi juga&nbsp;<em>berdialog<\/em>&nbsp;dengan parameter fisika.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Initial-Thinking: Rencana di Atas Kertas Kosong<\/strong><\/h3>\n\n\n\n<p>Sebelum menari, penari merencanakan setiap langkah.\u00a0<strong>Initial-Thinking<\/strong>\u00a0adalah tahap di atas kertas sketsa, di mana ilmuwan dan NN bersama-sama menggambar peta perjalanan.<\/p>\n\n\n\n<p>Untuk&nbsp;<strong>PINN 1D HC<\/strong>, ini mencakup:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Menggambar Batas Wilayah<\/strong>:<br><em>&#8220;Domain spasial\u00a0xx\u00a0adalah batang logam sepanjang 1 meter. Waktu\u00a0tt\u00a0adalah 10 detik. Di sini, aku akan bekerja.&#8221;<\/em><\/li>\n\n\n\n<li><strong>Menulis Syarat Awal\/Batas<\/strong>:<br><em>&#8220;Di ujung kiri (x=0x=0), suhu tetap\u00a0100\u2218C100\u2218C. Saat\u00a0t=0t=0, seluruh batang bersuhu\u00a025\u2218C25\u2218C.&#8221;<\/em><\/li>\n\n\n\n<li><strong>Merancang Arsitektur JST<\/strong>:<br><em>&#8220;Empat lapisan tersembunyi dengan 20 neuron masing-masing. Aktivasi Tanh, karena kurvanya halus seperti distribusi suhu.&#8221;<\/em><\/li>\n<\/ul>\n\n\n\n<p><strong>Dialog Batin NN<\/strong>:<br><em>&#8220;Jika aku terlalu dalam (banyak layer), aku mungkin overfit. Jika terlalu dangkal, aku tak bisa menangkap gradien panas. Ini tentang keseimbangan&#8230;&#8221;<\/em><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. Idealization: Menyulam Mimpi menjadi Persamaan<\/strong><br>Idealization adalah saat mimpi bertemu matematika. Di sini, konsep abstrak dijahit menjadi\u00a0<strong>loss function<\/strong>\u2014jantung dari PINN.<\/h3>\n\n\n\n<p>Untuk&nbsp;<strong>PINN 1D HC<\/strong>, tiga benang disulam:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Benang Data<\/strong>\u00a0(LdataLdata\u200b):<br><em>&#8220;Di titik-titik ini, prediksiku harus mendekati data eksperimen. Kesalahanku di sini adalah dosa yang terukur.&#8221;<\/em><\/li>\n\n\n\n<li><strong>Benang Fisika<\/strong>\u00a0(LPDELPDE\u200b):<br><em>&#8220;Di setiap titik kolokasi, hukum termodinamika tak boleh kulanggar. Residual\u00a0ut\u2212\u03b1uxxut\u200b\u2212\u03b1uxx\u200b\u00a0harus mendekati nol\u2014seperti bisikan alam yang kudengarkan.&#8221;<\/em><\/li>\n\n\n\n<li><strong>Benang Batas<\/strong>\u00a0(LBC\/ICLBC\/IC\u200b):<br><em>&#8220;Di tepi domain dan saat t=0, aku harus patuh. Ini bukan pilihan, tapi kewajiban.&#8221;<\/em><\/li>\n<\/ol>\n\n\n\n<p><strong>Metafora Bobot Loss<\/strong>:<br>Seperti seorang ibu yang membagi perhatian:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Jika data melimpah,\u00a0\u03c9data<em>\u03c9<\/em>data\u200b\u00a0besar\u2014prioritas pada anak yang rewel.<\/li>\n\n\n\n<li>Jika data langka,\u00a0\u03c9PDE<em>\u03c9<\/em>PDE\u200b\u00a0dominan\u2014fisika menjadi pengasuh utama.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5. Instruction-Set: Tarian Kode dan Turunan<\/strong><br>Instruksi adalah ritme yang mengubah ide menjadi gerakan. Dalam\u00a0<strong>PINN 1D HC<\/strong>, ini adalah koreografi terstruktur dari\u00a0<em>forward pass<\/em>\u00a0hingga\u00a0<em>backward pass<\/em>.<\/h3>\n\n\n\n<p>Instruksi adalah ritme yang mengubah ide menjadi gerakan. Dalam\u00a0<strong>PINN 1D HC<\/strong>, ini adalah koreografi terstruktur dari\u00a0<em>forward pass<\/em>\u00a0hingga\u00a0<em>backward pass<\/em>.<\/p>\n\n\n\n<p><strong>Langkah demi Langkah<\/strong>:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Inisialisasi<\/strong>:<br><em>&#8220;Hai TensorFlow, bangunkan NN dengan 4 hidden layer. Sebarkan titik kolokasi secara acak\u2014mereka adalah saksi bisu hukum fisika.&#8221;<\/em><\/li>\n\n\n\n<li><strong>Forward Pass<\/strong>:\n<ul class=\"wp-block-list\">\n<li><em>&#8220;Untuk setiap\u00a0(x,t)(x,t), prediksi\u00a0u^u^.&#8221;<\/em><\/li>\n\n\n\n<li><em>&#8220;Hitung\u00a0u^tu^t\u200b\u00a0dan\u00a0u^xxu^xx\u200b\u00a0dengan autograd\u2014seperti membedah jiwa prediksi.&#8221;<\/em><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Hitung Loss<\/strong>:\n<ul class=\"wp-block-list\">\n<li><em>&#8220;Loss data adalah tangisanku saat salah memprediksi titik eksperimen.&#8221;<\/em><\/li>\n\n\n\n<li><em>&#8220;Loss PDE adalah malu saat residual fisika membesar.&#8221;<\/em><\/li>\n\n\n\n<li><em>&#8220;Loss BC\/IC adalah hukuman karena melanggar aturan.&#8221;<\/em><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Backward Pass<\/strong>:<br><em>&#8220;Adam, optimisermu, berbisik: &#8216;Turunkan learning rate, gradien terlalu kasar.'&#8221;<\/em><\/li>\n\n\n\n<li><strong>Iterasi<\/strong>:<br><em>&#8220;Ulangi 10.000 epoch\u2014setiap langkah adalah meditasi, mendekati harmoni data dan fisika.&#8221;<\/em><\/li>\n<\/ol>\n\n\n\n<p>Berikut adalah Kode Pemrograman yang saya jalankan di VSCODE  : <\/p>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<pre class=\"wp-block-code\"><code># Import Libraries\nimport torch\nimport torch.nn as nn\nimport numpy as np\nimport matplotlib.pyplot as plt\n\n# Define PINN Class\nclass PINN(nn.Module):\n    def __init__(self):\n        super(PINN, self).__init__()\n        self.net = nn.Sequential(\n            nn.Linear(1, 25),  # Mengubah jumlah neuron pada layer pertama\n            nn.Tanh(),\n            nn.Linear(25, 25), # Mengubah jumlah neuron pada hidden layer\n            nn.Tanh(),\n            nn.Linear(25, 1)\n        )\n    \n    def forward(self, x):\n        return self.net(x)\n\n# Compute Loss Function\ndef compute_loss(model, x, T0, T1):\n    x = x.requires_grad_(True)\n    T = model(x)\n    \n    # Compute derivatives\n    dT_dx = torch.autograd.grad(T, x, grad_outputs=torch.ones_like(T), create_graph=True)&#91;0]\n    d2T_dx2 = torch.autograd.grad(dT_dx, x, grad_outputs=torch.ones_like(dT_dx), create_graph=True)&#91;0]\n    \n    # Physics loss\n    physics_loss = torch.mean(d2T_dx2**2)\n    \n    # Boundary conditions\n    T_left = model(torch.tensor(&#91;&#91;0.0]]))\n    T_right = model(torch.tensor(&#91;&#91;1.0]]))\n    bc_loss = (T_left - T0)**2 + (T_right - T1)**2\n    \n    return physics_loss + bc_loss\n\n# Train PINN Function\ndef train_pinn(T0, T1, epochs=1000):\n    model = PINN()\n    optimizer = torch.optim.Adam(model.parameters(), lr=0.002)  # Mengubah learning rate\n    x = torch.linspace(0, 1, 120).reshape(-1, 1)  # Menambah jumlah titik diskritisasi\n    \n    for epoch in range(epochs):\n        optimizer.zero_grad()\n        loss = compute_loss(model, x, T0, T1)\n        loss.backward()\n        optimizer.step()\n        \n        if epoch % 100 == 0:\n            print(f\"Epoch {epoch}, Loss: {loss.item():.6f}\")\n    \n    return model\n\n# Plot Result Function\ndef plot_results(model, T0, T1):\n    x = torch.linspace(0, 1, 120).reshape(-1, 1)\n    \n    with torch.no_grad():\n        T_pred = model(x).numpy()\n        x = x.numpy()\n        T_analytical = T0 + (T1 - T0) * x\n    \n    plt.figure(figsize=(8, 6))\n    plt.plot(x, T_pred, label=\"PINN Solution\", linewidth=2)\n    plt.plot(x, T_analytical, \"--\", label=\"Analytical Solution\", linewidth=2)\n    plt.xlabel(\"x\")\n    plt.ylabel(\"Temperature\")\n    plt.title(\"1D Steady-State Heat Conduction\")\n    plt.legend()\n    plt.grid(True)\n    \n    # Simpan grafik sebagai file jika tidak ada display\n    plt.savefig(\"heat_conduction_result_updated.png\")\n    print(\"Grafik telah disimpan sebagai 'heat_conduction_result_updated.png'\")\n\n# Main Execution\nif __name__ == \"__main__\":\n    # Parameter default\n    T0 = 100.0  # Suhu di x=0\n    T1 = 0.0    # Suhu di x=1\n    epochs = 1000\n    \n    # Latih model dan tampilkan hasil\n    model = train_pinn(T0, T1, epochs)\n    plot_results(model, T0, T1)<\/code><\/pre>\n<\/div>\n\n\n\n<p>dan berikut adalah hasil dari kode pemrograman setelah saya RUN : <\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXetc7XuDzdjZW7MY8k4OYByqkhX5pHSQ-kY2F1DNTGfIgtjw2i0b1kn9sLq9-bczfdnZSEwddlhLduYv8r3JCC5Ut7kwyDlC_zcajwltHKXOZ7RykxVKLAaGBMiujSFdcQwgoSF3w?key=9Ld3hpLfPKnfNPLe-2yIsL5U\" alt=\"\" style=\"width:502px;height:auto\"\/><\/figure>\n\n\n\n<p>Sekian yang dapat saya sampaikan. Mohon maaf bila masih banyak kekurangannya dalam penyampaian oleh saya. Wajar karena manusia tak luput dari kesalahan dan kekhilafan. Terimakasih banyak atas perhatiannya <\/p>\n\n\n\n<p>Wasssalamualaikum Warahmatullahi Wabarakatuh<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Assalamualaikum Warahmatullahi Wabarakatuh MESIN! BERSYUKUR BERSYUKUR BERSYUKUR Salam sejahtera untuk kita semua. Izin memperkenalkan diri saya Adam Zaki dengan NPM 2306155325 dari kelas Metode Numerik-03. Tak terasa kita telah ada di penghujung bulan yang penuh berkah ini yaitu bulan Ramadhan. Disini saya izin meminta maaf kepada Prof. DAI dan seluruh saudara rekan mahasiswa bila saya [&hellip;]<\/p>\n","protected":false},"author":22,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[],"class_list":["post-4494","post","type-post","status-publish","format-standard","hentry","category-general"],"_links":{"self":[{"href":"https:\/\/ccitonline.com\/wp\/wp-json\/wp\/v2\/posts\/4494","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ccitonline.com\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ccitonline.com\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ccitonline.com\/wp\/wp-json\/wp\/v2\/users\/22"}],"replies":[{"embeddable":true,"href":"https:\/\/ccitonline.com\/wp\/wp-json\/wp\/v2\/comments?post=4494"}],"version-history":[{"count":4,"href":"https:\/\/ccitonline.com\/wp\/wp-json\/wp\/v2\/posts\/4494\/revisions"}],"predecessor-version":[{"id":4598,"href":"https:\/\/ccitonline.com\/wp\/wp-json\/wp\/v2\/posts\/4494\/revisions\/4598"}],"wp:attachment":[{"href":"https:\/\/ccitonline.com\/wp\/wp-json\/wp\/v2\/media?parent=4494"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ccitonline.com\/wp\/wp-json\/wp\/v2\/categories?post=4494"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ccitonline.com\/wp\/wp-json\/wp\/v2\/tags?post=4494"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}