=====================================================
Nama Mahasiswa : Yoza Setya Febriyanti
NIM : 220605110062
Kelas : C
Mata Kuliah : Kalkulus
Dosen Pengampuh : Prof.Dr.Suhartono,M.Kom
Jurusan : Teknik Informatika
Universitas : UIN Maulana Malik Ibrahim Malang
=====================================================
Konsep “fungsi matematika” adalah sebuah ide. Jika kita akan menggunakan bahasa komputer untuk bekerja dengan fungsi matematika, kita perlu menerjemahkannya ke dalam beberapa entitas dalam bahasa komputer. Artinya, kita memerlukan konstruksi bahasa untuk merepresentasikan fungsi dan kuantitas yang diambil fungsi sebagai input dan dihasilkan sebagai output.
Kita akan menggunakan fungsi dan kalkulus untuk bekerja dengan kuantitas dunia nyata. Kita tidak bisa mengabaikan dimensi dan satuan. Sayangnya, bahasa komputer utama seperti R dan Python dan JavaScript tidak menyediakan cara sistematis untuk menangani dimensi dan unit secara otomatis. Di R, misalnya, kita dapat dengan mudah menulis
x <- 7
Saat kita merepresentasikan besaran di komputer, kita akan menggunakan nama besaran untuk mengingatkan kita apa dimensi dan satuannya. Misalnya, untuk mewakili pendapatan tahunan keluarga. Pilihan yang masuk akal adalah menggunakan nama seperti income atau income_per_year atau family_income. Kita bahkan mungkin memberikan unit dalam nama, misalnya family_income_euros_per_year. Tetapi biasanya yang kita lakukan adalah mendokumentasikan unit secara terpisah untuk pembaca manusia.
R memiliki konstruksi pemrograman untuk mewakili operasi yang mengambil satu atau lebih input dan menghasilkan output. Di R, ini disebut “fungsi”
exp
## function (x) .Primitive("exp")
Dalam R, fungsi dapat dibuat dengan kata kunci function. Misalnya, untuk membuat fungsi yang menerjemahkan pendapatan tahunan menjadi pendapatan harian, kita dapat menulis:
as_daily_income <- function(yearly_income) {
yearly_income / 365
}
Keterangan :
Nama yang dipilih untuk fungsi, as_daily_income, adalah arbitrer.
Setelah kata kunci function, ada sepasang tanda kurung. Di dalam tanda kurung adalah nama yang diberikan ke input ke fungsi.
function(yearly_income) menentukan bahwa hal yang sedang dibuat akan menjadi a functiondan kita memanggil input yearly_income.
Setelah bagian ini muncul badan fungsi. Tubuh berisi ekspresi R yang menentukan perhitungan yang akan dilakukan. Dalam hal ini, ekspresinya sangat sederhana: bagi yearly_incomedengan 365 – jumlah (perkiraan) hari dalam setahun.
Setelah kata kunci function dan tanda kurung di mana argumen didefinisikan datang sepasang kurung kurawal { } berisi beberapa pernyataan R. Pernyataan-pernyataan ini adalah badan fungsi dan berisi instruksi untuk perhitungan yang akan mengubah input menjadi output. Jadi programmer mungkin telah menulis fungsi R dengan cara ini :
as_daily_income <- function(x) {
x / 365
}
as_daily_income <- function(ghskelw) {
ghskelw / 365
}
Semua versi yang berbeda dari as_daily_income( ) akan melakukan hal yang persis sama dan digunakan dengan cara yang persis sama, terlepas dari nama yang diberikan untuk argumen
as_daily_income(61362)
## [1] 168.1151
Seringkali, fungsi memiliki lebih dari satu argumen. Nama-nama argumen dicantumkan di antara tanda kurung setelah kata kunci function, seperti ini:
as_daily_income <- function(yearly_income, duration) {
yearly_income / duration
}
Dalam kasus seperti itu, untuk menggunakan fungsi kita harus menyediakan semua argumen. tentukan kedua argumen:
as_daily_income(61362, 365)
## [1] 168.1151
Satu lagi aspek argumen fungsi di R … Argumen apa pun dapat diberi nilai default . Sangat mudah untuk melihat cara kerjanya dengan sebuah contoh:
as_daily_income <- function(yearly_income, duration = 365) {
yearly_income / duration
}
Dengan nilai default untuk durationfungsi dapat digunakan dengan satu atau dua argumen:
as_daily_income(61362)
## [1] 168.1151
as_daily_income(61362, duration = 366)
## [1] 167.6557
Baris kedua adalah perhitungan yang tepat untuk tahun kabisat.
Misalnya, Anda ingin menghitung 100e^−2.5. Mudah:
100 * exp(-2.5)
## [1] 8.2085
Dalam menulis perhitungan, ada baiknya untuk memperjelas dan menjelaskan arti dari setiap besaran yang digunakan dalam perhitungan. Jadi, alih-alih 100 * exp(-2.5), Anda mungkin ingin menulis:
dose <- 100 # mg
duration <- 10 # days
time_constant <- 4 # days
dose * exp(- duration / time_constant)
## [1] 8.2085
Lebih baik lagi, Anda bisa mendefinisikan fungsi yang melakukan perhitungan untuk Anda:
drug_remaining <- function(dose, duration, time_constant) {
dose * exp(- duration / time_constant)
}
drug_remaining(dose = 100, duration = 10, time_constant = 4)
## [1] 8.2085
kita akan menggunakan operasi yang disediakan oleh paket mosaicand mosaicCalc untuk R. Operasi dari paket ini memiliki notasi yang sangat spesifik untuk diekspresikan sehubungan dengan. Notasi tersebut menggunakan karakter tilde, ~. Berikut cara menggambar grafik yang kita inginkan, menggunakan slice_plot() operasi paket:
drug_remaining <- function(dose,duration,time_constant){
dose*exp(- duration / time_constant)
}
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
##
## Attaching package: 'mosaicCalc'
## The following object is masked from 'package:stats':
##
## D
slice_plot(
drug_remaining(dose = 100, time_constant = 4, duration = t) ~ t,
domain(t = 0:20))