Dosen Pengampu : Prof. Dr.Suhartono, M.Kom
Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang
Fakultas : Sains dan Teknologi
Jurusan : Teknik Informatika
Kelas : (C) Kalkulus
NIM : 230605110080
library(mosaicCalc)
## Loading required package: mosaic
## Registered S3 method overwritten by 'mosaic':
## method from
## fortify.SpatialPolygonsDataFrame ggplot2
##
## The 'mosaic' package masks several functions from core packages in order to add
## additional features. The original behavior of these functions should not be affected by this.
##
## Attaching package: 'mosaic'
## The following objects are masked from 'package:dplyr':
##
## count, do, tally
## The following object is masked from 'package:Matrix':
##
## mean
## The following object is masked from 'package:ggplot2':
##
## stat
## The following objects are masked from 'package:stats':
##
## binom.test, cor, cor.test, cov, fivenum, IQR, median, prop.test,
## quantile, sd, t.test, var
## The following objects are masked from 'package:base':
##
## max, mean, min, prod, range, sample, sum
## Loading required package: mosaicCore
##
## Attaching package: 'mosaicCore'
## The following objects are masked from 'package:dplyr':
##
## count, tally
## The legacy packages maptools, rgdal, and rgeos, underpinning the sp package,
## which was just loaded, will retire in October 2023.
## Please refer to R-spatial evolution reports for details, especially
## https://r-spatial.org/r/2023/05/15/evolution4.html.
## It may be desirable to make the sf package available;
## package maintainers should consider adding sf to Suggests:.
## The sp package is now running under evolution status 2
## (status 2 uses the sf package in place of rgdal)
##
## Attaching package: 'mosaicCalc'
## The following object is masked from 'package:stats':
##
## D
library(ggplot2)
Optimasi adalah cabang matematika yang berkaitan dengan penemuan nilai ekstrem dari suatu fungsi. Tujuan utama dari optimasi matematika adalah untuk menemukan nilai maksimum atau minimum dari fungsi objektif di dalam batasan-batasan tertentu. Ini melibatkan penggunaan teknik matematika dan algoritma khusus untuk mencari solusi optimal.
Optimasi dapat dibagi menjadi dua, yaitu optimasi terbatas dan optimasi tanpa kendala, berikut penjabarannya :
Optimasi terbatas dalam kalkulus mengacu pada proses mencari nilai maksimum atau minimum dari suatu fungsi subjek terhadap sejumlah kendala atau batasan tertentu. Dalam konteks ini, “terbatas” mengindikasikan bahwa solusi harus memenuhi sejumlah kendala yang diberikan. Pada dasarnya, optimasi terbatas melibatkan penggunaan kalkulus untuk menemukan nilai maksimum atau minimum dari suatu fungsi objektif (fungsi tujuan) di bawah sejumlah kendala matematis. Kendala ini dapat berupa batasan pada variabel-variabel tertentu atau hubungan antar variabel.
Tentukan fungsi maksimal keuntungan suatu perusahaan dengan memproduksi dua jenis produk, yaitu produk A dan B. Biaya produksi per unit untuk produk A adalah $5 dan untuk produk B adalah $7. Perusahaan memiliki sumber daya terbatas: total jam kerja yang tersedia setiap minggunya adalah 40 jam. Produk A membutuhkan 2 jam untuk diproduksi, sedangkan produk B membutuhkan 3 jam. Profit per unit untuk produk A adalah $10 dan untuk produk B adalah $12. Berapa banyak produk A dan B yang harus diproduksi untuk memaksimalkan keuntungan?
Untuk memaksimalkan keuntungan, dapat menggunakan metode pemrograman linear. Tentukan variabel terlebih dahulu:
x = jumlah unit produk A yang diproduksi
y = jumlah unit produk B yang diproduksi
Fungsi keuntungan yang ingin dimaksimalkan adalah:
Z = 10x + 12y
Dengan batasan-batasan sebagai berikut:
Batasan jumlah jam kerja:2x + 3y ≤ 40
Jumlah unit produk tidak boleh negatif: x ≥ 0, y ≥ 0
Sekarang dapat menyelesaikan masalah pemrograman linear ini untuk mencari nilai optimal x dan y.
Dari grafik, dapat diihat bahwa area yang memenuhi batasan adalah segitiga dengan titik-titik (0, 0), (0, 13.33), dan (20, 0). Perlu mencari nilai x dan y yang memaksimalkan Z = 10x + 12y di dalam segitiga ini.Dalam kasus ini, dapat menguji titik sudut segitiga: (0, 0), (0, 13.33), dan (20, 0). Hitung nilai Z untuk masing-masing titik dan tentukan titik yang memberikan nilai Z tertinggi.
Jika menghitung nilai Z untuk ketiga titik tersebut, dapat ditemukan bahwa nilai tertinggi terjadi pada titik (10, 10) dengan
Z = 10(10) + 12(10) = 220.
Jadi, untuk memaksimalkan keuntungan, perusahaan harus memproduksi 10 unit produk A dan 10 unit produk B. Dengan ini, keuntungan maksimum yang dapat dicapai adalah $220.
# Install dan load package ggplot2
install.packages("ggplot2")
## Warning: package 'ggplot2' is in use and will not be installed
library(ggplot2)
# Fungsi untuk batasan 2x + 3y <= 40
batasan <- function(x) (40 - 2*x) / 3
# Data frame untuk garis batasan
df_batasan <- data.frame(x = c(0, 20), y = c(batasan(0), batasan(20)))
# Plot batasan
grafik <- ggplot() +
geom_line(data = df_batasan, aes(x, y), color = "blue", size = 1) +
geom_ribbon(data = df_batasan, aes(x, ymin = 0, ymax = y), fill = "blue", alpha = 0.1) +
# Label sumbu
labs(x = "x", y = "y") +
# Batas sumbu x dan y
xlim(0, 20) +
ylim(0, 15) +
# Tambahkan label pada area yang memenuhi batasan
annotate("text", x = 8, y = 4, label = expression(2*x + 3*y <= 40), hjust = 0, vjust = 0) +
# Tema grafik
theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
# Tampilkan grafik
print(grafik)
## Warning in is.na(x): is.na() applied to non-(list or vector) of type
## 'expression'