Untuk menghitung integral suatu fungsi, Numerical Integration menggunakan pendekatan berbasis perhitungan yang berfokus pada pembagian daerah di bawah kurva fungsi menjadi segmen kecil yang mudah dihitung, seperti persegi panjang atau trapesium. Untuk memulai prosedur, interval integrasi dibagi menjadi subinterval dengan lebar yang sama. Selanjutnya, titik tengah ditetapkan dalam setiap subinterval.

Luas segmen persegi panjang yang dibentuk oleh nilai fungsi di titik tengah subinterval dan lebar subinterval dijumlahkan dalam metode Riemann Sum, yang sering digunakan. Dengan menjumlahkan luas segmen-segmen tersebut di seluruh subinterval, integral fungsi dapat diperkirakan. Penting untuk diingat bahwa hasil integrasi numerik adalah aproksimasi integral, dan tingkat akurasi bergantung pada berapa banyak subinterval yang digunakan.

Numerical Integration sering dilakukan dengan bantuan komputer untuk menghasilkan hasil perhitungan yang efisien dan akurat, tetapi metode ini memiliki keterbatasan dalam hal presisi dan kompleksitas fungsi yang diintegrasikan. Namun demikian, integrasi numerik tetap menjadi alat penting untuk memecahkan berbagai masalah dalam bidang matematika, fisika, ekonomi, dan bidang lain yang membutuhkan perhitungan integral.

Langkah pertama: kita menentukan fungsi yang ingin diintegrasikan, yaitu f(x) = x^2. Fungsi ini menggambarkan hubungan antara variabel x dan y, di mana y adalah kuadrat dari x.

# Langkah pertama 
function_to_integrate <- function(x) x^2

Langkah kedua: kita menentukan batas-batas integrasi, yaitu lower_limit = 0 dan upper_limit = 2. Batas-batas ini menunjukkan interval di mana kita ingin menghitung luas di bawah kurva fungsi f(x).

# Langkah kedua 
lower_limit <- 0
upper_limit <- 2

Langkah ketiga: kita menentukan jumlah subinterval, yaitu n = 10. Subinterval adalah pembagian interval integrasi menjadi bagian-bagian yang lebih kecil dan sama lebar. Jumlah subinterval menentukan tingkat akurasi dari perhitungan integral. Semakin banyak subinterval, semakin akurat hasilnya, tetapi semakin lama waktu yang dibutuhkan.

# Langkah ketiga 
n <- 10

Langkah keempat: kita membuat deret nilai x untuk titik-titik awal dari setiap subinterval. kita menggunakan fungsi seq() untuk membuat deret tersebut, dengan parameter lower_limit, upper_limit - (upper_limit - lower_limit) / n, dan length.out = n. Parameter pertama menunjukkan nilai awal deret, parameter kedua menunjukkan nilai akhir deret, dan parameter ketiga menunjukkan jumlah elemen deret. Nilai akhir deret dikurangi dengan lebar subinterval agar tidak melebihi batas atas integrasi.

# Langkah keempat 
x_values <- seq(lower_limit, upper_limit - (upper_limit - lower_limit) / n, length.out = n)

Langkah kelima: kita menghitung lebar setiap subinterval dengan rumus (upper_limit - lower_limit) / n. Lebar subinterval adalah selisih antara batas atas dan batas bawah integrasi dibagi dengan jumlah subinterval.

# Langkah kelima 
width_subinterval <- (upper_limit - lower_limit) / n

Langkah keenam: kita menghitung integral pasti dengan menggunakan integrasi numerik (Riemann sum). kita menggunakan rumus sum(width_subinterval * function_to_integrate(x_values)) untuk menghitung luas daerah di bawah kurva fungsi f(x). Rumus ini menjumlahkan luas segmen-segmen persegi panjang yang dibentuk oleh nilai-nilai fungsi f(x) di titik-titik awal subinterval dan lebar subinterval. Luas segmen-segmen ini mendekati luas daerah yang sebenarnya.

# Langkah keenam
integral_result <- sum(width_subinterval * function_to_integrate(x_values))

Langkah ketujuh: kita membuat data frame untuk membuat plot. Data frame adalah struktur data yang menyimpan data dalam bentuk tabel dengan baris dan kolom. kita menggunakan fungsi data.frame() untuk membuat data frame tersebut, dengan parameter x = x_values dan y = function_to_integrate(x_values). Parameter ini menunjukkan nama dan nilai kolom dalam data frame. Kolom x berisi nilai-nilai x untuk titik-titik awal subinterval, dan kolom y berisi nilai-nilai y untuk fungsi f(x) di titik-titik tersebut.

# Langkah ketujuh
df <- data.frame(x = x_values, y = function_to_integrate(x_values))

Langkah kedelapan: kita membuat plot dari fungsi f(x) dan segmen-segmen persegi panjang yang mendekati luas daerah. kita menggunakan fungsi ggplot() untuk membuat plot tersebut, dengan parameter df dan aes(x, y). Parameter pertama menunjukkan data frame yang digunakan sebagai sumber data, dan parameter kedua menunjukkan variabel estetika yang digunakan untuk plot. Variabel estetika adalah variabel yang mempengaruhi tampilan plot, seperti posisi, warna, ukuran, bentuk, dan lain-lain. Dalam hal ini, kita menggunakan variabel x dan y sebagai posisi titik-titik pada plot.

# Langkah kedelapan 
plot <- ggplot(df, aes(x, y)) +
  geom_rect(data = subset(df, x >= lower_limit & x <= upper_limit), aes(xmin = x, xmax = x + width_subinterval, ymin = 0, ymax = y), fill = "lightblue") +
  geom_line() +
  labs(title = "Grafik Numerical Integration",
       x = "x",
       y = "f(x)",
       subtitle = paste("Integral dari", lower_limit, "ke", upper_limit, "adalah:", round(integral_result, 2))) +
  theme_minimal()
print(plot)