Dengan bahasa pemrograman Python atau Java (silahkan pilih salah satu),

Berikut ini adalah pertanyaan dari qed pada mata pelajaran TI untuk jenjang Sekolah Dasar

Dengan bahasa pemrograman Python atau Java (silahkan pilih salah satu), bangunlah sebuah program yang dapat menentukan hasil integral tak tentu dari sebuah polinomial berderajat lebih dari 2.Input: derajat polinomial dan koefisien-koefisiennya (termasuk konstanta).

Contoh output yang diharapkan:
Derajat polinomial ? 3
Koefisien x^3 ? 4
Koefisien x^2 ? 3
Koefisien x ? 2
Konstanta ? 2
P(x) = 4x^3 + 3x^2 + 2x + 2
Integral P(x) dx = x^4 + x^3 + x^2 + 2x + C

Jawaban dan Penjelasan

Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.

Kode Program Python

# integral.py
# Program oleh HY
from os import system
# Konstanta
P_ORIGINAL = 0
P_TURUNAN = -1
P_INTEGRAL = 1
class Polinomial:
   def __init__(self, koefisien = []):
       if len(koefisien) == 0:
           print("Masukkan koefisien polinomial mulai dari pangkat terbesar:")
           koefisien = [float(k) for k in input("(dipisahkan spasi dan terurut tanpa skip):\n").split()]
       self.koefisien = koefisien.copy()
       self.derajat = len(koefisien) - 1
       self.mode = P_ORIGINAL
   def __repr__(self):
       return "Polinomial" + str(tuple(self.koefisien))
   def __str__(self):
       def ekspresi_x(derajat):
           if derajat == 0:
               return ""
           elif derajat == 1:
               return "x"
           else:
               return "x^" + str(derajat)
       res = ""
       for i in range(0, self.derajat+1):
           if self.mode == P_ORIGINAL:
               k = self.koefisien[i]
           elif self.mode == P_INTEGRAL:
               self.integral_tak_tentu()
               k = self.koefisien_integral[i]
           if abs(k) == 1 and i < self.mode + self.derajat:
               res += f"{'+' if k > 0 else '-' > 0}{ekspresi_x(self.mode + self.derajat - i)}"
           elif k != 0:
               res += f"{k:+g}{ekspresi_x(self.mode + self.derajat - i)}"
       return (res.lstrip("+")
           .replace("+", " + ")
           .replace("-", " - ")
           + f"{' + C' if self.mode == P_INTEGRAL else ''}")
   def integral_tak_tentu(self):
       self.koefisien_integral = [float(k/(i+1))
           for k, i in zip(self.koefisien, range(self.derajat, -1, -1))]
# Program Utama
if __name__ == '__main__':
   system("clear")
   print()
   p = Polinomial()
   print("==============================")
   print("Polinomial:\n ⇒  P(x) = " + str(p))
   p.mode = P_INTEGRAL
   print("Integral:\n ⇒  ∫ P(x)dx = " + str(p) + "\n")
### END OF PROGRAM ###
______________________

Pembahasan

Untuk program ini, digunakan metode OOP (Object-Oriented Programming) walaupun tidak diminta oleh soal.

Function utama untuk menghasilkan koefisien integral dari polinomial yang diberikan adalah:
def integral_tak_tentu(self):
self.koefisien_integral = [float(k/(i+1))
 for k, i in zip(self.koefisien, range(self.derajat, -1, -1))]

sesuai dengan rumus integral:

\begin{aligned}&P(x)=\sum_{k=0}^n{a_{k}x^{k}}\\&\Rightarrow \int{P(x)\,dx}=\left(\sum_{k=0}^n{\frac{a_{k}x^{k+1}}{k+1}}\right)\:+\:C\end{aligned}

Pada class Polinomial di atas, baik koefisien polinomial maupun koefisien integralnya disimpan dalam bentuk list/array.

Mekanisme input koefisien polinomial diubah sedemikian rupa sehingga pengguna tidak perlu memasukkan derajat polinomial terlebih dahulu. Derajat polinomial ditentukan setelah input selesai, di dalam badan constructor class Polinomial.

Contoh hasil eksekusi dapat dilihat pada 3 gambar yang saya sertakan.

Kode Program Python# integral.py# Program oleh HYfrom os import system# KonstantaP_ORIGINAL = 0P_TURUNAN = -1P_INTEGRAL = 1class Polinomial:    def __init__(self, koefisien = []):        if len(koefisien) == 0:            print(Kode Program Python# integral.py# Program oleh HYfrom os import system# KonstantaP_ORIGINAL = 0P_TURUNAN = -1P_INTEGRAL = 1class Polinomial:    def __init__(self, koefisien = []):        if len(koefisien) == 0:            print(Kode Program Python# integral.py# Program oleh HYfrom os import system# KonstantaP_ORIGINAL = 0P_TURUNAN = -1P_INTEGRAL = 1class Polinomial:    def __init__(self, koefisien = []):        if len(koefisien) == 0:            print(Kode Program Python# integral.py# Program oleh HYfrom os import system# KonstantaP_ORIGINAL = 0P_TURUNAN = -1P_INTEGRAL = 1class Polinomial:    def __init__(self, koefisien = []):        if len(koefisien) == 0:            print(

Semoga dengan pertanyaan yang sudah terjawab oleh henriyulianto dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.

Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact

Last Update: Thu, 27 Oct 22