• Tidak ada hasil yang ditemukan

y Laporan Praktikum Komputasi Modul 2

N/A
N/A
agil asshofy

Academic year: 2024

Membagikan "y Laporan Praktikum Komputasi Modul 2"

Copied!
14
0
0

Teks penuh

(1)

LAPORAN PRAKTIKUM KOMPUTASI TEKNIK KIMIA PERSAMAAN POLINOMIAL

Disusun oleh:

Nama : Muhammad Agil Asshofy

NIM : 211910401081

Hari/Tanggal Praktikum : Rabu, 04 Oktober 2023 Assisten : Reza Rachma Yuniza

PROGRAM STUDI S1 TEKNIK KIMIA JURUSAN TEKNIK MESIN

FAKULTAS TEKNIK UNIVERSITAS JEMBER

Oktober, 2023

(2)

1. JUDUL PERCOBAAN Persamaan Polinomial 2. TUJUAN PERCOBAAN

a. Memahami pengertian dan persamaan yang mewakili metode Bairstow b. Memahami persoalan dalam matematis yang dapat dikerjakan dengan

metode Bairstow

c. Mempelajari dan mencari semua akar-akar dari suatu polinomial dengan menggunakan metode Bairstow

3. DASAR TEORI

Metode numerik adalah suatu pendekatan atau teknik yang digunakan untuk menganalisis dan menyelesaikan permasalahan yang terkait dengan teknik rekayasa dan ilmu pengetahuan dengan memanfaatkan operasi matematika perhitungan (Yahya & Nur, 2018). Umumnya, metode numerik digunakan untuk menemukan solusi dalam masalah matematika yang tidak dapat dipecahkan dengan menggunakan metode analitik konvensional. Dengan adanya metode numerik akan dihasilkan penyelesaian berupa hampiran yang akan sangat membantu (Sunandar and Indrianto, 2020).

Persamaan polinomial merupakan jenis fungsi matematika yang melibatkan operasi perkalian, perpangkatan, dan penggunaan nilai variabel.

Untuk menemukan akar persamaan dari fungsi tersebut, perlu mencari nilai variabel yang mempunyai nilai fungsi 0 (f(x) = 0) (Edward Antonius, 2017).

Bentuk umum dari persamaan polinomial adalah:

f (x)=a0+a1x+a2x2++anx2… … … … …..(1)

Dalam konteks dimana ai merupakan konstantan real, i = 0,1,2,….n, dan an0.

Polinomial f(x) mempunyai n buah akar, termasuk akar yang berupa bilangan real maupun akar yang berupa bilangan kompleks. Akar-akar kompleks ini muncul dalam bentuk pasangan konjugasi, seperti w = u + vi dan w = u – vi, dengan i=

−1 (Azisah Nurman, 2021). Suatu akar persamaan polinomial p(z)

= 0 merupakan sebuah nilai zi yang membuat p(zi) = 0 (Abdy et al., 2016).

Metode Bairstow merupakan metode yang digunakan untuk menemukan factor-faktor dalam suatu persamaan polinomial berderajat n, yang dituliskan

(3)

sebagai pn(x)=anxn+an−1xn−1+an−2xn−2++a1x+a0. Prinsip dasar dari metode Bairstow membagi polinomial tersebut menjadi factor-faktor linier atau kuadrat, walaupun hanya hanya pembagian kuadrat yang digunakan (Windra, Nasution and Dewi, 2013).

Metode bairstow pada dasarnya menerapkan proses iterasif untuk mencari akar-akar polinomialnya. Dalam metode iteratifini, digunakan tebakan awal atau aproksimasi untuk menemukan akar-akar asli atau akar sebenarnya dari persamaan polinomialnya. Pendekaran awal ini berfungsi sebagai titik awal untuk memulai perhitungan, yang akan diulang berulang kali hingga ditemukan akar yang sebenarnya. Jumlah iterasi yang diperlukan akan bervariasi tergantung pada tingkat ketelitian yang diberikan. Semakin nilai toleransi yang ditetapkan, maka semakin banyak iterasi yang diperlukan. Metode ini dianggap berhasil konvergen apabila perbedaan antara perkiraan awal dan nilai yang ditemukan lebih kecil dari nilai toleransi yang ditetapkan (Xue et al., 2020).

4. ALGORITMA DAN FLOWCHART

Dalam algoritmanya pertama kali dipilih harga pendekatan awal r dan s. Harga pendekatan berikutnya yaitu r¿dan s¿, kemudian dicari secara iterative.

Iterasi dihentikan bila ∆ r dan ∆ s sudah cukup kecil. Algoritma dan Flowchart penentuan faktor kwadratis suatu fungsi polinomial dijelaskan sebagai berikut:

(4)

No No START

Koefisien, Orde, Toleransi

Orde ≥3 Orde=2

[u, v] =Bairstow_

Function2 (Koefisien, Toleransi)

Discr=sqrt (Koefisien (2)^2-4*Koefisien (1)

*Koefisien (3))

Roots_poly(orde)

=-Koefisien(2)/

Koefisien(1)

Roots_poly(Orde- 1:orde)=(- Koefisien(2)+[discr- discr])/2//Koefisien(1) discr=sqrt(u^2-4*v)

Orde=Orde-2 [Koefisien,r]=deconv(

Koefisien,[1 u v]) roots_poly(Orde- 1:Orde)=(-u+[discr-

discr])//2

Error>

Toleransi

Disp u; v; root;orde;

diskrimanan

End

(5)

5. HASIL DAN PEMBAHASAN

Praktikum Komputasi Teknik Kimia modul 2 ini membahas tentang penyelesaian persamaan polinomial dengan menggunakan metode Bairstow.

Terdapat 1 soal yang akan diselesaikan pada praktikum ini yaitu, persamaan keadaan Van Der Waals dituliskan sebagai berikut:

(

Pva2

)

(vb)=RT………. (1)

Dalam persamaan tersebut v = (V/n), dimana n merupakan jumlah mol, R=

0,082054 liter.atm/(mol.K), a = 3,592, dan b = 0,04267 untuk CO2. Tentukan volume spesifik (liter/mol) CO2 saat P = 12 atm dan T = 315,6 K.

Persamaan terlebih dahulu diubah menjadi bentuk akar-akar polinomial agar dapat diselesaikan dengan menggunakan metode Bairstow. Persamaan polinomial yang diperoleh yaitu:

12v3−26,155v2+3,592v−0,15302=0……. (2)

Penyelesaian persamaan tersebut diselesaikan dengan menggunakan software matlab.

Langkah pertama pada praktikum persamaan polinomial ini adalah dengan cara membuat m-file baru untuk memasukkan fungsi-fungsi yang akan digunakan pada saat praktikum. Terdapat 2 m-file yang digunakan pada praktikum modul 2 kali ini, m-file pertama digunakan untuk main program dan m-file kedua digunakan untuk sub program. Main program berisi tentang fungsi- fungsi yang digunakan pada penyelesaian ini, sedangkan untuk sub program berisi tentang data yang akan dipanggil terhadap main program atau biasa disebut file function agar dapat dijalankan.

Langkah pertama yang dilakukan untuk membuat main program adalah dengan menuliskan fungsi clc dan clear all yang berfungsi untuk membersihkan command window dan workspace supaya pada saat terjadi proses running hanya terdapat hasil dari script tersebut. Langkah selanjutnya adalah dengan menuliskan perintah disp. Perintah ini bertujuan untuk memberikan sebuah keterangan yang nantinya akan muncul pada command window pada saat proses

(6)

running. Script dan hasil running untuk perintah disp dapat dilihat seperti dibawah ini:

disp('Muhammad Agil Asshofy') disp('211910401081')

disp('Metode Bairstow')

disp('Praktikum Komputasi Teknik Kimia B')

Gambar 1. Hasil running fungsi disp

Langkah selanjutnya adalah memberi keterangan persamaan polinomial yang akan dimasukkan dan nilai error pada editor, keterangan ini akan muncul pada menu editor untuk memberikan informasi pada menu editor. Penggunaan keterangan pada editor adalah dengan cara memberikan tanda % pada awal keterangan. Penggunaan tanda % pada kolom editor hanya bertujuan untuk memberikan komen atau catatan pada script dan sama sekali tidak berpengaruh terhadap hasil running. Langkah berikutnya adalah menuliskan perintah input. Perintah tersebut digunakan untuk memasukkan nilai koefisien persamaan polinomial dalam bentuk matriks, dan toleransi yang akan didefinisikan pada saat script sudah dijalankan dan muncul pada command window. Fungsi yang selanjutnya dituliskan adalah fungsi roots, fungsi roots ini berguna untuk mencari akar-akar penyelesaian suatu persamaan polinomial. Langkah selanjutnya adalah memasukkan fungsi length yang bertujuan untuk mengetahui dimensi dari suatu vektor yang digunakan. Koefisien yang akan digunakan pada kasus ini adalah fungsi length yang berfungsi untuk mengetahui jumlah orde dari persamaan polinomial. Script fungsi-fungsi diatas sebagai berikut.

% 12v^3 - 26,6672v^2 + 3,59v - 0,15302 %

% Toleransi = 0.05 %%

koef=[12, -26.6672, 3.59, -0.15302];

roots (koef);

tol=0.05;

orde=length(koef)-1;

q=koef;

(7)

Pengulangan pada modul persamaan polinomial ini dilakukan dengan menggunakan fungsi whileend, yang berperan sebagai instruksi untuk melakukan iterasi sebuah fungsi dengan menentukan kondisi berhenti iterasi.

Dalam kasus orde 3 atau lebih tinggi, diperlukan beberapa langkah tambahan.

Langkah pertama pada penulisan fungsi while - end adalah menuliskan [u , v]=Bairstowfunction2(q ,tol) berfungsi untuk memanggil fungsi bairstow yang berada pada sub program untuk menentukan nilai u dan v final. Penulisan langkah pertama harus didasarkan penamaan file function yang telah dibuat.

Langkah selanjutnya yaitu, menuliskan discr=

(u24v) yang bertujuan untuk mencari nilai diskriminannya. Selanjutnya adalah menuliskan rootspoly(orde−1:orde)=(−u+[discrdiscr])/2 yang bertujuan untuk menampilkan hasil dari akar persamaan. Berikutnya adalah menuliskan [q , r]=deconv(q ,[1u v]) yang berfungsi sebagai perintah untuk melakukan operasi pembagian polinomial. Kemudian menuliskan order=order−2. Nilai error harus lebih kecil daripada nilai toleransi yang diketahui yaitu 0,05, jika nilai error melebihi batas dari nilai toleransi maka akan terjadi pengulangan sesuai dengan prosedur hingga nilai error kurang dari nilai toleransi. Script perintah whileend dapat dilihat seperti berikut ini:

while orde >= 3

[u,v]=Bairstow_function2(q,tol);

discr=sqrt(u^2-4*v);

roots_poly(orde-1:orde)=(-u+[discr -discr])/2;

[q,r]=deconv(q,[1 u v]);

orde=orde-2;

end

Langkah berikutnya melibatkan penambahan fungsi ifelseend.

Perintah tersebut berfungsi untuk proses permisalan. Jika permisalan belum memenuhi syarat, maka akan iterasi ulang samapai kondisi yang dimasukkan terpenuhi. Jika orde sama dengan 2, maka dapat ditulisankan dengan menggunakan persamaan discr=

(q(2)24∗q(1)∗q(3)) dan

rootspoly(orde−1:orde)=(−q(2)+[discrdiscr])/2/q(1); apabila tidak maka rootspoly(orde)=−q(2)/q(1). Script fungsi ifelseend dapat dilihat seperti di bawah ini:

(8)

if orde<3 if orde==2

discr=sqrt(q(2)^2-4*q(1)*q(3));

roots_poly(orde-1:orde)=(-q(2)+[discr - discr])/2/q(1);

else

roots_poly(orde)=-q(2)/q(1);

end end

Langkah berikutnya adalah menampilkan hasil yang nantinya akan muncul pada command window. Fungsi yang digunakan untuk menampilkan hasil adalah fungsi disp yang diikuti dengan perintah num2str. Keterangan yang nantinya akan ditampilkan adalah nilai v, u, diskriminan, serta akar-akar persamaan.

Perintah num2str berperan dalam mengubah angka (numbers) menjadi format larik (array) karakter atau string agar hasilnya lebih mudah dibaca pada command window. Dalam konteks ini, u dan v merujuk pada faktor kuadratis dari persamaan polinomial. Script fungsi disp pada main program dapat dilihat seperti di bawah ini:

disp (['v = ',num2str(v)]);

disp (['u = ',num2str(u)]);

disp (['diskriminan = ',num2str(discr)]);

disp ('semua akar persamaanya = ');

disp ((ans));

Main program diakhiri dengan menggunakan fungsi disp yang telah dijelaskan diatas. Untuk menjalankan program ini, diperlukan sub program yang berisikan data dan fungsi tambahan yang dibutuhkan untuk melengkapi main program. Berikut adalah script keseluruhan untuk main program:

clc;

clear all;

disp('Muhammad Agil Asshofy') disp('211910401081')

disp('Metode Bairstow')

disp('Praktikum Komputasi Teknik Kimia B')

% 12v^3 - 26,6672v^2 + 3,59v - 0,15302 = 0 %

% Toleransi = 0.05 %%

koef=[12, -26.6672, 3.59, -0.15302];

roots (koef);

tol=0.05;

(9)

orde=length(koef)-1;

q=koef;

while orde >= 3

[u,v]=Bairstow_function2(q,tol);

discr=sqrt(u^2-4*v);

roots_poly(orde-1:orde)=(-u+[discr -discr])/2;

[q,r]=deconv(q,[1 u v]);

orde=orde-2;

end

if orde<3 if orde==2

discr=sqrt(q(2)^2-4*q(1)*q(3));

roots_poly(orde-1:orde)=(-q(2)+[discr - discr])/2/q(1);

else

roots_poly(orde)=-q(2)/q(1);

end end

disp (['v = ',num2str(v)]);

disp (['u = ',num2str(u)]);

disp (['diskriminan = ',num2str(discr)]);

disp ('semua akar persamaanya = ');

disp ((ans));

Langkah pertama untuk menyusun sub program pada praktikum persamaan polinomial ini adalah dengan cara menuliskan fungsi function [ u- final,v_funak] = Bairstow_function(q,tol) untuk memanggil main program.

Penulisan nama m-file pada sub program juga harus diperhatikan supaya pada saat dilaukan run, program yang dipanggil dapat sesuai dengan ketentuan dan tidak ada kesalahan dalam program. Nama m-file harus sama dengan pemanggilan yang ada pada di script. Langkah berikutnya adalah menuliskan perintah n=length(q), fungsi tersebut digunakan untuk mengetahui koefisien dari persamaan polinomial. Selanjutnya adalah menuliskan perintah b(n)=0; b(n−1)=0; f=0; f(n−1)=0. Perintah tersebut sesuai dengan prinsip dalam metode Bairstow karena b(n)dan b(n+1) berperan sebagai fungsi r dan s. Langkah berikutnya adalah menuliskan perintah b(n)=0; b(n−1)=0; f(n)=0; f(n−1)=0; kemudian u=q(end−1)/q(end); v=q(end−2)/q(end); dan error=1;. Fungsi-fungsi ini adalah bagian dari persamaan yang diterapkan dalam metode Bairstow.

(10)

Langkah berikutnya adalah menuliskan fungsi whileforend. Tujuan penggunaan fungsi tersebut pada sub program ini adalah untuk metode pengulangan (iterasi), jika nilai error lebih besar daripada nilai toleransinya maka akan berlaku fungsi seperti di bawah ini:

while err(end) > tol for index=n-2:-1:1

b(index)=q(index+2)-u(end)*b(index+1)- v(end)*b(index+2);

f(index)=b(index+2)-u(end)*f(index+1)- v(end)*f(index+2);

end

Script untuk fungsi whileforend seperti dibawah ini. Dalam script tersebut, terdapat rumus untuk menghitung nilai c , d , g , dan h, yang selanjutnya akan digunakan untuk mencari nilai u dan v atau yang juga dikenal sebagai r dan s dalam konsteks persamaan polinomial. Script sub program ini diakhiri dengan langkah untuk menghitung nilai akhir u dan v, yang merupakan solusi dari persamaan polinomial.

while err(end) > tol for index=n-2:-1:1

b(index)=q(index+2)-u(end)*b(index+1)- v(end)*b(index+2);

f(index)=b(index+2)-u(end)*f(index+1)- v(end)*f(index+2);

end

c=q(2)-u(end)*b(1)-v(end)*b(2);

d=q(1)-v(end)*b(1);

g=b(2)-u(end)*f(1)-v(end)*f(2);

h=b(1)-v(end)*f(1);

factor=1/(v(end)*g^2+h*(h-u(end)*g));

u(end+1)=u(end)-factor*(-h*c+g*d);

v(end+1)=v(end)-factor*(-g*v(end)*c+(g*u(end)- h)*d);

err(end+1)=c^2+d^2;

end

u_final=u(end);

v_final=v(end);

(11)

Gambar 2. Script sub program

Berdasarkan hasil praktikum yang telah dilakukan, program tersebut dapat dijalankan dengan sukses. Persamaan polinomial yang ditemukan, yaitu 12v3−26,155v2+3,592v−0,15302=0 dengan nilai toleransi sebesar 0,05.

Hasil yang telah diperoleh, yaitu nilai v=163,2322;u=−22,9806, dimana v merupakan nilai r , dan nilai u merupakan nilai s, keduanya merupakan akar kuadrat dari persamaan polinomial diatas. Nilai diskriminan yang diperoleh adalah 0+11,1724i. Nilai akar-akar persamaan dari persamaan polinomial diatas dapat dilihat pada gambar hasil dibawah ini:

Gambar 3. Hasil Running

(12)

6. KESIMPULAN DAN SARAN a. Kesimpulan

Penggunaan software matlab yang digunakan dalam menyelesaikan persamasalahan persamaan polinomial menggunakan metode Bairstow dirasa lebih efisien, karena dalam penggunaannya yang tidak melakukan perhitungan satu persatu. Terdapat 2 m-file yang digunakan pada praktikum modul 2 kali ini, m-file pertama digunakan untuk main program dan m-file kedua digunakan untuk sub program.

Hasil yang telah diperoleh, yaitu nilai v=163,2322;u=−22,9806, dimana v merupakan nilai r , dan nilai u merupakan nilai s, keduanya merupakan akar kuadrat dari persamaan polinomial, serta nilai diskriminan yang diperoleh adalah 0+11,1724i.

b. Saran

Penulisan script pada software matlab harus selalu diperhatikan, dikarenakan matlab sangat rentan terhadap suatu kesalahan pada saat penulisan script atau fungsi. Kesalahan tanda atau perintah pada penulisan script dapat menyebabkan nilai error pada saat melakukan proses running. Ketelitian tinggi dibutuhkan dalam praktikum komputasi Teknik kimia ini terutama pada saat penulisan script.

(13)

7. DAFTAR PUSTAKA

Abdy, M., Wahyuni, M. S., Ilmi, N., Matematika, J., & Makassar, U. N. (2016).

Algoritma Genetika dan Penerapannya dalam Mencari Akar Persamaan Polinomial.

In JANUARI (Vol. 2, Issue 1).

Azisah Nurman, T. (2021). Analisis Perbandingan Metode Muller dan Metode Birge- Vieta dalam Menyelesaikan Persamaan Polinomial. In Jurnal Matematika Dan Statistika Serta Aplikasinya (Vol. 9, Issue 1).

Edward Antonius, S. (2017.). Menemukan Akar Persamaan Polinomial Menggunakan Particle Swarm Optimization.

Sunandar, E., & Indrianto, I. (2020). Perbandingan Metode Newton-Raphson & Metode Secant Untuk Mencari Akar Persamaan Dalam Sistem Persamaan Non-Linier.

PETIR, 13(1), 72–79. https://doi.org/10.33322/petir.v13i1.893

Windra, I., Nasution, L. M., & Dewi, P. M. (2013). Menentukan Akar-Akar Polinomial dengan Metode Bairstow. Journal of Matematics UNP, 24–29.

Xue, Y., Zhu, Z., Jiang, J., Zhan, Y., Yu, Z., Fan, X., & Qiao, S. (2020). Fast Computation of LSP Frequencies Using the Bairstow Method. Electronics, 9(3), 387. https://doi.org/10.3390/electronics9030387

Yahya, Y., & Nur, A. M. (2018). Pengaruh Aplikasi C# dalam Proses Perhitungan Numerik Terhadap Solusi Persamaan Non Linier. Infotek : Jurnal Informatika Dan Teknologi, 1(2), 79–87. https://doi.org/10.29408/jit.v1i2.901

 

(14)

LAMPIRAN

Bukti cek plagiarisme

Referensi

Dokumen terkait

Setelah 30 menit pertama sampai terakhir, tarif percakapan Rp, 5,-/detik Buatlah sebuah menu pilihan yang akan digunakan untuk memilih satu. diantara 2 jenis program

Dengan SQL, kita dapat mengakses database, menjalankan query untuk mengambil data dari database, menambahkan data ke database, menghapus data di dalam

Langkah yang pertama untuk melakukan tahapan diatas adalah membuka database db2_6_praktikum, kemuadian klik “SQL” kita tuliskan perintah CREATE TABLE mahasiswa2 yaitu kita

Untuk mengoreksi bias citra dari atmosfer dapat dilakukan dengan cara  pilih band 1, klik icon formula edit  or , maka akan muncul Window  formula editor. Pada dialog box

∙ Boolean Equation berfungsi untuk mendefenisikan suatu fungsi dalam rangkaian menggunakan bilangan biner yang terdiri angka 0 dan 1 serta symbol operasi logika..

DataOutputStream merupakan class yang menyediakan cara praktis untuk menuliskan tipe data primitive ke output stream, sedangkan DataInputStream berfungsi untuk membaca hasil

Ada juga jenis traktor yang dilengkapi dengan tuas khusus untuk mematikan motor penggerak.. Tuas gas ini berfungsi untuk menjaga kecepatan jalan traktor akan akan tetap,

Transformator merupakan suatu peralatan listrik elektromagnetik statis yang berfungsi untuk memindahkan dan mengubah daya listrik dari suatu rangkaian listrik ke rangkaian listrik